-
Notifications
You must be signed in to change notification settings - Fork 86
Preparing to release v0.6.10 #690
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,13 +1,17 @@ | ||
| ## Next release | ||
| ## 0.6.10 | ||
|
|
||
| - Improved `Logic.replicate(1)` and same-width `signExtend` to return the original signal, eliminating redundant replication modules and generated SystemVerilog (<https://github.com/intel/rohd/pull/689>). | ||
| - Improved simulation performance and generated outputs by avoiding module creation for four-state-safe operations involving `Const`s, zero shifts, and muxes with constant controls (<https://github.com/intel/rohd/issues/429>). | ||
| - Enforced that `Const` values cannot be changed through `put` or `inject`, including through another `Logic` driven by a `Const` (<https://github.com/intel/rohd/issues/486>). | ||
| - Added per-`Const` preferred radix control for generated literals, normalized `Const` names to reflect their displayed radix, and enhanced `LogicValue.toRadixString` to omit its width and radix decorator or digit separators (<https://github.com/intel/rohd/issues/601>). | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
| - Fixed a bug to prevent stack overflows when synthesizing designs with combinational loops (<https://github.com/intel/rohd/pull/680>). | ||
| - Improved generated SystemVerilog to collapse contiguous partial array and range assignments into packed slice assignments when safe (<https://github.com/intel/rohd/pull/676>). | ||
| - Added per-direction configuration of explicit or implicit object and data types for generated SystemVerilog ports. Defaults preserve the existing `input logic`, `output logic`, and `inout wire` declarations (<https://github.com/intel/rohd/pull/678>). | ||
| - Added per-direction configuration of explicit or implicit object and data types for generated SystemVerilog ports. Defaults preserve the existing `input logic`, `output logic`, and `inout wire` declarations (<https://github.com/intel/rohd/pull/678>, <https://github.com/intel/rohd/pull/687>). | ||
| - Significantly enhanced ROHD DevTools with embedded and standalone VM connections, live hierarchy and signal inspection, filtering, snapshots and export, and cross-probe integration (<https://github.com/intel/rohd/pull/665>). | ||
| - Improved `Logic.getRange` and `slice` on filled `Const`s to return direct constants instead of constructing `BusSubset` modules (<https://github.com/intel/rohd/pull/677>). | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
| - Improved generated SystemVerilog for swizzles to compact adjacent bit selections into legal slice expressions (<https://github.com/intel/rohd/pull/674>). | ||
| - Improved generated SystemVerilog to collapse a variety of intermediate `LogicArray`s and net buses (e.g. from bit-blasting, aggregate connections, `assignSubset`) into inline concatenations on their consuming connections, eliminating unnecessary intermediate declarations, `assign`s, and `net_connect`s when it is safe to do so (<https://github.com/intel/rohd/pull/663>). | ||
| - Centralized synthesizer naming so output names in different contexts are more consistent (<https://github.com/intel/rohd/pull/652>). | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Instead: - Centralized synthesizer naming so output names in different contexts are more consistent. Generated SystemVerilog signal and instance names may change in designs with name collisions, repeated constants, or mergeable intermediate signals, so tests or downstream scripts that match exact generated identifiers may need updates (#652). |
||
|
|
||
| ## 0.6.9 | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,109 @@ | ||
| #!/bin/bash | ||
|
|
||
| # Copyright (C) 2026 Intel Corporation | ||
| # SPDX-License-Identifier: BSD-3-Clause | ||
| # | ||
| # prepare_release.sh | ||
| # Prepare ROHD for a release without publishing it. | ||
| # | ||
| # Usage (from repo root): | ||
| # tool/prepare_release.sh <version> | ||
| # | ||
| # 2026 July 30 | ||
| # Author: Max Korbel <max.korbel@intel.com> | ||
|
|
||
| set -euo pipefail | ||
|
|
||
| # Require an explicit stable semantic version so an accidental invocation cannot | ||
| # mutate release metadata with an incomplete or pre-release version. | ||
| if [[ $# -ne 1 || ! "$1" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then | ||
| echo "Usage: $0 <major.minor.patch>" >&2 | ||
| exit 2 | ||
| fi | ||
|
|
||
| # Resolve all paths and source provenance before changing the working tree. | ||
| readonly VERSION="$1" | ||
| readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" | ||
| readonly REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" | ||
| readonly ARTIFACT_REPOSITORY="${ROHD_ARTIFACT_REPOSITORY:-https://github.com/intel/rohd.git}" | ||
| readonly ARTIFACT_BRANCH="${ROHD_ARTIFACT_BRANCH:-artifacts}" | ||
| readonly SOURCE_COMMIT="$(git -C "$REPO_ROOT" rev-parse HEAD)" | ||
| readonly TEMP_DIR="$(mktemp -d)" | ||
|
|
||
| cleanup() { | ||
| rm -rf "$TEMP_DIR" | ||
| } | ||
| trap cleanup EXIT | ||
|
|
||
| cd "$REPO_ROOT" | ||
|
|
||
| # Fail before making release changes if earlier tests left temporary outputs. | ||
| tool/gh_actions/check_tmp_test.sh | ||
|
|
||
| # Fetch the official artifact build without depending on a locally named remote. | ||
| echo "Fetching the ROHD DevTools build from $ARTIFACT_REPOSITORY ($ARTIFACT_BRANCH)..." | ||
| git fetch --quiet --no-tags "$ARTIFACT_REPOSITORY" "refs/heads/$ARTIFACT_BRANCH" | ||
| readonly ARTIFACT_COMMIT="$(git rev-parse FETCH_HEAD)" | ||
| readonly ARTIFACT_SOURCE_COMMIT="$(git rev-parse "$ARTIFACT_COMMIT^")" | ||
|
|
||
| # The artifact workflow creates its commit directly on top of the source commit. | ||
| # Refuse a stale build rather than packaging DevTools from a different revision. | ||
| if [[ "$ARTIFACT_SOURCE_COMMIT" != "$SOURCE_COMMIT" ]]; then | ||
| echo "The DevTools artifact is stale." >&2 | ||
| echo " Current source: $SOURCE_COMMIT" >&2 | ||
| echo " Artifact source: $ARTIFACT_SOURCE_COMMIT" >&2 | ||
| echo "Wait for the artifact workflow for the current source commit to finish." >&2 | ||
| exit 1 | ||
| fi | ||
|
|
||
| # Extract into a temporary directory and smoke-test before replacing the local | ||
| # release payload, leaving the existing build intact if validation fails. | ||
| git cat-file -e "$ARTIFACT_COMMIT:extension/devtools/build/index.html" | ||
| git cat-file -e "$ARTIFACT_COMMIT:extension/devtools/config.yaml" | ||
| git archive "$ARTIFACT_COMMIT" extension/devtools | tar -x -C "$TEMP_DIR" | ||
|
|
||
| tool/gh_actions/devtool/test_devtools_install.sh \ | ||
| "$TEMP_DIR/extension/devtools" | ||
|
|
||
| # Install the tested artifact. The web build is ignored by Git but included in | ||
| # the published package through the exception in .pubignore. | ||
| rm -rf extension/devtools/build | ||
| mkdir -p extension/devtools | ||
| cp -R "$TEMP_DIR/extension/devtools/build" extension/devtools/build | ||
| cp "$TEMP_DIR/extension/devtools/config.yaml" extension/devtools/config.yaml | ||
|
|
||
| # Synchronize every framework version declaration and promote the pending | ||
| # changelog section to the requested release number. | ||
| sed -i "0,/^version: .*/s//version: $VERSION/" pubspec.yaml | ||
| sed -i \ | ||
| "0,/static const String version = '.*';/s//static const String version = '$VERSION';/" \ | ||
| lib/src/utilities/config.dart | ||
|
|
||
| if grep -q "^## $VERSION$" CHANGELOG.md; then | ||
| : | ||
| elif grep -q '^## Next release$' CHANGELOG.md; then | ||
| sed -i "0,/^## Next release$/s//## $VERSION/" CHANGELOG.md | ||
| else | ||
| echo "CHANGELOG.md needs a '## Next release' or '## $VERSION' heading." >&2 | ||
| exit 1 | ||
| fi | ||
|
|
||
| if ! grep -q "^version: $VERSION$" pubspec.yaml || | ||
| ! grep -q "static const String version = '$VERSION';" \ | ||
| lib/src/utilities/config.dart; then | ||
| echo "Failed to synchronize release version $VERSION." >&2 | ||
| exit 1 | ||
| fi | ||
|
|
||
| # Run the same checks used for normal development and reject malformed diffs. | ||
| # Publishing remains a separate, intentionally manual operation. | ||
| tool/run_checks.sh | ||
| git diff --check | ||
|
|
||
| cat <<EOF | ||
|
|
||
| ROHD $VERSION is prepared from source commit $SOURCE_COMMIT. | ||
| DevTools artifact commit: $ARTIFACT_COMMIT | ||
|
|
||
| Review the changelog and working tree before performing the manual publish step. | ||
| EOF |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Instead: - Breaking:
Constvalues can no longer be changed throughputorinject, including through anotherLogicdriven by aConst; these attempts now throwUnassignableException. Use a non-ConstLogicfor mutable testbench or simulation drivers (#486).