Skip to content

Commit

Permalink
Maintain changelogs for release branches on main only (#930)
Browse files Browse the repository at this point in the history
Signed-off-by: Craig Disselkoen <cdiss@amazon.com>
  • Loading branch information
cdisselkoen authored May 31, 2024
1 parent 0e761d8 commit 44cd17a
Show file tree
Hide file tree
Showing 7 changed files with 47 additions and 280 deletions.
5 changes: 3 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ If you would like to propose a change to the Cedar language, or suggest a substa

## Changelog

Cedar maintains changelogs for the public-facing crates [cedar-policy](./cedar-policy/CHANGELOG.md) and [cedar-policy-cli](./cedar-policy-cli/CHANGELOG.md), which adhere to the [Keep A Changelog](https://keepachangelog.com/en/1.0.0/) format. The purpose of the changelog is for the contributors and maintainers to incrementally build release notes throughout the development process to avoid the painful and error-prone process of attempting to compile the release notes at release time. On each release the "unreleased" entries of the changelog are moved under the appropriate header. Also, incrementally building the changelog provides a concise, human-readable list of significant features that have been added to the unreleased version under development.
Cedar maintains changelogs for the public-facing crates [cedar-policy](https://github.com/cedar-policy/cedar/blob/main/cedar-policy/CHANGELOG.md) and [cedar-policy-cli](https://github.com/cedar-policy/cedar/blob/main/cedar-policy-cli/CHANGELOG.md), which adhere to the [Keep A Changelog](https://keepachangelog.com/en/1.0.0/) format. The purpose of the changelog is for the contributors and maintainers to incrementally build release notes throughout the development process to avoid the painful and error-prone process of attempting to compile the release notes at release time. On each release the "unreleased" entries of the changelog are moved under the appropriate header. Also, incrementally building the changelog provides a concise, human-readable list of significant features that have been added to the unreleased version under development. Changelogs for all release branches and the `main` branch are all maintained on the `main` branch of this repository only; you can see the most up-to-date changelogs by following the links above.

### Which changes require a changelog entry?

Expand All @@ -60,7 +60,8 @@ The following are some examples where a changelog entry is not necessary:

### Where should I put my changelog entry?

For a PR to the `main` branch, add your entry under the "Unreleased" section. For a PR to one of the `release/X.Y.Z` branches, add your entry under the appropriate version header. Once a version is released on crates.io, make sure to update the changelog on `main` to include the new release.
Add your entry under the "Unreleased" section, as part of the same PR that introduces the change.
In the (rarer) case that your PR is to a `release/X.Y.Z` branch rather than `main`, make a separate PR to `main` which adds the changelog entry under the appropriate version header of the `main` changelog.

## Review Process

Expand Down
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,13 @@ To build, simply run `cargo build` (or `cargo build --release`).

## What's New

We maintain changelogs for our public-facing crates: [cedar-policy](./cedar-policy/CHANGELOG.md) and [cedar-policy-cli](./cedar-policy-cli/CHANGELOG.md).
We maintain changelogs for our public-facing crates:
[cedar-policy](https://github.com/cedar-policy/cedar/blob/main/cedar-policy/CHANGELOG.md) and
[cedar-policy-cli](https://github.com/cedar-policy/cedar/blob/main/cedar-policy-cli/CHANGELOG.md).
Changelogs for all release branches and the `main` branch are all maintained on
the `main` branch of this repository; you can see the most up-to-date changelogs
by following the links above.

For a list of the current and past releases, see [crates.io](https://crates.io/crates/cedar-policy) or [Releases](https://github.com/cedar-policy/cedar/releases).

## Backward Compatibility Considerations
Expand Down
57 changes: 3 additions & 54 deletions cedar-policy-cli/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,56 +1,5 @@
# Changelog

## 2.4.6

## 2.4.5

## 2.4.4

## 2.4.3

## 2.4.2

## 2.4.1

## 2.4.0

### Changed
- Input policies for `check-parse` command can be read from standard input.

### Fixed
- Duplicate policy ids in `@id` annotations cause the CLI to exit gracefully
instead of panicking.

## 2.3.3

## 2.3.2

## 2.3.1

## 2.3.0

## 2.2.0

### Changed
- Update `cedar-policy` and `cedar-policy-core` dependencies.

## 2.1.0

### Changed
- Update `cedar-policy` and `cedar-policy-formater` dependencies.

### Fixed
- Resolve warning in `Cargo.toml` due to having both `license` and `license-file` metadata entries.

## 2.0.3

### Fixed
- Update `Cargo.toml` metadata to correctly represent this crate as Apache-2.0 licensed.

## 2.0.2

## 2.0.1

## 2.0.0

Initial release of `cedar-policy-cli`.
The changelog for all the release branches of `cedar-policy-cli` is maintained on
the `main` branch. You can view the most up-to-date changelog
[here](https://github.com/cedar-policy/cedar/blob/main/cedar-policy-cli/CHANGELOG.md).
25 changes: 23 additions & 2 deletions cedar-policy-cli/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,31 @@ CLI is a command line tool. It supports the following subcommands:

### Build

You will need to install Rust, via [rustup](https://rustup.rs)
You will need to install Rust, via [rustup](https://rustup.rs).

To build the CLI, run `cargo build` or `cargo build --release`
To build the CLI, run `cargo build` or `cargo build --release`.

### Run

To run the CLI, try `cargo run -- --help`. The sub-folder [`sample-data`](sample-data) contains examples for the CLI. Please refer to the instructions in each `README.md` to run the examples.

## What's New

Changelogs for all release branches and the `main` branch of this repository are
all maintained on the `main` branch; the most up-to-date changelog for this
crate is
[here](https://github.com/cedar-policy/cedar/blob/main/cedar-policy-cli/CHANGELOG.md).

For a list of the current and past releases, see [crates.io](https://crates.io/crates/cedar-policy-cli) or [Releases](https://github.com/cedar-policy/cedar/releases).

## Security

See [SECURITY](../SECURITY.md) for more information.

## Contributing

We welcome contributions from the community. Please either file an issue, or see [CONTRIBUTING](../CONTRIBUTING.md)

## License

This project is licensed under the Apache-2.0 License.
36 changes: 2 additions & 34 deletions cedar-policy-formatter/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,4 @@
# Changelog

## 2.4.2

## 2.4.1

- Bumped `pretty`, `logos`, and `regex` dependencies

## 2.4.0

## 2.3.3

## 2.3.2

## 2.3.1

## 2.3.0

## 2.2.0

- Update `cedar-policy-core` dependency.

## 2.1.0

- Update `cedar-policy-core` dependency.
- Resolve warning in `Cargo.toml` due to having both `license` and `license-file` metadata entries.

## 2.0.2

- Update `Cargo.toml` metadata to correctly represent this crate as Apache-2.0 licensed.

## 2.0.1

## 2.0.0

Initial release of `cedar-policy-formatter`.
We no longer maintain a separate changelog for `cedar-policy-formatter`.
See the changelog for `cedar-policy` [here](https://github.com/cedar-policy/cedar/blob/main/cedar-policy/CHANGELOG.md).
189 changes: 3 additions & 186 deletions cedar-policy/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,188 +1,5 @@
# Changelog

## 2.4.7

### Fixed

- Fixed policy formatter reordering some comments around if-then-else and
entity identifier expressions. (#861, resolving #787)
- Fixed policy formatter dropping newlines in string literals. (#870, #910, resolving #862)

## 2.4.6

### Fixed

- The formatter will now fail with an error if it changes a policy's semantics.

## 2.4.5

### Changed

- Implement [RFC 57](https://github.com/cedar-policy/rfcs/pull/57): policies can
now include multiplication of arbitrary expressions, not just multiplication of
an expression and a constant.

## 2.4.4

Cedar Language Version: 2.1.3

### Changed

- Calling `add_template` with a `PolicyId` that is an existing link will now error. (#671, backport of #456)

### Fixed

- Updated `PolicySet::link` to not mutate internal state when failing to link a static
policy. With this fix it is possible to create a link with a policy id
after previously failing to create that link with the same id from a static
policy. (#669, backport of #412)
- Action entities in the store will pass schema-based validation without requiring
the transitive closure to be pre-computed. (#688, backport of #581)
- Policies containing the literal `i64::MIN` can now be properly converted to the JSON policy format. (#672, backport of #601)
- `Template::from_json` errors when there are slots in template conditions. (#672, backport of #626)
- `Policy::to_json` does not error on policies containing special identifiers such as `principal`, `then`, and `true`. (#672, backport of #628)

## 2.4.3

Cedar Language Version: 2.1.3

### Fixed

- Reverted accidental breaking change to schema format introduced in the 2.3.2
release.
Attribute types in schema files may now contain unexpected keys (as they could
before 2.3.2).
As a side effect, schema parsing error messages are less useful when an
attribute type is missing a required key.
The 2.4.2 behavior, including the more useful error messages, remain available
in all 3.x versions of Cedar.
(#520)

## 2.4.2

### Changed
- Fixed bug (#370) related to how the validator handles template-linked policies

## 2.4.1
### Added
- New experimental API to construct queries with `Unknown` fields for partial evaluation.

### Changed
- Improved validation error messages for access to undeclared attributes and unsafe access to optional attributes to report the target of the access (fix #175).
- `EntityUid`'s impl of `FromStr` is no longer marked as deprecated.
- Fixed #299, condition of `if` not being partial evaluated.
- Update the behavior of `Request::principal()`, `Request::action()`, and `Request::resource()` to
return `None` if the entities are unspecified (i.e., constructed by passing `None` to `Request::new()`).

## 2.4.0

### Added
- New methods exported for `EntityTypeName`.
- `basename` to get the basename (without namespaces).
- `namespace_components` to get the namespace as an iterator over its components.
- `namespace` to get the namespace as a single string.

### Changed
- Some error types now carry more information about the error, with error
messages updated appropriately. For instance, added list of attributes that _do_
exist to the `RecordAttrDoesNotExist` error message.
- Improved error messages for some schema type parsing errors.
- When an entity type shape or action context is declared with type other than
`Record`, the error message will indicated the affected entity type or action.
- Improved a variety of other error messages
- Increased precision for validating records. Previously,
`permit(principal, action, resource) when {{"foo": 5} has bar};` would validate.
Now it will not, since we know `{"foo": 5} has bar` is `False`, and the
validator will return an error for a policy that can never fire.
- Removed deprecated `__expr` escapes from integration tests.

## 2.3.3

### Added
- Re-export `cedar_policy_core::entities::EntitiesError`.
- Fixed bug (#150) around implicit namespaces for actions in `memberOf` lists in
schemas. An action without an explicit namespace in a `memberOf` now
correctly uses the default namespace.

### Changed
- Improved error messages and documentation for some errors raised during
policy parsing, validation, and evaluation.
- More precise "expected tokens" lists in some parse errors.

## 2.3.2

### Removed
- Move public API for partial evaluation behind experimental feature flag. To
continue using this feature you must enable the `partial-eval` feature flag.

### Changed

- Improved error detection in schema based parsing (fix issues #73, #74).
- Detect entities with parents of an incorrect entity type.
- Detect entities with an undeclared entity type.
- Slightly improved error text on some validation type errors
- Improved error messages for some schema type parsing errors
- Parsing a schema type without the `"type"` field will generate an error
stating that `"type"` is a required field instead of an inscrutable error
complaining about the untagged enum `SchemaType`.
- Parsing a schema type with a `"type"` field corresponding to one of the
builtin types but missing a required field for that type will generate an
error stating that a required field is missing instead of claiming that it
could not find "common types" definition for that builtin type.

## 2.3.1

### Fixed

- Fix a panic in `PolicySet::link()` that could occur when the function was called
with a policy id corresponding to a static policy.

## 2.3.0

### Changed

- Implementation of
[RFC 9](https://github.com/cedar-policy/rfcs/blob/main/text/0009-disallow-whitespace-in-entityuid.md)
which disallows embedded whitespace, comments, and control characters in the
inputs to several Rust API functions including `EntityTypeName::from_str()` and
`EntityNamespace::from_str()`, as well as in some fields of the Cedar JSON
schema format (e.g., namespace declarations, entity type names), Cedar JSON
entities format (e.g., entity type names, extension function names) and the
Cedar JSON policy format used by `Policy::from_json()` (e.g., entity type names,
extension function names). The risk that this may be a breaking change for some
Cedar users was accepted due to the potential security ramifications; see
discussion in the RFC.

## 2.2.0

### Added

- `Entities::write_to_json` function to api.rs

## 2.1.0

### Added

- `Schema::action_entities` to provide access to action entities defined in a schema.

### Changed

- Update `cedar-policy-core` dependency.

### Fixed

- Resolve warning in `Cargo.toml` due to having both `license` and `license-file` metadata entries.

## 2.0.3

### Fixed

- Update `Cargo.toml` metadata to correctly represent this crate as Apache-2.0 licensed.

## 2.0.2

## 2.0.1

## 2.0.0

Initial release of `cedar-policy`.
The changelog for all the release branches of `cedar-policy` is maintained on
the `main` branch. You can view the most up-to-date changelog
[here](https://github.com/cedar-policy/cedar/blob/main/cedar-policy/CHANGELOG.md).
7 changes: 6 additions & 1 deletion cedar-policy/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,12 @@ To build, simply run `cargo build` (or `cargo build --release`).

## What's New

See [CHANGELOG](CHANGELOG.md)
Changelogs for all release branches and the `main` branch of this repository are
all maintained on the `main` branch; the most up-to-date changelog for this
crate is
[here](https://github.com/cedar-policy/cedar/blob/main/cedar-policy/CHANGELOG.md).

For a list of the current and past releases, see [crates.io](https://crates.io/crates/cedar-policy) or [Releases](https://github.com/cedar-policy/cedar/releases).

## Security

Expand Down

0 comments on commit 44cd17a

Please sign in to comment.