Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"version": 1,
"isRoot": true,
"tools": {
"fallout.cli": {
"version": "11.0.18",
"commands": [
"fallout"
]
}
}
}
145 changes: 145 additions & 0 deletions .fallout/build.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"definitions": {
"Host": {
"type": "string",
"enum": [
"AppVeyor",
"AzurePipelines",
"Bamboo",
"Bitbucket",
"Bitrise",
"GitHubActions",
"GitLab",
"Jenkins",
"Rider",
"SpaceAutomation",
"TeamCity",
"Terminal",
"TravisCI",
"VisualStudio",
"VSCode"
]
},
"ExecutableTarget": {
"type": "string",
"enum": [
"Clean",
"Compile",
"CreatePackage",
"Default",
"Package",
"PrePublish",
"Publish",
"PublishPackage",
"PublishPreRelease",
"PublishRelease",
"Restore",
"RunUnitTests"
]
},
"Verbosity": {
"type": "string",
"description": "",
"enum": [
"Verbose",
"Normal",
"Minimal",
"Quiet"
]
},
"FalloutBuild": {
"properties": {
"Continue": {
"type": "boolean",
"description": "Indicates to continue a previously failed build attempt"
},
"Help": {
"type": "boolean",
"description": "Shows the help text for this build assembly"
},
"Host": {
"description": "Host for execution. Default is 'automatic'",
"$ref": "#/definitions/Host"
},
"NoLogo": {
"type": "boolean",
"description": "Disables displaying the NUKE logo"
},
"Partition": {
"type": "string",
"description": "Partition to use on CI"
},
"Plan": {
"type": "boolean",
"description": "Shows the execution plan (HTML)"
},
"Profile": {
"type": "array",
"description": "Defines the profiles to load",
"items": {
"type": "string"
}
},
"Root": {
"type": "string",
"description": "Root directory during build execution"
},
"Skip": {
"type": "array",
"description": "List of targets to be skipped. Empty list skips all dependencies",
"items": {
"$ref": "#/definitions/ExecutableTarget"
}
},
"Target": {
"type": "array",
"description": "List of targets to be invoked. Default is '{default_target}'",
"items": {
"$ref": "#/definitions/ExecutableTarget"
}
},
"Verbosity": {
"description": "Logging verbosity during build execution. Default is 'Normal'",
"$ref": "#/definitions/Verbosity"
},
"BuildProjectFile": {
"type": [
"null",
"string"
],
"description": "Path to the build project (.csproj) relative to the repository root. Defaults to 'build/_build.csproj' when unset. Read by the Fallout global tool's in-tool runner."
}
}
}
},
"allOf": [
{
"properties": {
"AngleSharpVersion": {
"type": "string",
"description": "AngleSharp package version override (e.g. 1.0.0 for compatibility checks)"
},
"Configuration": {
"type": "string",
"enum": [
"Debug",
"Release"
],
"description": "Configuration to build - Default is 'Debug' (local) or 'Release' (server)"
},
"ReleaseNotesFilePath": {
"type": "string",
"description": "ReleaseNotesFilePath - To determine the SemanticVersion"
},
"Solution": {
"type": "string",
"description": "Path to a solution file that is automatically loaded"
}
}
},
{
"$ref": "#/definitions/FalloutBuild"
}
]
}
4 changes: 4 additions & 0 deletions .fallout/parameters.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"$schema": "./build.schema.json",
"Solution": "src/AngleSharp.Wasm.sln"
}
14 changes: 7 additions & 7 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ AngleSharp and its libraries uses features from the latest versions of C# (e.g.,

AngleSharp itself does not have dependencies, however, the tests are dependent on NUnit.

The build system of AngleSharp uses Cake. A bootstrap script (build.ps1 for Windows or build.sh for *nix systems) is included. Note, that at the moment AngleSharp may require NuGet 3.5, which looks for MSBuild pre-15, i.e., before Visual Studio 2017 on Windows systems. We aim to drop this requirement entirely soon.
The build system of AngleSharp uses Fallout. Bootstrap scripts (build.cmd, build.ps1, and build.sh) are included.

### Code Conventions

Expand All @@ -64,7 +64,7 @@ There are a couple of rules, which are definitely not standard, but highly recom

