Skip to content

Commit

Permalink
Merge pull request #18 from jrefice/official_release_3_1
Browse files Browse the repository at this point in the history
Official Release 1800.2 2020.3.1
  • Loading branch information
jrefice authored Sep 3, 2024
2 parents c5836fd + 3b769e9 commit 78c0654
Show file tree
Hide file tree
Showing 46 changed files with 1,550 additions and 873 deletions.
93 changes: 93 additions & 0 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,99 @@ feature branch in the local and Github fork may be deleted.

[14]: https://help.github.com/articles/using-pull-requests "Using Pull Requests - github:help"

### Updating the `official` branch and repository

The `official` branch of the repository is setup to track pre-release bug patches to the
tarball releases of the reference implementation. In effect, [accellera-official/uvm-core:main][15]
is the publicly read-only mirror of the privately read/write [OSCI-WG/uvm-core:official][16].
See [CONTRIBUTING][9] for more details on "Functional Bugs."

The `official` branch in `OSCI-WG` gets updates in two ways:
1. When a new release is made, the `official` branch is updated to
point to that release.
2. When a bug fix patch is accepted for the existing release, the `official` branch
is updated.

Note that the `official` branch is _not_ updated directly from `master` or `release`,
and shares no common history with either branch. This is intentional, as it helps
to prevent cross contamination in both the files and commit history.

To update the `official` branch, a patch file should be generated from a pull request
of [accellera-official/uvm-core:main][15] or [OSCI-WG/uvm-core:master][17]. These patches
can be easily acquired from the github UI by appending `.patch` to the URL for the
pull request.

For example:

```
# The patch for OSCI-WG/uvm-core pull request #500
wget https://github.com/OSCI-WG/uvm-core/pull/500.patch
```

> **Note:** All patches taken from the [accellera-official/uvm-core:main][15] MUST be
> signed off with a Developer's Certificate of Origin. See [CONTRIBUTING][9] for more details.
The patch file can then be applied to `OSCI-WG/uvm-core:official` using the following commands:
```
git checkout -b official_issue_<issue_number> --track osci-wg/official
git apply <patch_file>
... possible edits ...
git commit -m "Applying patch for accellera-official/uvm-core#<issue_number>"
git push -u origin official_issue_<issue_number>
```

Note that edits to the patch may be necessary to ensure that the patch is compatible with the
`official` branch. This could occur if the patch is coming [OSCI-WG/uvm-core:master][17] and
needs tweaks because of enhancements made to `master` since the last tarball, or if the patch
is coming from [accellera-official/uvm-core:main][15] and needs to be merged into other patches
that have been applied.

Applying patches from [OSCI-WG/uvm-core:official][16] to [accellera-official/uvm-core:main][15]
is done in a similar way as above.

First, the latest commit to [OSCI-WG/uvm-core:official][16] must be tagged to indicate
that this is a patch point. That tag is then used to produce a patch file for use
with [accellera-official/uvm-core:main][15].

This can be done using the following command:
```
## These commands are executed in a clone of OSCI-WG/uvm-core
# Make sure you're up to date with OSCI-WG
git checkout master
git fetch --all
# Delete the local branch to ensure a clean work area
git branch -D official
# Create a local branch
git checkout -b official --track osci-wg/official
# Tag this location for the patch
git tag -a OFFICIAL_<VERSION>_PATCH<PATCH_NUMBER> -m "Official Patch <PATCH_NUMBER> for 1800.2 <VERSION>"
git push osci-wg OFFICIAL_<VERSION>_PATCH<PATCH_NUMBER>
# Create a patch file for the latest commit to official
git diff <PREVIOUS_OFFICIAL_TAG> OFFICIAL_<VERSION>_PATCH<PATCH_NUMBER> > official_patch_<PATCH_NUMBER>.patch
```

This patch file can then be used to update the official repository using the following command:
```
## These commands are executed in a clone of accellera-official/uvm-core
# Make sure you're up to date with accellera-official
git checkout main
git fetch --all
# Create a patch branch
git checkout -b official_patch_<PATCH_NUMBER> --track accellera-official/main
# Apply the patch file
git apply <PATCH FILE>
# Commit the changes, making sure to sign the commit
git commit -s -m "Official Patch <PATCH_NUMBER> for 1800.2 <VERSION>"
# Push the changes up, create a pull request to be merged by the WG
git push origin official_patch_<PATCH_NUMBER>
```

The WG can then accept the new pull request and merge the changes into `main`.

[15]: https://github.com/accellera-official/uvm-core "accellera-official/uvm-core:main"
[16]: https://github.com/OSCI-WG/uvm-core/tree/official "OSCI-WG/uvm-core:official"
[17]: https://github.com/OSCI-WG/uvm-core/tree/master "OSCI-WG/uvm-core:master"

---------------------------------------------------------------------
Versioning scheme
---------------------------------------------------------------------
Expand Down
12 changes: 11 additions & 1 deletion NOTICE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ All rights reserved.
Portions of the UVM Reference Library were developed by
Cadence Design Systems, Inc.

Copyright 2007-2023 Cadence Design Systems, Inc.
Copyright 2007-2024 Cadence Design Systems, Inc.
All rights reserved.

=========================================================================
Expand Down Expand Up @@ -163,6 +163,16 @@ Semifore.
Copyright 2011-2022 Semifore.
All rights reserved.

=========================================================================
== UVM Siemens Notice
=========================================================================

Portions of the UVM Reference Library were developed by
Siemens.

Copyright 2024 Siemens.
All rights reserved.

=========================================================================
== UVM Synopsys, Inc Notice
=========================================================================
Expand Down
30 changes: 15 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ See details in the Library Release Description below.

