2 Commits
+22 -27
View File
@@ -4,33 +4,6 @@ Python library for scripts running in an i7 job container. It gives a script thr
plant signals (read and write) through the job's sidecar, the customer database through the plant signals (read and write) through the job's sidecar, the customer database through the
db-controller, and millisecond time helpers. db-controller, and millisecond time helpers.
## Versioning and the pyproject template
There is no `pyproject.toml` in this repository. It is generated from
`pyproject.toml.tmpl`, and its version comes from the git tag that triggered the build:
```toml
version = "{{vless .TagName}}"
```
gitea-sidecar renders every `*.tmpl` file in the source to its name minus the suffix before
building the wheel, so a tag of `v0.1.1` produces version `0.1.1``vless` strips the
leading `v`, which git wants and PEP 440 does not. `.TagName` and `.CommitID` are also
available for anything else worth stamping.
The tag is therefore the only place a version is written. Do not add a hardcoded version
back into the template: the build would keep producing that one version, and publishing a
second tag would fail because the package file already exists.
**Building locally** needs the same render step, since the file the build tools look for is
not in the repository:
```bash
sed 's/{{vless .TagName}}/0.0.0.dev0/' pyproject.toml.tmpl > pyproject.toml
```
`pyproject.toml` is gitignored, so a local copy never reaches a build.
## Availability ## Availability
Inside a job container the library is already importable — the scheduler mounts the SDK Inside a job container the library is already importable — the scheduler mounts the SDK
@@ -151,6 +124,28 @@ fast `interval_ms` loop.
**`to_datetime(unix_milli)`** — converts back to a local `datetime`, for logging. **`to_datetime(unix_milli)`** — converts back to a local `datetime`, for logging.
## Versioning and the pyproject template
There is no `pyproject.toml` in this repository — it is generated from
`pyproject.toml.tmpl`, whose version line reads `version = "{{vless .TagName}}"`.
gitea-sidecar renders every `*.tmpl` in the source to its name minus the suffix before
building the wheel, so a tag of `v0.1.3` publishes version `0.1.3`; `vless` strips the
leading `v` that git wants and PEP 440 forbids. The tag is the only place a version is
written, and the published wheel cannot disagree with the tag that produced it.
Do not put a hardcoded version back into the template: the build would keep producing that
one version, and the next tag would fail with a 409 because the package file already
exists.
**Building locally** needs the same render step, since the file the build tools look for is
not in the repository:
```bash
sed 's/{{vless .TagName}}/0.0.0.dev0/' pyproject.toml.tmpl > pyproject.toml
```
`pyproject.toml` is gitignored, so a local copy never reaches a build.
## Error handling ## Error handling
Every method in this library catches its own exceptions, prints a line, and returns an empty Every method in this library catches its own exceptions, prints a line, and returns an empty