daml/unreleased.sh

50 lines
1.9 KiB
Bash
Raw Normal View History

Remove unreleased.rst (#3547) * Start working on getting rid of unreleased.rst Document new process in CONTRIBUTING.md, .github/pull_request_template.md and unreleased.rst (for good measure) Report the previous changelog additions here so that they're not lost in the mist of times. CHANGELOG_BEGIN - [DAML Stdlib] Added the ``NumericScale`` typeclass, which improves the type inference for Numeric literals, and helps catch the creation of out-of-bound Numerics earlier in the compilation process. - [DAML Triggers] ``emitCommands`` now accepts an additional argument that allows you to mark contracts as pending. Those contracts will be automatically filtered from the result of ``getContracts`` until we receive the corresponding completion/transaction. - [Navigator] Fixed a bug where Navigator becomes unresponsive if the ledger does not contain any DAML packages. - [Ledger-API] Add field ``gen_map`` in Protobuf definition for ledger api values. This field is used to support generic maps, an new feature currently in development. See issue https://github.com/digital-asset/daml/pull/3356 for more details about generic maps. The Ledger API will send no messages where this field is set, when using a stable version of DAML-LF. However the addition of this field may cause pattern-matching exhaustive warnings in the code of ledger API clients. Those warnings can be safely ignored until GenMap is made stable in an upcoming version of DAML-LF. - [JSON API - Experimental] CLI configuration to enable serving static content as part of the JSON API daemon: ``--static-content "directory=/full/path,prefix=static"`` This configuration is NOT recommended for production deployment. See issue #2782. - [Extractor] The app can now work against a Ledger API server that requires client authentication. See `issue #3157 <https://github.com/digital-asset/daml/issues/3157>`__. - [DAML Script] This release contains a first version of an experimental DAML script feature that provides a scenario-like API that is run against an actual ledger. - [DAML Compiler] The default DAML-LF version is now 1.7. You can still produce DAML-LF 1.6 by passing ``--target=1.6`` to ``daml build``. - [JSON API - Experimental] The database schema has changed; if using ``--query-store-jdbc-config``, you must rebuild the database by adding ``,createSchema=true``. See `issue #3461 <https://github.com/digital-asset/daml/pull/3461>`_. - [JSON API - Experimental] Terminate process immediately after creating schema. See issue #3386. - [DAML Stdlib] ``fromAnyChoice`` and ``fromAnyContractKey`` now take the template type into account. CHANGELOG_END * Document new release process to gather changelog additions * Change the release script to ignore unreleased.rst * Remove spurious unreleased.rst lines * Transition to use tags * Document new way to get changelog additions with tags * Update release/RELEASE.md Co-Authored-By: Gary Verhaegen <gary.verhaegen@digitalasset.com> * Address https://github.com/digital-asset/daml/pull/3547#discussion_r348438786 * Document correction process * Add copyright header to unreleased.sh * Update CONTRIBUTING.md Co-Authored-By: Gary Verhaegen <gary.verhaegen@digitalasset.com> * Modify CONTRIBUTING.md after @garyverhaegen-da's proposal * Make unreleased.sh run per commit and treat tags as case-insensitive * Fix documentation for replacements
2019-11-20 18:16:57 +03:00
#!/usr/bin/env bash
# Copyright (c) 2022 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
Remove unreleased.rst (#3547) * Start working on getting rid of unreleased.rst Document new process in CONTRIBUTING.md, .github/pull_request_template.md and unreleased.rst (for good measure) Report the previous changelog additions here so that they're not lost in the mist of times. CHANGELOG_BEGIN - [DAML Stdlib] Added the ``NumericScale`` typeclass, which improves the type inference for Numeric literals, and helps catch the creation of out-of-bound Numerics earlier in the compilation process. - [DAML Triggers] ``emitCommands`` now accepts an additional argument that allows you to mark contracts as pending. Those contracts will be automatically filtered from the result of ``getContracts`` until we receive the corresponding completion/transaction. - [Navigator] Fixed a bug where Navigator becomes unresponsive if the ledger does not contain any DAML packages. - [Ledger-API] Add field ``gen_map`` in Protobuf definition for ledger api values. This field is used to support generic maps, an new feature currently in development. See issue https://github.com/digital-asset/daml/pull/3356 for more details about generic maps. The Ledger API will send no messages where this field is set, when using a stable version of DAML-LF. However the addition of this field may cause pattern-matching exhaustive warnings in the code of ledger API clients. Those warnings can be safely ignored until GenMap is made stable in an upcoming version of DAML-LF. - [JSON API - Experimental] CLI configuration to enable serving static content as part of the JSON API daemon: ``--static-content "directory=/full/path,prefix=static"`` This configuration is NOT recommended for production deployment. See issue #2782. - [Extractor] The app can now work against a Ledger API server that requires client authentication. See `issue #3157 <https://github.com/digital-asset/daml/issues/3157>`__. - [DAML Script] This release contains a first version of an experimental DAML script feature that provides a scenario-like API that is run against an actual ledger. - [DAML Compiler] The default DAML-LF version is now 1.7. You can still produce DAML-LF 1.6 by passing ``--target=1.6`` to ``daml build``. - [JSON API - Experimental] The database schema has changed; if using ``--query-store-jdbc-config``, you must rebuild the database by adding ``,createSchema=true``. See `issue #3461 <https://github.com/digital-asset/daml/pull/3461>`_. - [JSON API - Experimental] Terminate process immediately after creating schema. See issue #3386. - [DAML Stdlib] ``fromAnyChoice`` and ``fromAnyContractKey`` now take the template type into account. CHANGELOG_END * Document new release process to gather changelog additions * Change the release script to ignore unreleased.rst * Remove spurious unreleased.rst lines * Transition to use tags * Document new way to get changelog additions with tags * Update release/RELEASE.md Co-Authored-By: Gary Verhaegen <gary.verhaegen@digitalasset.com> * Address https://github.com/digital-asset/daml/pull/3547#discussion_r348438786 * Document correction process * Add copyright header to unreleased.sh * Update CONTRIBUTING.md Co-Authored-By: Gary Verhaegen <gary.verhaegen@digitalasset.com> * Modify CONTRIBUTING.md after @garyverhaegen-da's proposal * Make unreleased.sh run per commit and treat tags as case-insensitive * Fix documentation for replacements
2019-11-20 18:16:57 +03:00
# SPDX-License-Identifier: Apache-2.0
if [ "$#" -ne 1 ]; then
echo >&2 "Usage: ./unreleased.sh <revision range>"
echo >&2 "Prints all changelog entries added by the given revision range"
echo >&2 "For info about <revision range> please see gitrevisions(7)"
exit 64
fi
2019-11-26 21:27:35 +03:00
set -euo pipefail
COMMITS_IN_GIVEN_RANGE=$(git log --format=%H "$1")
extract_changelog () {
awk '
# Skip empty lines.
/^[[:space:]]*$/ {next}
2019-11-26 21:27:35 +03:00
# Take entire line, uppercase, compare to CHANGELOG_END.
# If it matches, set flag to 0 (false) and skip current line.
toupper($0) ~ /CHANGELOG_END/ { flag=0; next }
# If uppercased line matches CHANGELOG_BEGIN, skip current line and set
# flag to 1 (true).
toupper($0) ~ /CHANGELOG_BEGIN/ { flag=1; next }
# Because all previous cases skip the current line, if we reach this
# point we know that the current line is not blank, does not contain
# CHANGELOG_END, and does not contain CHANGELOG_BEGIN. Here we match
# the line based on the value of flag, regardless of the content of the
# line. Because there is no action associated with this condition, the
# default one is applied when it matches (i.e. when flag != 0), which
# is to print the entire current line.
flag
'
}
for SHA in $COMMITS_IN_GIVEN_RANGE; do
COMMIT_MESSAGE_BODY=$(git show --quiet --format=%b "$SHA")
Add information and separator to `unreleased.sh` output (#13827) changelog_begin changelog_end Adds a small separator between changelog entries for separate commits to improve readability. Adds a "title" to each changelog entry to provide context to the reader to ensure that the changelog entry can be traced back to a commit. The title line is composed of the commit subject (which usually includes the PR number), author and hash. This set of information should help the reader trace back a changelog entry to a commit/PR to improve the understanding of the contribution in case the changelog entry is difficult to understand without proper context. As an example, given the following command: ``` ./unreleased.sh v2.2.0-snapshot.20220425.9780.0.f4d60375..v2.2.0-snapshot.20220504.9851.0.4c8e027d ``` here is the difference for the first few lines of output. Before: ``` Fixing Ledger API Bug: Exercise nodes in transaction trees have child_event_ids out of order. - [HTTP-JSON] The field "@type" was renamed to "type" for encoding the ErrorDetails case - [Daml Triggers] Add `queryFilter` matching Daml Script’s `queryFilter` which queries contracts of a given template and filters them down to those where the predicate holds. ``` After: ``` * Fix random exercise node's childEventId order [DPP-1018] (#13740) (committer: Marton Nagy | hash: 0ea140f51e) Fixing Ledger API Bug: Exercise nodes in transaction trees have child_event_ids out of order. ---------------- * Use deriveFormat for ErrorDetailsFormat instead of hand written JsonFormat (#13770) (committer: Victor Peter Rouven Müller | hash: 3decea2a95) - [HTTP-JSON] The field "@type" was renamed to "type" for encoding the ErrorDetails case ---------------- * Updating Titles and Headings (#13592) (committer: carrielaben-da | hash: 58c615a251) ---------------- * Add queryFilter to triggers (#13769) (committer: Moritz Kiefer | hash: d3280ac87d) - [Daml Triggers] Add `queryFilter` matching Daml Script’s `queryFilter` which queries contracts of a given template and filters them down to those where the predicate holds. ``` Another further advantage is that it's now clearer to identify sources of dangling newlines. I tried fix those myself but to no avail. I'm open to suggestions as to how to get rid of empty changelog entries that still happen to contain just newlines (I think that's the source of the issue).
2022-05-09 18:49:36 +03:00
COMMIT_CHANGELOG=$(echo "$COMMIT_MESSAGE_BODY" | extract_changelog)
if [[ ! -z "$COMMIT_CHANGELOG" ]]; then
COMMIT_AUTHOR_AND_SUBJECT=$(git show --quiet --format="* %s (committer: %an | hash: %h)" "$SHA")
echo "$COMMIT_AUTHOR_AND_SUBJECT"
echo "$COMMIT_CHANGELOG"
echo "----------------"
fi
done