# Kit version

1800.2 2020.3.0
1800.2 2020.3.1

# License

Expand All @@ -30,22 +30,22 @@ contact the Accellera UVM Working Group (uvm-wg@lists.accellera.org).

# Bug Fixes

The following errata were fixed in 2020.3.0.
The following errata were fixed in 2020.3.1.

| Mantis Number | Description |
| Identifier | Description |
| ------------- | ----------- |
| [Mantis_7944](https://accellera.mantishub.io/view.php?id=7944) | `uvm_compat_packer` works wrong for `unpack_object` method |
| [Mantis_7915](https://accellera.mantishub.io/view.php?id=7915) | Compatibility: `uvm_resource#(T)::get_by_name` and `get_by_type` missing in 2020-2.0 |
| [Mantis_8224](https://accellera.mantishub.io/view.php?id=8224) | TLM GP Buffer overflow during unpack operation |
| [Mantis_7879](https://accellera.mantishub.io/view.php?id=7879) | All classes should derive from `uvm_void` |
| [Mantis_7932](https://accellera.mantishub.io/view.php?id=7932) | `UVM_ENABLE_DEPRECATED` in 1800.2-2020 2.0 library |
| [Mantis_7916](https://accellera.mantishub.io/view.php?id=7916) | Compat: UVM Messaging macros introduce unnecessary dependency on `uvm_report_object` |
| [Mantis_7696](https://accellera.mantishub.io/view.php?id=7696) | Poll API using Simulator callback |
| [Mantis_7933](https://accellera.mantishub.io/view.php?id=7933) | `uvm_tlm_fifo::flush` uses bit instead of int for `mailbox::try_get` return value |
| [Mantis_7919](https://accellera.mantishub.io/view.php?id=7919) | LINT: one-line if/else statements should use `begin...end` |
| [Mantis_7935](https://accellera.mantishub.io/view.php?id=7935) | Add a process guard class |
| [Mantis_6745](https://accellera.mantishub.io/view.php?id=6475) | Jumping to extract phase results in extract executing twice |
| [Mantis_5315](https://accellera.mantishub.io/view.php?id=5315) | No arbitration to protect the `rw_info` of front door sequence from being accessed by multiple threads simultaneously |
| [Mantis 8419](https://accellera.mantishub.io/view.php?id=8419) | Compatibility: `uvm_event#(T)::add_callback/delete_callback` missing |
| [Mantis 8406](https://accellera.mantishub.io/view.php?id=8406) | Compatibility: add `begin/end_event` to `uvm_transaction` |
| [Mantis 8407](https://accellera.mantishub.io/view.php?id=8407) | Compatibility: `` `uvm_print_* `` macros removed |
| [Mantis 8405](https://accellera.mantishub.io/view.php?id=8405) | Compatibility: `uvm_deprecated_defines.svh` is missing |
| [Mantis 8404](https://accellera.mantishub.io/view.php?id=8404) | Compatibility: `uvm_report_object::get_report_server` |
| [Mantis 7365](https://accellera.mantishub.io/view.php?id=7365) | `+uvm_set_verbosity` does not work when a non-zero time is given |
| [Mantis 5000](https://accellera.mantishub.io/view.php?id=5000) | `uvm_[bitstream\|integral]_to_string` is undocumented, and non scalable |
| [Mantis 7340](https://accellera.mantishub.io/view.php?id=7340) | Request for explicit transaction_id type |
| [Mantis 8446](https://accellera.mantishub.io/view.php?id=8446) | Add policy extension for packers to indicate array operations |
| [Mantis 8376](https://accellera.mantishub.io/view.php?id=8376) | `static const xx` class members with initialization |
| [Github Issue #6](https://github.com/accellera-official/uvm-core/issues/6) | Static races in `static const` declarations |


# Installing the kit

Expand Down
2 changes: 1 addition & 1 deletion compat/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Note that the uvm_compat_pkg provides compatibility by enabling code based on di

# Kit version

This version of the compatibility package was distributed with 1800.2 2020.3.0.
This version of the compatibility package was distributed with 1800.2 2020.3.1.

# License

Expand Down
20 changes: 10 additions & 10 deletions docs/html/doc_src/overviews/intro.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
Title: UVM 1800.2-2020 Class Reference
This library implements the API as documented in the IEEE 1800.2-2020 standard. Documentation for that API is in the standard. In addition, this library also implements user-facing APIs that go beyond the standard.
These APIs are documented here and include both APIs that are being considered for contribution to the IEEE by Accellera and APIs that are provided for debug purposes and not being considered for contribution to the IEEE.
The documentation uses the tags "@uvm-contrib" and "@uvm-accellera" to differentiate between the two sets of APIs.
An additional note, certain terms in the documentation may be surrounded by less than/greater than symbols, such as "<uvm_object>". This is an indication that the documentation is referring to a construct defined in the 1800.2 LRM.

Title: UVM 1800.2-2020 Class Reference

This library implements the API as documented in the IEEE 1800.2-2020 standard. Documentation for that API is in the standard. In addition, this library also implements user-facing APIs that go beyond the standard.

These APIs are documented here and include both APIs that are being considered for contribution to the IEEE by Accellera and APIs that are provided for debug purposes and not being considered for contribution to the IEEE.

The documentation uses the tags "@uvm-contrib" and "@uvm-accellera" to differentiate between the two sets of APIs.

An additional note, certain terms in the documentation may be surrounded by less than/greater than symbols, such as "<uvm_object>". This is an indication that the documentation is referring to a construct defined in the 1800.2 LRM.
Loading

0 comments on commit 78c0654

Please sign in to comment.