Skip to content

DX-D04: Update contributing setup documentation - #41

Closed
w196n8y-hub wants to merge 47 commits into
thoth-tech:11.0.xfrom
ontrack-features-t2-2026:fix/dx-d04
Closed

DX-D04: Update contributing setup documentation#41
w196n8y-hub wants to merge 47 commits into
thoth-tech:11.0.xfrom
ontrack-features-t2-2026:fix/dx-d04

Conversation

@w196n8y-hub

Copy link
Copy Markdown

Summary

Updates CONTRIBUTING.md to improve and simplify the development setup documentation for DX-D04.

Changes

  • Updated the frontend description to Angular 22.
  • Added a shared Common setup section to reduce duplicated setup instructions.
  • Updated the Dev Containers and Docker Compose sections to reference the common setup steps.
  • Corrected outdated wording and setup instructions.
  • Fixed documentation wording and spelling issues.
  • Updated the table of contents to match the revised structure.

Validation

  • git diff --check passes with no errors.
  • Only CONTRIBUTING.md was modified.

Clupai8o0 and others added 30 commits July 22, 2026 01:04
Trim overseer from local-paths, run npm start, add a docker proxy that points at doubtfire-api, and document the run steps and failures.
This pull request template includes sections for Jira ticket, summary, target branch, testing, security and privacy, evidence, and a checklist to ensure thorough review.
chore(deploy): add mail catcher and web push keys to the local dev stack
…uest-template

Add pull request template for consistent submissions
worked on fixing podman compatablity
Three people lost an evening to the same local setup failure this week.
Two hit "Tablespace is missing for a table" during rake db:populate and
could not get past it, one ran the populate command on the host instead
of in the container.

The database data directory is a bind mount on the host, so it survives
docker compose down -v and gets reused indefinitely. The compose files
pulled an unpinned mariadb tag, so two people who set up a month apart
got two different majors pointed at the same folder layout. Pin both
development compose files to 12.3, which is the version the working
stack was verified against.

Once that folder is unreadable, db:populate cannot fix it: the drop is
the step that fails. The guide said to rerun step 2, which is exactly
what does not work. Problem 5 now carries the full stop, delete the
folder, up, populate sequence with the PowerShell form alongside the
POSIX one.

Also add problem 14 for the tablespace error itself, problem 15 for
running bundle on the host by mistake, and a check at the top of problem
6 so a dead api container is not misread as the proxy bug.
Three people hit setup problems this week and all three sent screenshots
of terminals. Two were cropped above the line that mattered, and one was
a photo of a Word document containing a screenshot of a terminal, which
is two lossy steps away from the text.

Add an Asking for help section between the health checks and the problem
list, which is where someone already is when they get stuck. It asks for
docker ps -a rather than docker ps, because an exited container is
invisible to the latter and is usually the whole problem, and it asks for
the two container logs as attached files rather than as pictures.

Also ask which branch each repo is on and whether both -f flags were
used. A third of the entries in the problem list turn on those two
things and we currently have to ask every time.
The command added in the previous commit does not survive PowerShell.
A plain > redirect writes UTF-16, so the file reads as binary to most
tools, and PowerShell wraps native stderr in error objects, which
separates the error message from the stack trace that explains it.

The first log captured with it came back needing iconv to read, with
'rake aborted!' split away from the ActiveRecord exception below it.

Wrapping in cmd /c avoids both. Keep the plain form for macOS and Linux.
Formatted commands in RUNNING-LOCALLY.md with code blocks for better readability.
…cument-reset

fix(dev): pin the dev database image and document the hard reset
Three people on Windows could not get the stack up. All three failed on
rake db:populate with errno 194, Tablespace is missing for a table, on
the same table.

It is not corruption and not stale data. It reproduces on a database
created seconds earlier: two of them deleted the data directory, brought
the stack up clean and got the identical error on the identical table.

InnoDB cannot reliably rename a table when its files are on a host
directory shared into the container on Windows. Loading the schema
renames tables while it adds foreign keys, so it fails on the first one
every time. MariaDB/mariadb-docker#331 reproduces it in three
statements, and it does not happen without the bind mount.

Use a named db_data volume instead, so the database lives inside
Docker's own filesystem. docs/ONTRACK_PODMAN_SETUP.md already reached
this conclusion for Podman and docker-compose.podman.yml already does
it; this applies the same fix to the base compose.

