Skip to content

Releases

v0.3.1 — campus.common.protocol

Choose a tag to compare

@nycomp nycomp released this 03 Nov 16:44
3236498

New campus.common.protocol module: wire-protocol constants (journey/device cookie names + TTLs; trace/journey/device header names) as fixed, deployment-invariant vocabulary (campus#1041). Single source of truth for header names formerly mirrored in campus.flask_campus.propagation, campus.audit.middleware.tracing, and campus_python.tracing. Additive (patch); lean-import contract untouched.

campus-common 0.3.0

Choose a tag to compare

@nycomp nycomp released this 02 Nov 08:08
645f3bc

Breaking: campus.common.services no longer ships a per-environment BASE_URLS table. Campus is deployment-agnostic — the shared kernel must not bake in deployment topology (college-pinned origins). The environment is the single source of truth: CAMPUS__URL / _URL / CAMPUS_BASE_URL / BASE_URL. An unconfigured service raises ValueError naming the variables to set. Everything else a consumer needs about a service comes from its OpenAPI description at the service's standard path. See CHANGELOG for details.

campus-common 0.2.2

Choose a tag to compare

@nycomp nycomp released this 02 Nov 05:42
7cbfed4

New campus.common.services module: the service URL registry. One resolver (get_base_url / resolve_base_url) owns where Campus services live, replacing the URL tables duplicated across campus.config, the campus_python SDK, and per-app resolvers.

  • Resolution precedence: CAMPUS_<SERVICE>_URL > <SERVICE>_URL > CAMPUS_BASE_URL > BASE_URL > the per-environment BASE_URLS table.
  • CAMPUS_-prefixed forms are primary (collision-safe on shared hosts); bare forms are aliases for dedicated hosts.
  • CAMPUS_BASE_URL/BASE_URL support gateway / single-server deployments: one origin fronting auth+api+audit; callers append route prefixes themselves.
  • Override/base values must be bare origins, validated like PUBLIC_URL; errors name the variable.
  • get_base_url keeps deployment semantics (testing + in-process self-calls resolve to the canonical origin); resolve_base_url is the client semantics the SDK needs.
  • env.py declares the override variables. Environment resolution: ENV > CAMPUS_ENV > development (SDK duality, unified).

Additive change → patch bump per the versioning policy. Full notes in CHANGELOG.md.

campus-common 0.2.1

Choose a tag to compare

@nycomp nycomp released this 28 Oct 10:11
718637f

Interface unchanged (same all as 0.2.0). utils submodules other than url now load lazily via module getattr, so import campus.common no longer loads bcrypt — restores the lean-import contract guarded by campus-suite's test_import_common_is_lean. Patch bump per the versioning contract.

campus-common 0.2.0

Choose a tag to compare

@nycomp nycomp released this 28 Oct 09:56
55138c5

First locked public-interface release.

  • Interface now CI-enforced: closed-world __all__ tests + checked-in manifest (tests/interface_manifest.json). Interface changes = deliberate commits with CHANGELOG entries and the version bump the diff dictates (additive -> patch, breaking -> minor).
  • Promoted to __all__: utils.{uid, secret, utc_time, datacls}, errors.{handlers, base}, validation.record, schema.{base, openapi}, full env surface (incl. documented module-__getattr__ variable lookup).
  • utils.diff -> utils._diff (private; zero consumers).

Install: pip install https://github.com/nyjc-computing/campus-common/releases/download/v0.2.0/campus_common-0.2.0-py3-none-any.whl

Versioning: strict 0.x until 1.0 — patch = additive, minor = breaking-allowed. See CHANGELOG.md. Refs nyjc-computing/campus#970.

campus-common 0.1.0

Choose a tag to compare

@nycomp nycomp released this 28 Oct 07:45

Initial release: campus.common carved from the campus monorepo (env, errors, introspect, schema, utils, validation). PEP 420 namespace portion; stdlib + bcrypt only; flask stays lazy (#861). Refs nyjc-computing/campus#970 phase 3.