diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b5aa0a6..a1cd1f7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,6 +1,7 @@ name: Release -# Runs when a version tag is pushed: v1.0.0, v1.0.1, ... +# Runs when a version tag is pushed: v1.0.0, v1.0.1, and a beta such as v2.0.0b1. +# PyPI keeps a beta apart: pip installs it only when it is asked for. # Publishes the two packages to PyPI with trusted publishing: PyPI accepts # the upload because it comes from this workflow in this repository. No # token is stored anywhere. diff --git a/README.md b/README.md index 56f1834..a3952c5 100644 --- a/README.md +++ b/README.md @@ -41,14 +41,26 @@ This repository has five packages. ## Install -Version 1.0.0 is on PyPI. Python 3.9 or later. No dependencies. +Python 3.9 or later. No dependencies. + +| Version | State | Install | +|---|---|---| +| 1.0.0 | Stable. On PyPI | `pip install codeupipe` | +| 2.0.0b1 | Beta. The `beta` branch of this repository. Not on PyPI yet | From this repository, see below | + +This README describes version 2, the beta. A beta can change in a way that +is not compatible, from one beta to the next. `pip install codeupipe` does +not install a beta: pip installs one only when you ask for it, with +`pip install --pre codeupipe` or with the exact version. + +Until the beta is on PyPI, install it from this repository: ```bash -pip install codeupipe +pip install "codeupipe @ git+https://github.com/orchestrate-solutions/codeupipe@beta#subdirectory=packages/codeupipe" +pip install "codeupipe-lint @ git+https://github.com/orchestrate-solutions/codeupipe@beta#subdirectory=packages/codeupipe-lint" ``` -`codeupipe-lint` 1.0.0 is not on PyPI yet. Until it is, install it from this -repository: +`codeupipe-lint` 1.0.0 is not on PyPI. Install it from the tag `v1.0.0`: ```bash pip install "codeupipe-lint @ git+https://github.com/orchestrate-solutions/codeupipe@v1.0.0#subdirectory=packages/codeupipe-lint" @@ -57,6 +69,21 @@ pip install "codeupipe-lint @ git+https://github.com/orchestrate-solutions/codeu Version 1.0.0 is not compatible with `codeupipe` 0.10.0. It is a new library with the same name. +### Changes from 1.0.0 to 2.0.0b1 + +These changes are not compatible with 1.0.0. + +- **A step is reported by a label, the name of its class.** State and Hooks + give `DiscountFilter`, where 1.0.0 gave the full path + `examples.pricing.discount_filter.DiscountFilter`. +- **Removed:** `AnonymousStep`, `Pipeline.identities` (use + `Pipeline.labels`), `Pipeline.step_sites`, and lint rule CUP-A006. +- **`codeupipe.lower` is now `codeupipe.compile`.** The command is + `python -m codeupipe.compile`. + +The TypeScript packages are new. They are version `1.0.0-beta.1` and are not on +npm. + ## Example [examples/pricing/](examples/pricing/) has one class in each file. The diff --git a/packages/codeupipe-compile-ts/README.md b/packages/codeupipe-compile-ts/README.md index 6f2b426..2357435 100644 --- a/packages/codeupipe-compile-ts/README.md +++ b/packages/codeupipe-compile-ts/README.md @@ -1,8 +1,7 @@ # codeupipe-compile for TypeScript Writes a codeupipe pipeline as one plain TypeScript module with no import -of codeupipe. It reads the source and does not run it. It is not on npm -yet. +of codeupipe. It reads the source and does not run it. It is a beta, version `1.0.0-beta.1`, and it is not on npm yet. **The rule: code that compiles gives the same output as the pipeline. A pipeline for which the compiler cannot keep that rule is refused, with the diff --git a/packages/codeupipe-compile-ts/package-lock.json b/packages/codeupipe-compile-ts/package-lock.json index 7b691b9..fbf2527 100644 --- a/packages/codeupipe-compile-ts/package-lock.json +++ b/packages/codeupipe-compile-ts/package-lock.json @@ -1,12 +1,12 @@ { "name": "codeupipe-compile", - "version": "0.1.0", + "version": "1.0.0-beta.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "codeupipe-compile", - "version": "0.1.0", + "version": "1.0.0-beta.1", "license": "Apache-2.0", "dependencies": { "codeupipe": "file:../codeupipe-ts", @@ -24,7 +24,7 @@ }, "../codeupipe-ts": { "name": "codeupipe", - "version": "0.1.0", + "version": "1.0.0-beta.1", "license": "Apache-2.0", "devDependencies": { "@types/node": "^24.0.0", diff --git a/packages/codeupipe-compile-ts/package.json b/packages/codeupipe-compile-ts/package.json index d5e2406..cfee3fc 100644 --- a/packages/codeupipe-compile-ts/package.json +++ b/packages/codeupipe-compile-ts/package.json @@ -1,6 +1,6 @@ { "name": "codeupipe-compile", - "version": "0.1.0", + "version": "1.0.0-beta.1", "private": true, "description": "Writes a codeupipe pipeline as plain TypeScript with no import of codeupipe.", "license": "Apache-2.0", diff --git a/packages/codeupipe-lint-ts/README.md b/packages/codeupipe-lint-ts/README.md index b5a98a6..5f4668b 100644 --- a/packages/codeupipe-lint-ts/README.md +++ b/packages/codeupipe-lint-ts/README.md @@ -1,7 +1,7 @@ # codeupipe-lint for TypeScript A linter for TypeScript code that uses codeupipe. It reads the source and -does not run it. It is not on npm yet. +does not run it. It is a beta, version `1.0.0-beta.1`, and it is not on npm yet. The linter is a codeupipe pipeline: [src/lint-pipeline.ts](src/lint-pipeline.ts). It depends on `codeupipe` and on the `typescript` package, which it uses to diff --git a/packages/codeupipe-lint-ts/package-lock.json b/packages/codeupipe-lint-ts/package-lock.json index c013f6c..c00e595 100644 --- a/packages/codeupipe-lint-ts/package-lock.json +++ b/packages/codeupipe-lint-ts/package-lock.json @@ -1,12 +1,12 @@ { "name": "codeupipe-lint", - "version": "0.1.0", + "version": "1.0.0-beta.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "codeupipe-lint", - "version": "0.1.0", + "version": "1.0.0-beta.1", "license": "Apache-2.0", "dependencies": { "codeupipe": "file:../codeupipe-ts", @@ -24,7 +24,7 @@ }, "../codeupipe-ts": { "name": "codeupipe", - "version": "0.1.0", + "version": "1.0.0-beta.1", "license": "Apache-2.0", "devDependencies": { "@types/node": "^24.0.0", diff --git a/packages/codeupipe-lint-ts/package.json b/packages/codeupipe-lint-ts/package.json index f36a28a..6d5f607 100644 --- a/packages/codeupipe-lint-ts/package.json +++ b/packages/codeupipe-lint-ts/package.json @@ -1,6 +1,6 @@ { "name": "codeupipe-lint", - "version": "0.1.0", + "version": "1.0.0-beta.1", "private": true, "description": "A linter for TypeScript code that uses codeupipe.", "license": "Apache-2.0", diff --git a/packages/codeupipe-lint/pyproject.toml b/packages/codeupipe-lint/pyproject.toml index dd4d45c..658572e 100644 --- a/packages/codeupipe-lint/pyproject.toml +++ b/packages/codeupipe-lint/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "codeupipe-lint" -version = "1.0.0" +version = "2.0.0b1" description = "Lint rules for codeupipe pipelines." readme = "README.md" requires-python = ">=3.9" @@ -13,6 +13,7 @@ license-files = ["LICENSE", "NOTICE"] authors = [{name = "Joshua Wink"}] keywords = ["codeupipe", "lint", "pipeline"] classifiers = [ + "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python :: 3", @@ -25,7 +26,7 @@ classifiers = [ "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Quality Assurance", ] -dependencies = ["codeupipe==1.0.0"] +dependencies = ["codeupipe==2.0.0b1"] [project.urls] Homepage = "https://github.com/orchestrate-solutions/codeupipe" diff --git a/packages/codeupipe-ts/README.md b/packages/codeupipe-ts/README.md index d909842..813425e 100644 --- a/packages/codeupipe-ts/README.md +++ b/packages/codeupipe-ts/README.md @@ -4,7 +4,7 @@ codeupipe is a library for writing a program as a pipeline of small steps. This is the TypeScript runtime. It has no dependencies. The built JavaScript runs in a browser and in Node. -It is not on npm yet. It implements the same contract as the Python +It is a beta, version `1.0.0-beta.1`, and it is not on npm yet. It implements the same contract as the Python package, and the same 27 conformance cases judge it: [conformance/API.md](../../conformance/API.md). diff --git a/packages/codeupipe-ts/package-lock.json b/packages/codeupipe-ts/package-lock.json index 4e31871..d3fc45f 100644 --- a/packages/codeupipe-ts/package-lock.json +++ b/packages/codeupipe-ts/package-lock.json @@ -1,12 +1,12 @@ { "name": "codeupipe", - "version": "0.1.0", + "version": "1.0.0-beta.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "codeupipe", - "version": "0.1.0", + "version": "1.0.0-beta.1", "license": "Apache-2.0", "devDependencies": { "@types/node": "^24.0.0", diff --git a/packages/codeupipe-ts/package.json b/packages/codeupipe-ts/package.json index 069bece..102dfe4 100644 --- a/packages/codeupipe-ts/package.json +++ b/packages/codeupipe-ts/package.json @@ -1,6 +1,6 @@ { "name": "codeupipe", - "version": "0.1.0", + "version": "1.0.0-beta.1", "private": true, "description": "A TypeScript library for writing a program as a pipeline of small steps.", "license": "Apache-2.0", diff --git a/packages/codeupipe/pyproject.toml b/packages/codeupipe/pyproject.toml index a6b0291..7d2859b 100644 --- a/packages/codeupipe/pyproject.toml +++ b/packages/codeupipe/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "codeupipe" -version = "1.0.0" +version = "2.0.0b1" description = "A Python library for writing a program as a pipeline of small steps." readme = "README.md" requires-python = ">=3.9" @@ -13,6 +13,7 @@ license-files = ["LICENSE", "NOTICE"] authors = [{name = "Joshua Wink"}] keywords = ["pipeline", "filter", "payload", "composition"] classifiers = [ + "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python :: 3",