Releases: pgxn/meta
Releases · pgxn/meta
Relelase 0.5.1
Relelase 0.5.0
⚡ Improvements
- Added the error module, which defines all the errors returned by pgxn_meta.
- Changed the errors returned by all the APIs from boxed errors error module errors.
- Added
release.Digests.validate
method to validate a file against one or more digests.
📔 Notes
- Removed the
valid::ValidationError
enum. - Changed the errors returned from the valid module from boxed boon errors with lifetimes to error module errors with no lifetimes, eliminating the need for lifetimes on the Validator struct and methods.
📚 Documentation
- Fixed the repository link in
Cargo.toml
.
🆚 For more detail compare changes since v0.4.0.
Relelase 0.4.0
The theme of this release is JSON Web Signatures.
⚡ Improvements
- Following RFC 5, added v2 JSON Schemas for the
certs
property and its childpgxn
property, which contains an RFC 7515 JSON Web Signature (JWS) JSON Serialization object in either the general or flattened syntaxes. - Revamped the release module to support the updated release signing spec defined in RFC 5
- Added the
validate_payload
method tovalid::Validator
, which that therelease::Release
deserialization implementation uses to validate the JWS payload. Required because the payload is Base 64 URL-encoded and therefore cannot be parsed into a struct on the first pass.
📔 Notes
- The [release] interface has changed with the new data structures. The [JWS-JS] data added in v0.3.0 has been replaced with RFC 7515-standard JSON Serialization.
- Upgraded to [json-patch] v3.0 and updated all other dependencies.
🆚 For more detail compare changes since v0.3.0.
Relelase 0.3.0
⚡ Improvements
- Designed experimental distribution metadata schema to be appended to v2
META.json
by PGXN upon release. The object is in JWS-JS format, and intended to sign the release user, date, URI, and one or more SHA digests for the distribution zip file. The format is subject to change pending expert review and approval of the JWS-signing RFC. - Created release JSON Schemas for v1 and v2 release validation. PGXN Manager adds the v1 metadata to the distribution-supplied
META.json
so that clients can validate downloads. In the future it will generate the v2 JWS-signed schema. - Added the release module, which extends the dist module to load loads v1 and v2 spec files into read-only data structures, converts v1 metadata to v2, and merges multiple files.
📔 Notes
- Renamed the meta module to the dist module, since it handles distribution metadata, and therefore better compliments the new release module, which handles release metadata.
- Removed the SHA-256 hash from the v2 artifacts schema, leaving only SHA-512.
- Replaced the
TryFrom<PathBuf>
trait in the dist module with aload
function. This is because one does not convert a file path into a struct, but loads it into a struct. It also allows the argument to be of typeAsRef<Path>
, which supportsPath
,PathBuf
, orString
arguments. - The v1-v2 conversion in the release module does not sign the release payload, as we are not doing any key signing, yet. For now it generates random strings to satisfy JSON Schema validation.
🆚 For more detail compare changes since v0.2.0.
Relelase 0.2.0
⚡ Improvements
- Added the meta module, which loads v1 and v2 spec files into read-only data structures, converts v1 metadata to v2, and merges multiple files.
🪲 Bug Fixes
- Changed the v1 validator to allow
http
as well ashttps
in themeta-spec
object'surl
field, as a lot of olderMETA.json
files use it.
📔 Notes
- Moved the validation functionality to the valid module.
📚 Documentation
- Updated the
v2
link in all docs to point to the pull request, since it hasn't been merged and published yet. - Updated the README example to use the meta module to load an object.
🆚 For more detail compare changes since v0.1.0.
v0.1.0
The theme of this release is Cross Compilation.
⚡ Improvements
- First release, everything is new!
- JSON Schema for PGXN Meta Spec v1 and v2
- JSON Schema validation using boon
- Comprehensive Testing
pgxn_meta
binary and crate
🏗️ Build Setup
- Built with Rust
- Use cross and actions-rust-cross to cross-compile and release binaries for multiple OSes
- Install from crates.io or GitHub
📚 Documentation
- Build and install docs in the README
🆚 For more detail compare changes since fff45ed.