Rewrite problem 14 around the real cause, change problem 5's reset from
deleting a folder to down -v, and correct problem 8, which said down -v
does not delete your database. That was true under the bind mount and is
false now.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
fix(dev): move the dev database off the host bind mount
…ault

The API does enforce a minimum cohort size. RUNNING-LOCALLY.md said it did
not, which is wrong in the direction that matters on a privacy control and
would send someone hunting a config bug that is really a 503.

Raise DF_PPI_MINIMUM_COHORT_SIZE from 5 to 20 to match
PeerProgressApi::MINIMUM_SAFE_COHORT_SIZE, explain why the floor and the
quantisation bucket are a matched pair, and record the API commit the wording
was checked against.

Also record a BEFORE count in the local verification recipe, so a second run
cannot read as a pass, and note that seeded units are too small to clear the
floor.
…ess-local-settings

chore(deploy): configure local peer progress defaults
* Add configurable marker notification thresholds

* fix(ci): gate the Teams notifier and harden its payload

Adds a job guard so the webhook is unreachable from anonymous fork pull
requests on these public repositories, and so the file is inert if it ever
travels to thoth-tech or doubtfire-lms.

Adds reopened and ready_for_review, which is the transition a reviewer alert
exists to catch, and varies the headline per action so it stays accurate.

Strips Markdown link and code syntax from the title, author and head label
before they reach the channel. Joins on a double newline, which is what Teams
renders as a break. Reports the real HTTP status instead of asserting a
delivery the workflow never checked.

---------

Co-authored-by: Clupai8o0 <clupaio4@gmail.com>
Refactor Teams notification to use Adaptive Card
Simplified condition for triggering notification.
maplefoxgit and others added 17 commits August 24, 2026 18:38
GitHub gates on the test merge commit whenever that commit carries a
status, and only falls back to the head when it carries none. The test
merge commit carries none of this repository's other checks, so
reporting there moves the merge gate onto a commit CI never sees, and
that commit is recomputed every time the base branch moves.

Report on head.sha instead. A recomputed test merge commit is no longer
something the evaluator reports on, so drop it from the mid-evaluation
consistency check as well.

14 unit tests pass.
…view-policy

ci: enforce OnTrack PR review policy
The membership step read secrets.TEAM_MEMBERSHIP_TOKEN, which does not exist.
The organisation secret is TEAM_MEMBERSHIP_ACCESS, so the step hit its own
missing-secret guard and failed on every pull request in all three repositories.

The author login also went into the curl URL unencoded and without --globoff, so
a login containing brackets made curl exit before sending anything. dependabot[bot]
is exactly that shape, which turned every dependency bump into a red check.

A pull request from a branch in this repository now short-circuits to eligible
without an API call, which is what kept Dependabot and every in-org branch
notifying before this workflow grew a step. Membership state "pending" counts
alongside "active", so a teammate who has not accepted their organisation
invitation is no longer skipped. A skip emits a warning naming the author,
because a silent skip was the failure mode this step was added to remove.

The Adaptive Card payload is restored to what is on 11.0.x. Replacing it with a
flat text body was not part of this change.
Nothing in the api sets a queue, so a worker taking default would run
AcceptSubmissionJob, which every task submission enqueues and which raises
because development has no texlive service. Every dev submission would drop to
fix with an automated comment on it. The worker takes mailers only, which
doubtfire-api#43 puts the notification email job on.

The Podman override had no block for the new service, so it resolved to a March
2025 8.0.x image while the api resolved to the local 11.0 build, and its binds
lost their selinux relabel. It now mirrors the api block.

The worker also gets a restart policy, a health-gated dependency on Redis so a
lost startup race is not permanent and silent, and a TZ, because three of the
seven cron entries name a wall-clock time.

RUNNING-LOCALLY.md described queued delivery as current behaviour. It now says
what the worker is for and names api#43 as what changes it.
…lidation-20260826

ci: add required pull request validation
…fications

chore(ci): notify Teams for verified team members
…rker

chore(deploy): run Sidekiq worker locally
…ction-values-20260824

fix(ppi): configure approved production values
The compare call 404s once a source or target branch is deleted, and with
set -euo pipefail that fails the whole weekly job instead of skipping the
entry. Check both refs exist first and exit 0 when either is missing.
…y-integration-prs-20260826

ci: add weekly integration PR automation
@w196n8y-hub

Copy link
Copy Markdown
Author

Closing this PR because it included unrelated commit history. A clean replacement PR has been opened as #42.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants