Skip to content

Merge dev into main - #125

Merged
JE-Chen merged 46 commits into
mainfrom
dev
Oct 11, 2026
Merged

JE-Chen merged 46 commits into
mainfrom
dev

Conversation

@JE-Chen

@JE-Chen JE-Chen commented Oct 11, 2026 •

Copy link
Copy Markdown
Member

Promote the load runner and report integration changes from dev. Clarify the reviewed environment-variable-name and fixed test subprocess findings without changing the socket protocol.

Local socket suite: 17 passed.

Merge policy: wait for every registered check and both Codacy and SonarCloud quality gates; merge only the verified current head. No administrator bypass.

Stable publishing repair: select a patch above both the source version and existing PyPI releases using the tested shared release helpers, serialize publishing, and skip obsolete tested main commits. The PyPI API confirmed 0.0.78 already exists while old source increments selected it again. Local release-helper/workflow verification: 51 passed. Current reviewed head: 0b0f2ce.

PyModbus repair: request its serial dependency in both modbus/all extras and both channel TOMLs; synchronize uv.lock with existing metadata. Isolated PyModbus 3.15 import, request encoding and client construction passed; 62 parity/matrix/release/workflow tests and uv lock --check passed. Reviewed head: 77037eb.

…arity, mixed users, GUI stop, markdown report, health check, package gate)
The dev channel was uploaded by hand and last moved on 2026-04-04.

- ci-dev.yml gets a publish-dev job: after the test matrix passes on a
  push to dev, it builds from dev.toml and uploads when the commit is
  still the tip of dev and the wheel differs from the newest published
  one.
- scripts/dev_release.py takes the version from PyPI (newest release
  plus one patch), so nothing is committed back; the version in
  dev.toml is a floor.
- architecture.md, CLAUDE.md and docs/updates describe the two release
  channels; progress.md records two follow-ups (#24, #25).
[tool.setuptools.packages] find named no include, so setuptools took every
directory with an __init__.py and both je_load_density and
je_load_density_dev installed test/ next to the package. pyproject.toml and
dev.toml now limit discovery to je_load_density and its subpackages.

test/test_wheel_packages.py reads the find table of both files and checks
that its patterns select the package, every subpackage and nothing else.

Closes progress.md #24 (docs/updates U-20261001-09).
setuptools adds test*/test*.py to a source distribution by default, so the
je_load_density_dev 0.0.81 sdist still carried 72 test files after the wheels
stopped installing them. MANIFEST.in prunes test/; test_sdist_manifest.py
pins it. The wheels are byte-identical.
publish-dev (ci-dev.yml) and publish (publish-pypi.yml) hold the PyPI token
and installed build, twine and tomlkit unpinned, after upgrading pip. Both
now install only .github/requirements/publish.txt: wheels only, at locked
hashes, generated from publish.in with uv.

Dependabot's pip entry names .github/requirements, which it does not reach
from the root. test_workflow_actions.py fails when a job that reads the
token runs any other pip install. Closes progress.md #25.
python -m build created an isolated environment and downloaded the newest
setuptools, outside the hash lock, in the jobs that hold the PyPI token.
publish.in now lists setuptools (publish.txt pins 84.0.0; the other 30 pins
are unchanged) and both jobs build with --no-isolation.

Guards: every build in a job with the token carries --no-isolation, and
build-system.requires in pyproject.toml and dev.toml is satisfied by the
lock.
JE-Chen and others added 13 commits October 2, 2026 20:29
…form

feat: add shared records and isolated load execution
Bumps [gradle/actions/setup-gradle](https://github.com/gradle/actions) from 6.3.0 to 6.4.0.
- [Release notes](https://github.com/gradle/actions/releases)
- [Commits](gradle/actions@9c97196...3f5f9ad)

---
updated-dependencies:
- dependency-name: gradle/actions/setup-gradle
  dependency-version: 6.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
TestPioneer starts a runner with TEST_PIONEER_ARTIFACT_DIR set to the
directory that run output belongs in. A report asked for under a
relative name is now written below it, for every report generator, and
the path a generator returns is the path it wrote. Without the variable,
and for an absolute name, nothing changes.
…_actions/dev/gradle/actions/setup-gradle-6.4.0

chore(deps): bump gradle/actions/setup-gradle from 6.3.0 to 6.4.0
…artifact-dir

feat: write reports below TestPioneer's artifact directory
@codacy-production

codacy-production Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 1970 complexity · 25 duplication

Metric Results
Complexity 1970
Duplication 25

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@sonarqubecloud

Copy link
Copy Markdown

@JE-Chen
JE-Chen merged commit e8aa80a into main Oct 11, 2026
130 checks passed
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.

1 participant