NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
A7P ballistic profile format — encode/decode, validation, and field constraints.
Last release 2 months ago
16 Jul 2026
Too new to tell
only 2 release windows
Nearly every release is documented
notes for 5 of 5 stable releases
Nothing withdrawn
no release was ever pulled
3 months old
8 releases · first in 2026
One column per month.
yupy dependency and the hand-written src/a7p/yupy_schema.py validator it backed — unused by the public a7p.validate() path since the migration to sche
yupy dependency and the hand-written src/a7p/yupy_schema.py validator ita7p.validate() path since the migration toschema_validator.py (fastjsonschema/jsonschema againstschema/a7p.schema.json), and kept only as a reference/regression suitetests/test_yupy_schema.py) until nowexceptions.YupyViolation and exceptions.A7PYupyValidationError — foldedViolation/A7PValidationError; A7PValidationError no longer.violations/.yupy_violations/.all_violations, just.violations list--disable-yupy renamed to --disable-validatorsrc/generated/a7p_schema_validator.cjs viascripts/compile.py — the only source change wasschema/a7p.schema.json's x-decision/x-discrepancy annotation text,py'syupy_schema.py/test_yupy_schema.py (referenced there as context for whypy/ above. Thesex-* keys are documentation only, ignored by ajv — no validationlib/src/generated/a7p_schema.g.dart via scripts/compile.pyschema/a7p.schema.json change as js/ above, nox-* keys are ignored by json_schema).a7p/generated/a7p_schema.g.json via scripts/compile.py —schema/a7p.schema.json change as js/ above, nox-* keys are ignored bysanthosh-tekuri/jsonschema).schema/a7p.schema.json 's required string fields ( profile_name , cartridge_name , bullet_name , short_name_top , short_name_bot , caliber ) wrongly c
schema/a7p.schema.json's required string fields (profile_name,
cartridge_name, bullet_name, short_name_top, short_name_bot,
caliber) wrongly carried minLength: 1, rejecting the empty string —
real device profiles ship these unset. Fixed at the source and
regenerated into all four packages via scripts/compile.py.
caliber, profile_name, cartridge_name, bullet_name,short_name_top, and short_name_bot now accept an empty string,_compiled_schema.py and the bundleda7p.schema.json regenerated from schema/a7p.schema.jsonminLength fix as py/, regenerated intosrc/generated/a7p_schema_validator.cjsminLength fix as py/, regenerated intolib/src/generated/a7p_schema.g.dartminLength fix as py/, regenerated intoa7p/generated/a7p_schema.g.jsonNo changes since 1.2.1 (patch has been applied to js package)
Full Changelog: v1.2.1...v1.2.2
py , js , and dart merged from separate repos/submodules into this monorepo, with full git history preserved — see docs/DESIGN-schema-unification.md f
py, js, and dart merged from separate repos/submodules into this
monorepo, with full git history preserved — see
docs/DESIGN-schema-unification.md for the design behind this release.
schema/a7p.schema.json viaschema_validator.py (fastjsonschema-compiled, jsonschema fallbackyupy_schema.pyproto/profedit.proto now lives once at the repo root instead of aproto/schema/a7p.schema.json via aajv validator (src/generated/a7p_schema_validator.cjs,scripts/build_schema_validator.mjs) instead of yup —yup and @types/yup are gone; ajv is a devDependency only (used byproto/profedit.proto now lives once at the repo root instead of asrc/proto/dart — both generateproto/profedit.prototest/validate.test.ts, 10 tests) covering the samedart's validator testszoom was unbounded (accepted 0–255); now bounded to 0–6, matching the schemabc_cd/mv for CUSTOM drag models were capped ×10 too lowb_length minimum was 1 instead of 10ValidationError was imported from yup, not this package's ownerrors.ts — error instanceof ValidationError checks in index.tsyup removalschema/a7p.schema.json via thejson_schema package instead of hand-written A7pValidator/A7pFieldConstraints range checks — the schema is embedded as alib/src/generated/a7p_schema.g.dart,python scripts/compile.py --dart), since noc_zero_distance_idx no longer bounds dynamically by distances.length - 1; now the static 0–255 range, matching py/jsproto/profedit.proto now lives once at the repo root instead of aproto/test/a7p_validator_test.dart, 9 tests) covering realPayload objects, including the c_idx 201–254 gap and mvREADME.md (previously missing, unlike py/js)py , js , and dart merged from separate repos/submodules into this monorepo, with full git history preserved — see docs/DESIGN-schema-unification.md f
py, js, and dart merged from separate repos/submodules into this
monorepo, with full git history preserved — see
docs/DESIGN-schema-unification.md for the design behind this release.
schema/a7p.schema.json viaschema_validator.py (fastjsonschema-compiled, jsonschema fallbackyupy_schema.pyproto/profedit.proto now lives once at the repo root instead of aproto/schema/a7p.schema.json via aajv validator (src/generated/a7p_schema_validator.cjs,scripts/build_schema_validator.mjs) instead of yup —yup and @types/yup are gone; ajv is a devDependency only (used byproto/profedit.proto now lives once at the repo root instead of asrc/proto/dart — both generateproto/profedit.prototest/validate.test.ts, 10 tests) covering the samedart's validator testszoom was unbounded (accepted 0–255); now bounded to 0–6, matching the schemabc_cd/mv for CUSTOM drag models were capped ×10 too lowb_length minimum was 1 instead of 10ValidationError was imported from yup, not this package's ownerrors.ts — error instanceof ValidationError checks in index.tsyup removalschema/a7p.schema.json via thejson_schema package instead of hand-written A7pValidator/A7pFieldConstraints range checks — the schema is embedded as alib/src/generated/a7p_schema.g.dart,python scripts/compile.py --dart), since noc_zero_distance_idx no longer bounds dynamically by distances.length - 1; now the static 0–255 range, matching py/jsproto/profedit.proto now lives once at the repo root instead of aproto/test/a7p_validator_test.dart, 9 tests) covering realPayload objects, including the c_idx 201–254 gap and mvREADME.md (previously missing, unlike py/js)py , js , and dart merged from separate repos/submodules into this monorepo, with full git history preserved — see docs/DESIGN-schema-unification.md f
py, js, and dart merged from separate repos/submodules into this
monorepo, with full git history preserved — see
docs/DESIGN-schema-unification.md for the design behind this release.
schema/a7p.schema.json viaschema_validator.py (fastjsonschema-compiled, jsonschema fallbackyupy_schema.pyproto/profedit.proto now lives once at the repo root instead of aproto/schema/a7p.schema.json via aajv validator (src/generated/a7p_schema_validator.cjs,scripts/build_schema_validator.mjs) instead of yup —yup and @types/yup are gone; ajv is a devDependency only (used byproto/profedit.proto now lives once at the repo root instead of asrc/proto/dart — both generateproto/profedit.prototest/validate.test.ts, 10 tests) covering the samedart's validator testszoom was unbounded (accepted 0–255); now bounded to 0–6, matching the schemabc_cd/mv for CUSTOM drag models were capped ×10 too lowb_length minimum was 1 instead of 10ValidationError was imported from yup, not this package's ownerrors.ts — error instanceof ValidationError checks in index.tsyup removalschema/a7p.schema.json via thejson_schema package instead of hand-written A7pValidator/A7pFieldConstraints range checks — the schema is embedded as alib/src/generated/a7p_schema.g.dart,python scripts/compile.py --dart), since noc_zero_distance_idx no longer bounds dynamically by distances.length - 1; now the static 0–255 range, matching py/jsproto/profedit.proto now lives once at the repo root instead of aproto/test/a7p_validator_test.dart, 9 tests) covering realPayload objects, including the c_idx 201–254 gap and mvREADME.md (previously missing, unlike py/js)First stable release, no changes from 0.1.0-beta.1.
First stable release, no changes from 0.1.0-beta.1.
A7pFile — .a7p binary format encode/decode ([32-byte MD5 hex string][protobuf bytes])
A7pFile — .a7p binary format encode/decode ([32-byte MD5 hex string][protobuf bytes])A7pValidator — profile field validationA7pFieldConstraints — per-field raw wire scale (fractionDigits) and
independent UI display precision (uiFractionDigits)lib/src/proto/) from proto/profedit.protobin/generate_proto.dart — regenerates the protobuf bindings; cross-platform
replacement for the shell-based protoc invocation used in the original
monorepo Makefiletest/a7p_field_constraints_test.dart).github/workflows/ci.yml): analyze, format check, test
(Linux/macOS/Windows), pub.dev dry-run jobsInitial extraction from archerbc2_flutter/packages/a7p into a standalone
package.
Your coding agent can read these notes before it upgrades. Set up the MCP server →