92 Commits
Author SHA1 Message Date
Tirsvad 3e0047f36f Merge pull request 'Bump the version to 0.3.2 (task 5)' (#74) from mil-009-version into main
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Successful in 3s
Reviewed-on: #74
v0.3.2
2026-10-08 08:34:23 +02:00
Tirsvad 56d44989ca Bump the version to 0.3.2
Set VERSION in src/lib/constants.sh to 0.3.2 and the --version check in
tests/test-security.sh to match. This is task 5 of MIL-009, the Git excludes
step. Release v0.3.2 is tagged on Gitea from the merge commit once the pull
request is merged.

Refs #69
Task: MIL-009#5
2026-10-08 14:33:05 +08:00
Tirsvad 642ea775d1 Merge pull request 'Test the Git excludes step (task 4)' (#73) from mil-009-tests into main
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Successful in 4s
Reviewed-on: #73
2026-10-08 08:30:53 +02:00
Tirsvad 7c58c47d8e Test the Git excludes step
Add tests for the step that excludes .claude, .agents and AGENTS.md from git
in the new project: the three paths are ignored and absent from git status
after a run, while framework, .gitmodules and docs/artifact-registry.md stay
visible; no .gitignore is written and nothing is committed; a second run
writes each entry and the comment once and keeps the existing lines, also
when the file has no final newline; nothing is written for a path git
already ignores; a tracked path stays tracked and is named; the step is
skipped without the framework; the dry-run plan lists it.

The existing .env exclusion test also checks its comment line.

Refs #68
Task: MIL-009#4
2026-10-08 14:28:55 +08:00
Tirsvad e23ef3a4b6 Merge pull request 'Describe the files git ignores in the README (task 3)' (#72) from mil-009-readme into main
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Successful in 5s
Reviewed-on: #72
2026-10-08 08:21:54 +02:00
Tirsvad cc157816c7 Describe the files git ignores in the README
Add the "Git excludes" step to the overview, the sample plan, the numbered
run steps and a new section: which paths are excluded and why, that nothing
is committed or changed in a tracked file, that the entries live in
.git/info/exclude and so are not shared with a clone, what happens to a path
git already tracks, and how to track one anyway. Add the tracked-path case to
the error table and the new roles of git.sh and framework.sh to the code
layout.

Closes #67
2026-10-08 14:20:03 +08:00
Tirsvad e9872fa3ed Merge pull request 'Accept MIL-009 and add the Git excludes step (task 2)' (#71) from mil-009-exclude-framework-files into main
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Successful in 4s
Reviewed-on: #71
2026-10-08 08:13:52 +02:00
Tirsvad c379dd4d75 Resolve pending commit links for RC-032 2026-10-08 14:06:46 +08:00
Tirsvad 4058ab4e3e Exclude .claude, .agents and AGENTS.md from git in the new project
After the templates are copied, create-project.sh adds /.claude, /.agents and
/AGENTS.md to .git/info/exclude of the new project as its own step, "Git
excludes". No .gitignore or tracked file changes and nothing is committed.
The step is skipped when the framework steps are skipped, and a path git
already tracks stays tracked and is named in the step.

The .git/info/exclude code of exclude_env_file moves into the shared helper
exclude_from_git (git.sh), which both now use; the .env behavior is unchanged.

Refs #66
Task: MIL-009#2
2026-10-08 14:06:37 +08:00
Tirsvad 1b1b6bec2e Accept MIL-009 after review RC-032
S02 gave the Go in chat on 2026-10-08 and waived the PlantUML render check
(no PlantUML server is configured). Add the review record RC-032, set the
latest Version History rows of MIL-009 and the changed documents to Accepted
and the rows before them to Deprecated, and record the review in the
traceability matrix.
2026-10-08 14:06:36 +08:00
Tirsvad 4287d218ae Merge pull request 'Plan MIL-009: .claude, .agents and AGENTS.md are excluded from git' (#70) from mil-009-exclude-framework-files into main
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Successful in 4s
Reviewed-on: #70
2026-10-08 07:47:12 +02:00
Tirsvad 4f6204c58e Resolve pending commit links for MIL-009 2026-10-08 13:45:56 +08:00
Tirsvad 08cb484498 Plan MIL-009: .claude, .agents and AGENTS.md are excluded from git
Add the phase MIL-009 (proposed 2026-12-21 to 2026-12-23): after the
framework is installed, the new project excludes .claude, .agents and
AGENTS.md through its own .git/info/exclude, so no tracked file changes.

The analysis and design documents agree with it: Business Case objective 5,
US-001.03, UC-001 (postcondition, step 9, extension 9f, a rule), OC-001 (P15
and two exceptions), SD-001, DCD-001 and DCD-002 (excludeFromGit,
trackedPaths), and the Framework Setup and Template definitions in DM-001,
DM-002 and the dictionary.

Refs #65
Refs #66
Refs #67
Refs #68
Refs #69
2026-10-08 13:45:41 +08:00
Tirsvad b1c1fbf178 Merge pull request 'Link the token how-to from the README credentials section' (#64) from howto-link-credentials into main
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Successful in 3s
Reviewed-on: #64
2026-10-08 07:06:45 +02:00
Tirsvad 993722b742 Link the token how-to from the README credentials section
The `.env` (credentials) section now points to howto/create-access-tokens.md
next to the Token permissions reference, so a reader who needs a token finds
the step-by-step guide where the credentials are described.
2026-10-08 13:06:01 +08:00
Tirsvad b0925a51aa Merge pull request 'Add a step-by-step how-to for the Gitea and GitHub tokens' (#63) from howto-access-tokens into main
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Successful in 3s
Reviewed-on: #63
2026-10-08 06:58:07 +02:00
Tirsvad 08d0371da5 Add a step-by-step how-to for the Gitea and GitHub tokens
howto/create-access-tokens.md walks through creating the Gitea access token
and the GitHub classic personal access token that RepoFoundry needs, with nine
illustrations in howto/img/, how to hand the tokens to the script, how to keep
them safe and what the script's token errors mean.

The README's Token permissions section now links to it.
2026-10-08 12:54:46 +08:00
Tirsvad b90050e6c4 Merge pull request 'Gitea is the only remote (MIL-008) and version 0.3.1' (#58) from mil-008-gitea-only-remote into main
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Successful in 7s
Reviewed-on: #58
v0.3.1
2026-10-08 05:44:59 +02:00
Tirsvad 538e44c3a5 Bump the version to 0.3.1
Task: MIL-008#4
2026-10-08 11:27:50 +08:00
Tirsvad 19de9cd9a5 Record S02's acceptance of MIL-008 and RC-031
- RC-031 is Accepted with a Go verdict and no open action items
- MIL-008 and the documents it changes are set to Accepted (previous rows
  Deprecated): BC-001, US-001, UC-001, OC-001, SD-001, DCD-001, DCD-002,
  DM-001, DM-002, MIL-003, PP-001 and TM-001
2026-10-08 11:27:49 +08:00
Tirsvad 310d776605 Resolve pending commit links for the MIL-008 task 4 2026-10-08 11:26:54 +08:00
Tirsvad 1056639d5b Add the version bump to MIL-008 as task 4
The version is raised to 0.3.1 and release v0.3.1 is tagged on Gitea from the
merge commit once the pull request is merged. MIL-008 gets task 4 and
criterion 7; RC-031 counts seven criteria.
2026-10-08 11:26:53 +08:00
Tirsvad 43c2bbb3de Resolve pending commit links for the MIL-008 plan 2026-10-08 11:13:31 +08:00
Tirsvad 79f6edeb38 Add only the origin remote to the local project
create_local_project no longer adds a github remote, with or without GitHub:
a push to origin reaches GitHub through the push mirror. A github remote that
already exists, such as one made by an earlier version, is left as it is, and
a different origin is still refused.

- Remove github_remote_url, which nothing else used
- README describes the one remote and how to remove an old github remote
- Tests: origin is the only remote with and without GitHub, no GitHub address
  in .git/config, and an existing github remote is kept

Task: MIL-008#1
Task: MIL-008#2
Task: MIL-008#3
2026-10-08 11:13:21 +08:00
Tirsvad 039a28c01b Plan MIL-008: the local project has origin as its only remote
A project created by the script had two remotes, origin (Gitea) and github.
Gitea already pushes to GitHub through the push mirror, so the second remote
is not needed and invites a push that goes around the mirror.

- MIL-008 and its review record RC-031
- Objective 4, US-001.03, UC-001 step 8, OC-001 P9, SD-001, DCD-001, DCD-002,
  DM-001 and DM-002 describe one remote; MIL-003 criterion 1 and task 1 follow
- Project plan and traceability matrix list MIL-008 and RC-031
2026-10-08 11:13:09 +08:00
Tirsvad f64c4bd2f0 Merge pull request 'Docs: record S02's acceptance of RC-022 to RC-030' (#57) from docs-accept-reviews into main
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Failing after 6s
Reviewed-on: #57
2026-10-07 10:38:55 +02:00
Tirsvad 26329c352e Resolve pending commit links for the accepted reviews 2026-10-07 16:38:38 +08:00
Tirsvad 0b0a3b419a Record S02's acceptance of RC-022 to RC-030
- Review records RC-022 to RC-030 are Accepted
- The documents they review are set to Accepted (previous rows Deprecated)
- RC-028 and RC-029: Go-with-conditions becomes Go; the two action items are closed
- OC-001, SD-001 and DCD-001 carry a note that the UC-002 documents supersede the startProjectCreation signature
2026-10-07 16:38:36 +08:00
Tirsvad d174a7ce88 Merge pull request 'Docs: record the user-owner end-to-end run (A2) in RC-017' (#56) from mil-004-configurable-details into main
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Failing after 2s
Reviewed-on: #56
2026-10-07 10:13:35 +02:00
Tirsvad 8c1e7a9477 Merge pull request 'Docs: .env is optional, config.env is required (UC-002, US-002, OC-002, DCD, MIL-007) and review RC-030' (#55) from mil-006-license into main
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Failing after 3s
Reviewed-on: #55
2026-10-07 09:40:34 +02:00
Tirsvad bc27f40de1 Define the SD-002 link in RC-030 2026-10-07 15:05:06 +08:00
Tirsvad e0461746ee Resolve pending commit links for the .env wording 2026-10-07 15:04:55 +08:00
Tirsvad 24f15070fc Make the wording agree with the optional .env: UC-002, US-002, OC-002, DCD, MIL-007; review record RC-030
- config.env is required; a .env found nowhere means the token is asked
- RC-030 reviews the change

Task: MIL-007#2
Task: MIL-007#4
Refs #48
Refs #51
2026-10-07 15:04:52 +08:00
Tirsvad 35601009bc Merge pull request 'Implement MIL-006 and MIL-007: project license, qc submodules, link start, default configuration files' (#54) from mil-006-license into main
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Failing after 3s
Reviewed-on: #54
2026-10-07 09:03:19 +02:00
Tirsvad 049075957a Merge origin/mil-006-license: .env stays optional, config.env is required 2026-10-07 14:34:04 +08:00
Tirsvad ed79da4e34 Merge main into mil-006-license 2026-10-07 14:19:41 +08:00
Tirsvad fcc155a8ff Merge pull request 'Implement MIL-007: qc submodules fetched, start through a link, default configuration files' (#53) from mil-007-impl into mil-006-license
Reviewed-on: #53
2026-10-07 08:17:22 +02:00
Tirsvad 3204e20cac MIL-007: fix the new tests and document starting from any folder
- README: start from the folder where the project is created, make the script a global command, where config.env and .env are read from and the confirmation
- Tests: qc tests set up the temp directory and force a real failure; the default-files test runs from a folder without files of its own; the link test allows for path aliases; the work directory cleanup deletes links

Task: MIL-007#3
Task: MIL-007#4
Refs #49
Refs #51
2026-10-07 14:09:27 +08:00
Tirsvad 1a283430b3 WIP MIL-007: fetch the framework's qc, follow links, default configuration files
- git submodule update --init --recursive after adding or reusing the framework
- Follow links to the script so SCRIPT_DIR and the checkout are the real ones
- config.env and .env: --config/--env, else ./ in the working folder, else the checkout's
- Name the files used; a file from the working folder needs a yes before any request
- MIL-007 accepted; test fixtures for the qc checklists; tests/test-launch.sh

Work in progress: the README section is not written yet, and four tests of
test-launch.sh fail and two shellcheck warnings remain; they are fixed next.

Task: MIL-007#1
Task: MIL-007#2
Refs #47
Refs #48
Refs #51
2026-10-07 13:40:42 +08:00
Tirsvad 875dfba1b2 Use a public project in the test that reuses a repository holding LICENSE and README.md
A private project with GitHub no longer gets a license, so only a public one expects it.

Task: MIL-006#4
Refs #50
2026-10-07 13:28:47 +08:00
Tirsvad e960dd9da8 Set the project license in config.env; AGPL-3.0 default only for a public GitHub project
- PROJECT_LICENSE (a Gitea license key, or none) is read, checked and never asked
- Without it AGPL-3.0 applies only when GitHub is chosen and the project is public
- The license is applied on Gitea with or without GitHub, and checked against the server first
- Plan and summary name the license and where it came from
- MIL-006 accepted; README and config.env.example document the key
- Tests: new test-license.sh; existing tests use a public project where they expect AGPL-3.0

Task: MIL-006#1
Task: MIL-006#2
Task: MIL-006#3
Task: MIL-006#4
Refs #44
Refs #45
Refs #46
Refs #50
2026-10-07 13:08:49 +08:00
Tirsvad b324acbfae Resolve pending commit links for the default configuration files 2026-10-07 12:42:08 +08:00
Tirsvad 0ab50068bf Plan the default configuration files: working folder first, then the checkout
- --config and --env, else ./config.env and ./.env, else the checkout's
- Files named before any request; a file from the working folder needs a yes
- UC-002, US-002, MIL-007 criteria 9 and 10, models and contracts updated
- Review record RC-029
2026-10-07 12:42:05 +08:00
Tirsvad 88b4e5ce6c Resolve pending commit links for the task renames 2026-10-07 12:38:02 +08:00
Tirsvad be759e3832 Give the test tasks of MIL-006 and MIL-007 their own titles
The sync matches issues by title, so Test every case moved issue #39 of MIL-005.
2026-10-07 12:38:01 +08:00
Tirsvad fe6e5a4ba0 Merge pull request 'Plan MIL-006 and MIL-007 and UC-002: public-only AGPL default, qc fetch, global command' (#43) from mil-006-plan into main
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Failing after 3s
Reviewed-on: #43
2026-10-07 06:34:56 +02:00
Tirsvad 250df38d79 Resolve pending commit links for MIL-007, UC-002 and the license rule 2026-10-07 12:31:07 +08:00
Tirsvad 1cd27f77ed Plan MIL-007 and UC-002; AGPL-3.0 default only for a public GitHub project
- MIL-006: the AGPL-3.0 default needs GitHub and a public project
- MIL-007: fetch the framework's own submodules (qc); start through a command link; README usage
- UC-002 with SSD, DM, OC, SD and DCD; US-001.07 and US-002
- Reconcile the project DM, DCD, dictionary, use case diagram and traceability matrix
- Review records RC-022 to RC-028
2026-10-07 12:30:58 +08:00
Tirsvad ea7e25b65d Merge pull request 'Plan MIL-006: the project license set in config.env' (#42) from mil-006-plan into main
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Failing after 3s
Reviewed-on: #42
2026-10-06 08:16:43 +02:00
Tirsvad aca4eed377 Merge pull request 'MIL-005: ask for missing credentials and create the project's own .env' (#41) from mil-005-credentials into main
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Failing after 4s
Reviewed-on: #41
2026-10-06 08:16:31 +02:00