-
Notifications
You must be signed in to change notification settings - Fork 1
Documentation: Publish a Docusaurus site, update the LICENCE and add the missing governance files #178
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
MarkusPaulsen
wants to merge
65
commits into
main
Choose a base branch
from
docs/docusaurus-migration-and-repo-hygiene
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Documentation: Publish a Docusaurus site, update the LICENCE and add the missing governance files #178
Changes from 16 commits
Commits
Show all changes
65 commits
Select commit
Hold shift + click to select a range
00541a6
Update the LICENSE copyright holder to Markus Paulsen
74145fa
Add the project governance and editor configuration files
f5b616b
Scaffold the Docusaurus documentation site
e446ac9
Move the existing manuals into the Docusaurus documentation tree
99c50a2
Adapt the migrated manuals to Docusaurus
67025bd
Convert README.adoc into the user guide and shorten the README
cded0cf
Build and publish the documentation site from CI
d673240
Repoint the remaining references at the new documentation layout
7e666a3
Harden the PlantUML render check against silent failures
63b5a11
Compare PlantUML renders independently of line endings
f3a78ed
Restructure the documentation into Instructor and Maintainer guides
c1fe1b2
Activate pnpm through Corepack instead of a third-party action
2ec3280
Credit Ares 1 in the LICENCE and add a NOTICE
444b3aa
Rename the Maintainer guide to Contributor
0278dc2
Document every policy domain from its implementation
a4f4d96
Write the technology pages, with every citation verified
c6d50fa
Add ESLint, docs integration tests, ncu and two more structure tests
c5971ac
Apply every shared documentation rule to every page
782a565
Keep @{argLine} in the Maven Surefire snippet
f8ca352
Pin the documentation inventory by name instead of by count
2d628b6
Add the three missing contributor sections
7ddd406
Add the Policy Cookbook, Policy Reference and Troubleshooting sections
6b77bfe
Split protect-a-java-project by mode and build tool
08076be
Split the Ares 1 migration guide by mode and build tool
31ac9ba
Split the policy documentation by audience
0ff3843
Merge pull request #183 from ls1intum/docs/ia-scaffold-and-tests
MarkusPaulsen bf429a5
Merge pull request #184 from ls1intum/docs/protect-a-java-project-res…
MarkusPaulsen dfeff2d
Merge pull request #185 from ls1intum/docs/ares-1-migration-restructure
MarkusPaulsen 3e376ec
Merge pull request #186 from ls1intum/docs/policy-audience-split
MarkusPaulsen 8fd79c4
Make the documentation assertions check what they claim to check
47139f0
Require the ELI5 box to be closed, not only opened
e91cdad
Fix three ways the documentation tests could report a wrong verdict
5eabb91
Merge branch 'main' into docs/docusaurus-migration-and-repo-hygiene
25d573b
Make the documented policies ones Ares actually accepts
12b9a1c
Stop the reference promising a scan the policy path never does
4f5d77c
Point the documentation at the release that is out
9fe05b0
Run the documentation tests, and notice next time when a suite does not
bfdac57
Teach the guard the selections it was rejecting
21416b6
Make the paths into the documentation arrive again
949175d
Stop the overview tying Postcompile to one interception mechanism
3d02455
Anchor the reference scan, and repair a sentence that lost its verb
c6d2103
Say what actually puts a test under supervision
65083ff
Name the annotation that actually switches Ares on
150e027
Merge remote-tracking branch 'origin/main' into docs/docusaurus-migra…
745b48b
Read a path segment, and stop losing what the walk could not read
5ce3cee
Document the generator that exists, and let the comparison find its rows
47b6e95
Let a URL hide only itself, and settle what the negative control does
7911ae7
Read the writing rules off the Markdown tree, not off the lines
8b199b8
Write down the language rules and the decisions behind them
e8f15c1
Bring the documentation up to the rules a check can decide
feb47d6
Merge pull request #207 from ls1intum/docs/prose-writing-rules
MarkusPaulsen 366f195
Rename ELI5 to Simple Story, and give all 96 boxes one story to tell
040101b
Say on the landing page what Ares 2 is for, and add the legal pages
f9f457e
Say which categories an instructor can open, and which are shut for good
89dffeb
Spell every abbreviation out, and empty the accepted list
ecd6811
Say what "also" was doing, or take it out
75a8612
Hold the whole standard, and let the count fall but not rise
ed1a444
Ask TypeScript what the source says, and let both ratchets bite
edde892
Read the strings a reader sees, and skip the ones a compiler sees
4c08f90
Spell it out where the reader first meets it
69bc705
Move every Ares coordinate to 2.1.3
40b5bd8
Merge origin/main into the documentation branch
b70d8ae
Put the words after the link, not inside it
ef676a2
Wrap the line Spotless wanted wrapped
6655da9
Merge origin/main into the documentation branch
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,79 @@ | ||
| # EditorConfig helps developers define and maintain consistent | ||
| # coding styles between different editors and IDEs | ||
| # editorconfig.org | ||
| # | ||
| # The `end_of_line` values below deliberately mirror .gitattributes. Git normalises every | ||
| # text file to LF in the object database but checks most of them out as CRLF | ||
| # (`* text=auto eol=crlf`), with LF reserved for the files that break otherwise: shell | ||
| # scripts, YAML and pom.xml. An editor configured to write LF everywhere would fight that | ||
| # checkout policy and produce a renormalisation diff on every save, so keep the two files in | ||
| # step whenever either changes. | ||
|
|
||
| root = true | ||
|
|
||
| [*] | ||
| end_of_line = crlf | ||
| charset = utf-8 | ||
| trim_trailing_whitespace = true | ||
| insert_final_newline = true | ||
| indent_style = tab | ||
| indent_size = 4 | ||
|
|
||
| # Markdown treats two trailing spaces as a hard line break, so they must survive. | ||
| [*.md] | ||
| trim_trailing_whitespace = false | ||
| indent_style = space | ||
| indent_size = 2 | ||
|
|
||
| [*.mdx] | ||
| trim_trailing_whitespace = false | ||
| indent_style = space | ||
| indent_size = 2 | ||
|
|
||
| # Ares formats Java with tabs; see the Spotless configuration in pom.xml. | ||
| [*.java] | ||
| indent_style = tab | ||
|
|
||
| [*.xml] | ||
| indent_style = tab | ||
|
|
||
| # .gitattributes pins pom.xml to LF. | ||
| [pom.xml] | ||
| end_of_line = lf | ||
| indent_style = tab | ||
|
|
||
| # .gitattributes pins YAML to LF. | ||
| [{*.yml,*.yaml}] | ||
| end_of_line = lf | ||
| indent_style = space | ||
| indent_size = 2 | ||
|
|
||
| # .gitattributes pins shell scripts to LF; CRLF makes them fail with "bad interpreter". | ||
| [{*.sh,*.bash,*.fish,gradlew}] | ||
| end_of_line = lf | ||
| indent_style = space | ||
| indent_size = 2 | ||
|
|
||
| # .gitattributes pins these to CRLF explicitly; they are Windows scripts. | ||
| [{*.bat,*.cmd,*.ps1}] | ||
| end_of_line = crlf | ||
|
|
||
| [{*.ats,*.cts,*.mts,*.ts,*.tsx}] | ||
| indent_style = space | ||
| indent_size = 4 | ||
| ij_typescript_use_double_quotes = false | ||
| ij_typescript_spaces_within_imports = true | ||
|
|
||
| [{*.cjs,*.mjs,*.js,*.jsx}] | ||
| indent_style = space | ||
| indent_size = 4 | ||
| ij_javascript_use_double_quotes = false | ||
| ij_javascript_spaces_within_imports = true | ||
|
|
||
| [*.json] | ||
| indent_style = space | ||
| indent_size = 2 | ||
|
|
||
| [*.css] | ||
| indent_style = space | ||
| indent_size = 4 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| # Configuration for actionlint, run by .github/workflows/actionlint.yml. | ||
| # Reference: https://github.com/rhysd/actionlint/blob/main/docs/config.md | ||
| # | ||
| # Ares 2 runs entirely on GitHub-hosted runners, so no self-hosted labels are declared. | ||
| # Add a label here if a job ever moves to a self-hosted runner, otherwise actionlint will | ||
| # reject the unknown `runs-on` value. | ||
| self-hosted-runner: | ||
| labels: [] | ||
|
|
||
| # Ares 2 uses no repository or organisation configuration variables in workflows yet. | ||
| # `actionlint` reports an undefined variable in a `vars.` expression only when this list is | ||
| # non-empty, so leave it commented out until the first variable is introduced. | ||
| # config-variables: | ||
| # - EXAMPLE_VARIABLE | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,50 @@ | ||
| # Publishes documentation/ to GitHub Pages at https://ls1intum.github.io/Ares2/. | ||
| # | ||
| # One-time repository setup, which a workflow cannot do for you: | ||
| # Settings -> Pages -> Build and deployment -> Source = "GitHub Actions" | ||
| # Without it the deploy job fails with a "Pages is not enabled" error. | ||
| # | ||
| # workflow_dispatch is kept so the site can be republished without a documentation change, | ||
| # for example after a failed deploy or a change to the Pages settings. | ||
| name: Deploy Documentation to GitHub Pages | ||
|
|
||
| on: | ||
| push: | ||
| branches: [ "main" ] | ||
| paths: | ||
| - 'documentation/**' | ||
| - '.github/workflows/documentation.yml' | ||
| - '.github/workflows/deploy-documentation.yml' | ||
| workflow_dispatch: | ||
|
|
||
| permissions: {} | ||
|
|
||
| # Serialised against every other Pages deploy. cancel-in-progress stays false so an in-flight | ||
| # deploy is allowed to finish rather than leaving the site half-published. | ||
| concurrency: | ||
| group: pages | ||
| cancel-in-progress: false | ||
|
|
||
| jobs: | ||
| documentation: | ||
| uses: ./.github/workflows/documentation.yml | ||
| permissions: | ||
| contents: read | ||
| with: | ||
| upload_pages_artifact: true | ||
|
|
||
| deploy: | ||
| name: Deploy to GitHub Pages | ||
| needs: documentation | ||
| runs-on: ubuntu-24.04 | ||
| timeout-minutes: 10 | ||
| permissions: | ||
| pages: write | ||
| id-token: write | ||
| environment: | ||
| name: github-pages | ||
| url: ${{ steps.deployment.outputs.page_url }} | ||
| steps: | ||
| - name: Deploy to GitHub Pages | ||
| id: deployment | ||
| uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| # Pull request validation for the documentation site. | ||
| # | ||
| # Builds documentation/ without publishing anything, so a broken link, a stale PlantUML render | ||
| # or a type error is caught on the pull request rather than on the deploy. | ||
| name: Documentation CI | ||
|
|
||
| on: | ||
| pull_request: | ||
| branches: [ "main" ] | ||
| paths: | ||
| - 'documentation/**' | ||
| - '.github/workflows/documentation.yml' | ||
| - '.github/workflows/documentation-ci.yml' | ||
| push: | ||
| branches: [ "main" ] | ||
| paths: | ||
| - 'documentation/**' | ||
| - '.github/workflows/documentation.yml' | ||
| - '.github/workflows/documentation-ci.yml' | ||
| workflow_dispatch: | ||
|
|
||
| permissions: {} | ||
|
|
||
| concurrency: | ||
| group: documentation-ci-${{ github.event.pull_request.number || github.ref }} | ||
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | ||
|
|
||
| jobs: | ||
| documentation: | ||
| uses: ./.github/workflows/documentation.yml | ||
| permissions: | ||
| contents: read | ||
| with: | ||
| upload_pages_artifact: false |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,96 @@ | ||
| # Reusable build of the Docusaurus site in documentation/. | ||
| # | ||
| # This workflow has no triggers of its own. Two callers use it: | ||
| # - documentation-ci.yml validates every pull request that touches the docs. | ||
| # - deploy-documentation.yml builds and then publishes to GitHub Pages. | ||
| # | ||
| # Keeping the build in one place means the artefact that gets deployed is produced by exactly | ||
| # the same steps that validated it on the pull request. | ||
| name: Build Documentation | ||
|
|
||
| on: | ||
| workflow_call: | ||
| inputs: | ||
| upload_pages_artifact: | ||
| description: >- | ||
| Also upload the built site as a GitHub Pages artefact. Set true by the deploy path; | ||
| pull request validation leaves it false so no artefact is produced. | ||
| required: false | ||
| default: false | ||
| type: boolean | ||
|
|
||
| permissions: {} | ||
|
|
||
| jobs: | ||
| build: | ||
| name: Build Docusaurus site | ||
| runs-on: ubuntu-24.04 | ||
| timeout-minutes: 15 | ||
| permissions: | ||
| contents: read | ||
| steps: | ||
| - name: Checkout Repository | ||
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | ||
| with: | ||
| persist-credentials: false | ||
|
|
||
| - name: Set up Node.js | ||
| uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 | ||
| with: | ||
| node-version: '24' | ||
|
|
||
| # pnpm is activated through Corepack rather than pnpm/action-setup. This repository | ||
| # restricts Actions to GitHub-owned ones (plus one explicit pattern), so a third-party | ||
| # action makes the workflow fail to start at all. Corepack ships with Node and reads the | ||
| # exact version from the packageManager field in documentation/package.json, so CI and a | ||
| # local `corepack enable` resolve to the same pnpm, with one less supply-chain dependency. | ||
| - name: Set up pnpm through Corepack | ||
| working-directory: documentation | ||
| run: | | ||
| corepack enable | ||
| corepack install | ||
| pnpm --version | ||
|
|
||
| # Cached by hand because actions/setup-node's built-in pnpm cache resolves the store path | ||
| # before Corepack has run. actions/cache is GitHub-owned and therefore permitted. | ||
| - name: Resolve the pnpm store path | ||
| id: pnpm-store | ||
| working-directory: documentation | ||
| run: echo "path=$(pnpm store path --silent)" >> "$GITHUB_OUTPUT" | ||
|
|
||
| - name: Restore the pnpm store | ||
| uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 | ||
| with: | ||
| path: ${{ steps.pnpm-store.outputs.path }} | ||
| key: ${{ runner.os }}-pnpm-store-${{ hashFiles('documentation/pnpm-lock.yaml') }} | ||
| restore-keys: ${{ runner.os }}-pnpm-store- | ||
|
|
||
| - name: Install dependencies | ||
| working-directory: documentation | ||
| run: pnpm install --frozen-lockfile | ||
|
|
||
| - name: Type check | ||
| working-directory: documentation | ||
| run: pnpm run typecheck | ||
|
|
||
| # PlantUML sources are rendered to SVG and the SVGs are committed, the same way the | ||
| # .drawio sources sit next to committed .drawio.png renders. This fails the build when a | ||
| # .puml was edited without regenerating its diagram, so the site can never show a | ||
| # diagram that disagrees with its source. | ||
| - name: Verify committed PlantUML renders | ||
| working-directory: documentation | ||
| run: pnpm run diagrams:check | ||
|
|
||
| # onBrokenLinks and onBrokenAnchors are set to 'throw', so a dangling cross-reference | ||
| # fails here rather than shipping to the published site. | ||
| - name: Build Docusaurus site | ||
| working-directory: documentation | ||
| run: pnpm run build | ||
|
|
||
| # Only on the deploy path; the deploy job consumes this. Uploading needs no extra | ||
| # permissions of its own, `pages: write` lives on the deploy job. | ||
| - name: Upload Pages artefact | ||
| if: ${{ inputs.upload_pages_artifact }} | ||
| uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0 | ||
| with: | ||
| path: documentation/build |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| cff-version: 1.2.0 | ||
| message: "If you use Ares 2 in your work, please cite it using the metadata from this file." | ||
| title: "Ares 2" | ||
| abstract: "Ares 2 is a framework for the secure remote execution of student submissions on interactive learning platforms. It is the second Java-based implementation of the Secure COder Remote Execution (SCORE) framework and enforces policy-based sandboxing through static analysis and runtime instrumentation." | ||
| type: software | ||
| license: MIT | ||
| repository-code: "https://github.com/ls1intum/Ares2" | ||
| url: "https://ls1intum.github.io/Ares2/" | ||
| keywords: | ||
| - java | ||
| - sandbox | ||
| - security | ||
| - education | ||
| - automated-assessment | ||
| - junit | ||
| - aspectj | ||
| - archunit | ||
| authors: | ||
| - | ||
| family-names: Paulsen | ||
| given-names: Markus | ||
| email: markus.paulsen@tum.de | ||
| affiliation: "Technical University of Munich" | ||
| - | ||
| family-names: Sahinalp | ||
| given-names: Sarp | ||
| email: sarp.sahinalp@tum.de | ||
| affiliation: "Technical University of Munich" | ||
| - | ||
| family-names: Zaveri | ||
| given-names: Anirudh | ||
| email: anirudh.zaveri@tum.de | ||
| affiliation: "Technical University of Munich" |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.