Skip to content

Execution Environment — Distribution Workflow & Process

  1. Create an issue in your GitLab project.
  2. Copy and paste the checklist below into the issue description.
  3. Work through the checklist.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
- [ ] **Define how your project will be distributed or delivered.***Describe in `/docs/distribution.md` how others can obtain, install, and run your software (e.g. packaged release, container, script, or zip).*

- [ ] **Question:** What is your target format and audience?  
  → *Decide whether the output will be:  
  - a **CLI tool** (zip, pip package, Gradle/Maven jar, npm package)  
  - a **web app or service** (deployed container or hosted URL)  
  - or a **library/module** (importable by others).  
  Record the choice and motivation in `/docs/distribution.md`.*

- [ ] **Automate build artifacts.***Set up a build process to produce distributable outputs (e.g. `poetry build`, `npm run build`, `./gradlew jar`). Add exact commands to the `README`.*

- [ ] **Version and tag your releases.***Use semantic (`vMAJOR.MINOR.PATCH`) or date (`YYYY.MM.PATCH`) versioning  and tag commits in Git. Document tagging policy and changelog location (`/docs/changelog.md`).*

- [ ] **Question:** How will others install or run your release?  
  → *Provide one-line install or run instructions in the `README` (e.g. `pip install .`, `java -jar app.jar`, `docker run ...`, `npm install -g ...`).*

- [ ] **Decide how to share release artifacts.***Options include: GitLab Releases, internal storage. Add URLs or folder references to README.*

- [ ] **Question:** How will you verify that a release works?  
  → *Add a smoke-test checklist in `/docs/release_test.md` (install, run, expected output, exit code).*

- [ ] **Container or portable option (optional).***Add `Dockerfile` or similar for a reproducible runtime environment. Document build/run commands and environment variables.*

- [ ] **Continuous delivery pipeline (optional).***If possible, automate builds and tagged releases via CI/CD (e.g. GitLab pipelines). Mention what triggers deployment in `/docs/distribution.md`.*

- [ ] **Question:** How will you handle pre-release vs. stable versions?  
  → *Define labels or branches for experimental builds (e.g. `alpha`, `beta`, `rc`) and explain when they’re merged into stable.*

- [ ] **Verify cross-platform distribution.***Test running the distributable on at least two OSes; record the results or known issues in an issue labeled `distribution-test`.*

- [ ] **Document update workflow.***Describe how new versions are published (manual tag, automated CI release) and how users should upgrade.*

- [ ] **Keep everything reproducible.***No manual file copying — all build artifacts must be reproducible from source via documented commands.*