1. If no issue already exists for the work you'll be doing, create one to document the problem(s) being solved and self-assign.
2. Otherwise please let us know that you are working on the problem. Regular status updates (e.g. "still in progress", "no time anymore", "practically done", "pull request issued") are highly welcome.
3. Create a new branch—please don't work in the `master` branch directly. It is reserved for releases. We recommend naming the branch to match the issue being addressed (`feature/#777` or `issue-777`).
3. Create a new branch—please don't work in the `main` branch directly. It is reserved for releases. We recommend naming the branch to match the issue being addressed (`feature/#777` or `issue-777`).
4. Add failing tests for the change you want to make. Tests are crucial and should be taken from W3C (or other specification).
5. Fix stuff. Always go from edge case to edge case.
6. All tests should pass now. Also your new implementation should not break existing tests.
Expand All @@ -73,7 +73,7 @@ There are a couple of rules, which are definitely not standard, but highly recom

Just to illustrate the git workflow for AngleSharp a little bit more we've added the following graphs.

Initially, AngleSharp starts at the `master` branch. This branch should contain the latest stable (or released) version.
Initially, AngleSharp starts at the `main` branch. This branch should contain the latest stable (or released) version.

Here we now created a new branch called `devel`. This is the development branch.

Expand Down Expand Up @@ -101,7 +101,7 @@ git push
Finally, we may have all the features that are needed to release a new version of AngleSharp. Here we tag the release. For instance for the 1.0 release we use `v1.0`.

```sh
git checkout master
git checkout main
git merge devel
git tag v1.0
```
Expand All @@ -119,16 +119,16 @@ The following files should not be edited directly in the current repository, but
.github/*
build.ps1
build.sh
tools/anglesharp.cake
tools/packages.config
build.cmd
build/*
LICENSE
```

To sync manually:

```sh
git remote add gitbase git@github.com:AngleSharp/AngleSharp.GitBase.git
git pull gitbase master
git pull gitbase main
```

### Versioning
Expand Down
2 changes: 1 addition & 1 deletion .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# These are supported funding model platforms

github: FlorianRappl
custom: https://salt.bountysource.com/teams/anglesharp
custom: ['https://www.paypal.me/FlorianRappl', 'https://buymeacoffee.com/florianrappl']
30 changes: 21 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@ jobs:
if: needs.can_document.outputs.value == 'true'

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v5

- name: Use Node.js
uses: actions/setup-node@v1
uses: actions/setup-node@v5
with:
node-version: "14.x"
node-version: "20.x"
registry-url: 'https://registry.npmjs.org'

- name: Install Dependencies
Expand All @@ -48,23 +48,35 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v5

- name: Setup dotnet
uses: actions/setup-dotnet@v5
with:
dotnet-version: |
10.0.x

- name: Build
run: ./build.sh
run: ./build.sh -AngleSharpVersion 1.5.0

windows:
runs-on: windows-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v5

- name: Setup dotnet
uses: actions/setup-dotnet@v5
with:
dotnet-version: |
10.0.x

- name: Build
run: |
if ($env:GITHUB_REF -eq "refs/heads/main") {
.\build.ps1 -Target Publish
.\build.ps1 -Target Publish -AngleSharpVersion 1.5.0
} elseif ($env:GITHUB_REF -eq "refs/heads/devel") {
.\build.ps1 -Target PrePublish
.\build.ps1 -Target PrePublish -AngleSharpVersion 1.5.0
} else {
.\build.ps1
.\build.ps1 -AngleSharpVersion 1.5.0
}
9 changes: 7 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,8 @@ local.properties
[Dd]ebug/
[Rr]elease/
[Bb]in/
[Bb]uild/
build/bin/
build/obj/
[Oo]bj/

# Visual Studio 2015 cache/options directory
Expand Down Expand Up @@ -171,7 +172,8 @@ Desktop.ini
*.egg
*.egg-info
dist
build
build/bin
build/obj
eggs
parts
var
Expand All @@ -194,3 +196,6 @@ pip-log.txt

# Mac crap
.DS_Store

# Fallout build tool
.fallout/temp
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
# 1.0.0

Released on Friday, July 31 2026.

- Added `wasmtime` as Wasm engine
- Added integration with exposure as DOM objects

# 0.13.0

Released on Sunday, June 6 2021.
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2013 - 2021 AngleSharp
Copyright (c) 2013 - 2026 AngleSharp

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
Loading
Loading