diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index f9dfe7992..0456658ae 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -1,6 +1,8 @@ name: 'push' on: + label: + types: [created, edited] push: pull_request: schedule: @@ -137,13 +139,55 @@ jobs: - name: '๐Ÿšง Run job' run: tox -e py${{ matrix.task }} -- --color=yes +# +# Release Notes (News) Validation +# + news-matrix-prep: + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - id: set-matrix + run: | + set -e + + cat < json + ${{ toJSON(github.event.pull_request.labels.*.name) }} + EOF + + eval "news_labels=( $(jq '.[] | select(test("news:"))' json) )" + news_labels_json=$(jq --compact-output --null-input '$ARGS.positional' --args -- "${news_labels[@]}") + + echo "Setting matrix to labels: ${news_labels[@]}" + echo "Matrix labels JSON: $news_labels_json" + echo "matrix={\"news\":$(echo $news_labels_json)}" >> $GITHUB_OUTPUT + + news: + runs-on: ubuntu-latest + needs: news-matrix-prep + strategy: + fail-fast: false + matrix: ${{ fromJSON(needs.news-matrix-prep.outputs.matrix) }} + name: '๐Ÿ“ฐ Validate News ยท ${{ matrix.news }}' + steps: + + - name: '๐Ÿงฐ Checkout' + uses: actions/checkout@v3 + + - name: News file exists + run: | + fname="$(echo ${{ github.event.pull_request.number }}.${{ matrix.news }}.rst | sed 's,news:,,g')" + news_file="docs/news.d/$fname" + echo "News file that must exist for the label '${{ matrix.news }}': '$news_file'" + test -f $news_file + # # Deploy to PyPI # deploy: runs-on: ubuntu-latest - needs: [ fmt, lin, docker, win ] + needs: [ fmt, lin, docker, win, news ] if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') name: '๐Ÿš€ Deploy' steps: diff --git a/.gitignore b/.gitignore index 8b01a4ad0..eec18f602 100644 --- a/.gitignore +++ b/.gitignore @@ -15,10 +15,12 @@ my_logger.csv /build/ /dist/ /docs/_build +/docs/_release_notes_draft.rst /docs/_theme /docs/license.rst -/docs/release_notes.rst +/docs/theme.tgz /examples/vhdl/array_axis_vcs/src/test/data/out.csv +/release/ /tests/acceptance/*_out /tests/unit/test_report_output.txt /vunit/vhdl/check/test/tb_check_equal.vhd diff --git a/docs/conf.py b/docs/conf.py index 7378e265b..28f9ebe63 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -45,7 +45,7 @@ language = "en" -exclude_patterns = ["release_notes/*.*"] +exclude_patterns = ["news.d/**"] # towncrier manages changelog pygments_style = "sphinx" diff --git a/docs/contributing.rst b/docs/contributing.rst index d7975044b..8dca222a4 100644 --- a/docs/contributing.rst +++ b/docs/contributing.rst @@ -193,9 +193,8 @@ Releases are automatically made by GitHub Actions on any ``master`` commit which To create a new tagged release commit: -- Create corresponding release notes in ``docs/release_notes/X.Y.Z.rst``. - - The release notes files in ``docs/release_notes/`` are used to - automatically generate the :ref:`release notes `. +- Reference :ref:`release_notes_instructions` for creating relevant news that will be + added to the final draft of the :ref:`release_notes`. - Execute ``python tools/release.py create X.Y.Z``. - Will make commit with the new ``about.py`` version and release notes and tag it. - Will make another commit setting ``about.py`` to the next pre release candidate version. @@ -222,3 +221,37 @@ Therefore, when bumping the submodules, maintainers/contributors need to remembe version. Furthermore, since OSVVM is tagged periodically, bumping from tag to tag is strongly suggested. + +.. _release_notes_instructions: + +Release Notes Instructions +-------------------------- + +The :vunit_file:`release notes directory ` contains "newsfragments" which +are short (`reST formatted +`_) files that +contain information for users. + +Make sure to use full sentences in the **past or present tense** and use punctuation. + +Each file should be named like ``..rst``, where ```` is the +GitHub issue or pull request number, and ```` is one of: + +* ``breaking``: a change which may break existing functionality, such as feature removal + or behavior change +* ``bugfix``: fixes a bug +* ``change``: backwards compatible features or improvements +* ``deprecation``: feature deprecation +* ``misc``: a ticket was closed, but it is not necessarily important for the user + +For example: ``123.feature.rst``, ``456.bugfix.rst``. + +``towncrier`` preserves multiple paragraphs and formatting +(code blocks, lists, and so on), but for entries other than features, it is usually +better to stick to a single paragraph to keep it concise. + +The Tox ``*-docs`` environment will construct a draft, "unreleased" section in the +generated HTML page to make it easier to debug and fix syntax issues with the +newsfragments. During a release, towncrier will add the latest +:vunit_file:`newsfragments ` to the :ref:`release_notes` and then remove +the newsfragments from version control. \ No newline at end of file diff --git a/docs/news.d/.gitignore b/docs/news.d/.gitignore new file mode 100644 index 000000000..9651eaa61 --- /dev/null +++ b/docs/news.d/.gitignore @@ -0,0 +1,3 @@ +* +!*.*.rst +!template.rst.j2 diff --git a/docs/news.d/885.misc.rst b/docs/news.d/885.misc.rst new file mode 100644 index 000000000..c0eb75f4e --- /dev/null +++ b/docs/news.d/885.misc.rst @@ -0,0 +1,2 @@ +Improved release notes by adding sections to to aid in finding relevant information +about releases and updated contributing guide with instructions. diff --git a/docs/news.d/template.rst.j2 b/docs/news.d/template.rst.j2 new file mode 100644 index 000000000..8969734b9 --- /dev/null +++ b/docs/news.d/template.rst.j2 @@ -0,0 +1,37 @@ +{% for section, _ in sections.items() %} + +{% set underline = underlines[0] %}{% if section %}{{section}} +{{ underline * section|length }}{% set underline = underlines[1] %} + +{% endif %} + +`Download from PyPI `__ | `Commits since this release `__ + +{% if sections[section] %} +{% for category, val in definitions.items() if category in sections[section]%} +{{ definitions[category]['name'] }} +{{ underline * definitions[category]['name']|length }} + +{% if definitions[category]['showcontent'] %} +{% for text, values in sections[section][category].items() %} +- {{ text }} + {{ values|join(',\n ') }} +{% endfor %} + +{% else %} +- {{ sections[section][category]['']|join(', ') }} + +{% endif %} +{% if sections[section][category]|length == 0 %} +No significant changes. + +{% else %} +{% endif %} + +{% endfor %} +{% else %} +No significant changes. + + +{% endif %} +{% endfor %} diff --git a/docs/release_notes.rst b/docs/release_notes.rst new file mode 100644 index 000000000..d06ee1e56 --- /dev/null +++ b/docs/release_notes.rst @@ -0,0 +1,854 @@ + +.. _release_notes: + +Release Notes +============= + +Versions follow `Semantic Versioning `_ (``..``). + +Backward incompatible (breaking) changes will only be introduced in major versions +with advance notice in the **Deprecations** section of releases. + +.. NOTE:: For installation instructions, read :ref:`this `. + +.. + Do *NOT* add changelog entries here! This file is managed by towncrier. You *may* + edit previous change logs for corrections, typos, etc. + + To add a new entry, please reference https://vunit.github.io/contributing.html for + instructions. + +.. only:: release_notes_draft + + .. The 'release_notes_draft' tag is included by 'tox -e *-docs', but not on RTD. + + .. include:: _release_notes_draft.rst + +.. _latest_release: + +.. towncrier release notes start + +:vunit_commit:`4.6.0 ` - 2021-10-25 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Add Python 3.9 and 3.10 to classifiers. +- Use MAJOR and MINOR constants to check supported Python version. :vunit_issue:`724` +- Fix pylint issues. +- Use f-strings for string formatting. :vunit_issue:`743` :vunit_issue:`747` +- Specify encoding when using 'open'. :vunit_issue:`748` +- Set black line-length to 120 characters. :vunit_issue:`736` +- Use Path from pathlib, instead of `open()`. +- Add support for log location based on VHDL-2019 call paths. :vunit_issue:`729` +- GHDL supports VHDL package generics. :vunit_issue:`753` +- Bump OSVVM to 2021.09. +- [Tox] Use pytest for collecting coverage, add py310. +- [Tests] mark array_axis_vcs and verilog_ams examples as xfail. :vunit_issue:`751` +- [Logging/log_deprecated_pkg] fix compilation issues with Cadence tools. :vunit_issue:`731` +- [Parsing/tokenizer] partial revert of 5141f7c :vunit_issue:`735` :vunit_issue:`745` +- [UI] make glob search recursive by default. +- [VCs] bugfix AXI stream slave nonblocking check. :vunit_issue:`720` +- [Examples] add shebang to run scripts. :vunit_issue:`738` +- [Example/vhdl/user_guide] add VHDL 1993 variant, clean use statements, skip in acceptance tests if VHDL context not supported. :vunit_issue:`737` +- [Examples/vhdl/array_axis_vcs] Fix PSL check for valid fifo in data during write. :vunit_issue:`750` :vunit_issue:`766` +- [Docs] bump sphinx_btd_theme to v1, revert temporary pinning of Sphinx and docutils, remove redundant delete message call from com user guide example, fix ref to Travis CI (deprecated) (GitHub Actions is used now), add section about envvars, document VUNIT_VHDL_STANDARD, use 'exec' directive to generate content in examples, update 'Credits and License', add refs to Tratex. :vunit_issue:`730` :vunit_issue:`739` :vunit_issue:`761` +- [CI] add emojis/icons, avoid deployments from forks, fix deploy condition event, add job using setup-ghdl-ci, update images from Debian Buster to Debian Bullseye, do not overload image tags. + +:vunit_commit:`4.5.0 ` - 2021-05-21 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Update year and update license test to 2021. +- Bump OSVVM. :vunit_issue:`712` +- Support Python 3.9. +- Call `supports_coverage()` rather than returning method object. :vunit_issue:`638` +- Do not use `relpath` when printing output file. :vunit_issue:`661` +- Make `runner.create_output_path` a member of `TestRunner` class and reanme to `_get_output_path`. :vunit_issue:`682` +- Update `check_stable` to handle longer time frames. :vunit_issue:`636` +- Add `check_equal` for `character`. :vunit_issue:`721` :vunit_issue:`722` +- Update `.gitignore`. :vunit_issue:`641` +- Resolve ambiguity between VUnit's `line_vector` type and the new standard `line_vector` type in VHDL-2019. :vunit_issue:`664` +- [Tests] Use `str` for params to `self.check`, reduce 'many_keys' to avoid failure with latest GHDL. +- [Docs] Travis is not used for releases, use `autodoc_default_options` instead of (deprecated) `autodoc_default_flags`, fix duplicated content and index of vunit_cli, add intersphinx mapping to docs.python.org, update 'Credits' and 'License', use buildthedocs/sphinx.theme, replace `LICENSE.txt` with `LICENSE.rst`, replace `README.rst` with `README.md`, move 'Requirements' from 'About' to 'Installing', add captioned toctrees, use admonitions, move CI out from CLI and update content, add blog post on continuous integration, clarify that GHDL is a rolling project. :vunit_issue:`694` +- [Tools] raise exception if git not available when creating release notes. +- [Example/vhdl/array_axis_vcs] Update, expand procedure `run_test`, add stall functionality. :vunit_issue:`648` +- [UI] Fix not serializable path when exporting JSON. :vunit_issue:`657` +- [Tox] add pyproject.toml, use isolated_build, merge tox.ini into pyproject.yml. +- [Setup] Ensure that the source tree is on the sys path. +- [RivieraPro] Fix coverage merge error. :vunit_issue:`675` +- [RivieraPro] handle empty macro. :vunit_issue:`681` +- [RivieraPro] Update VHDL version option in command line interface to work with version 2020.04 and above. :vunit_issue:`664` +- [VCs] Add null AXI stream master and slave constants. +- [VCs] Fix bug in AXI stream protocol checker rule 4. +- [VCs] Add ability to define the actor on new_axi_slave function. :vunit_issue:`709` +- [VCs] Push avalon master read req msg one cycle earlier. :vunit_issue:`695` :vunit_issue:`696` +- [VCs] Fix broken msg passing in wishbone master. :vunit_issue:`692` :vunit_issue:`693` +- [CI] Update container registry, use ghcr.io. +- [CI] Pin Sphinx and docutils version to work around theme issues. + +:vunit_commit:`4.4.0 ` - 2020-03-26 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Update year and update license test to 2020. +- Bump OSVVM to latest version. +- Add possibility to configure random stalls for AXI Stream. :vunit_issue:`557` +- JSON-for-VHDL: use base16 encodings. :vunit_issue:`595` +- First release requiring Python 3.6 or higher. Python 2.7, 3.4 and 3.5 are not supported anymore. :vunit_issue:`596` :vunit_issue:`601` +- Start adding type annotations to the Python sources; add mypy (a static type checker) to the list of linters. :vunit_issue:`601` :vunit_issue:`626` +- Move co-simulation (VHPIDIRECT) sources (implementation and example) to `VUnit/cosim `_. :vunit_issue:`606` +- ghdl interface: with ``ghdl_e``, save runtime args to JSON file. :vunit_issue:`606` +- Add missing mode assertions to ``-93`` sources of ``integer_vector_ptr`` and ``string_ptr``. :vunit_issue:`607` +- Add method ``get_simulator_name()`` to public Python API. :vunit_issue:`610` +- Start replacing ``join``, ``dirname``, etc. with ``pathlib``. :vunit_issue:`612` :vunit_issue:`626` :vunit_issue:`632` +- Fix parsing adjacent hyphens in a literal. :vunit_issue:`616` +- Fix ``ghdl.flags`` error in documentation. :vunit_issue:`620` +- Rename compile option ``ghdl.flags`` to ``ghdl.a_flags``. :vunit_issue:`624` +- Move ``project.Library`` to separate file. +- Remove Travis CI and AppVeyor, use GitHub Actions only. +- Remove Sphinx extension ABlog; handle posts as regular pages in subdir ``blog``. +- Update GHDL to v0.37 in Windows CI jobs. +- Fix regression in GHDL (``prefix of array attribute must be an object name``). :vunit_issue:`631` :vunit_issue:`635` +- Add code coverage support for GHDL. :vunit_issue:`627` + +:vunit_commit:`4.3.0 ` - 2019-11-30 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Fix broken ``vhdl_standard`` setting in some situations. :vunit_issue:`594` +- Add 'external modes' (VHPIDIRECT) to ``string_ptr`` and ``integer_vector_ptr``; add ``byte_vector_prt`` too. :vunit_issue:`507` :vunit_issue:`476` +- Add report data to ``Results`` object/class. :vunit_issue:`586` +- Use a Python formatter: `psf/black `_. :vunit_issue:`554` +- Refactor ``vunit/ui``, ``vunit/sim_if``, ``vunit/test`` and ``tests``. :vunit_issue:`572` :vunit_issue:`582` +- Deprecate ``array_pkg``. It will be removed in future releases. Use :ref:`integer_array_pkg` instead. :vunit_issue:`593` +- Python 3.4 reached End-of-life in 2019-03-18 and it is no longer tested. Support is expected to break in future releases. +- Add support for Python 3.8. +- Deprecate Python 2.7. This is the last release supporting Python 2 and Python 3. Upcoming releases will be for Python 3 only. + +:vunit_commit:`4.2.0 ` - 2019-10-12 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Add ``-m/--minimal`` flag to only compile what is necessary for selected tests. +- Fix axi_stream VC for 0-length tid/tdest/tuser. +- Fix work reference for non-lower case library names. :vunit_issue:`556` +- Add ``init_files.before_run`` hook to RivieraPRO and ModelSim. +- Do not add extra quotes when invoking a gtkwave subprocess. :vunit_issue:`563` + +:vunit_commit:`4.1.0 ` - 2019-09-29 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Enhancements to Stream VCI and AXI Stream VCs. (:vunit_issue:`420`, :vunit_issue:`422`, :vunit_issue:`429`, :vunit_issue:`483`) +- Add option 'overwrite' to set_sim_option. (:vunit_issue:`471`) +- ActiveHDL: add code coverage support. (:vunit_issue:`461`) +- GtkWave: add sim option 'ghdl.init_file.gui'. (:vunit_issue:`459`) +- GHDL: add boolean option ghdl.elab_e, to execute 'ghdl -e' only. (:vunit_issue:`467`) +- GHDL: with VHDL 2008 nonzero return values produce a fail. (:vunit_issue:`469`) +- Add experimental VHDL 2019 support. (:vunit_issue:`549`) + +:vunit_commit:`4.0.8 ` - 2018-12-04 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Fix vivado submodule missing from release. :vunit_issue:`415` +- Add support for checking AXI response in axi_lite_master +- Fix bug with coverage flag not working with unique-sim in rivierapro +- Support for Avalon-MM burst transfers +- Unsure LICENSE_QUEUE environment variable is in effect for RivieraPRO + +:vunit_commit:`4.0.7 ` - 2018-11-20 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Fix a problem parsing generics with string containing semi colon. :vunit_issue:`409` + +:vunit_commit:`4.0.6 ` - 2018-11-15 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Fix a problem where sometimes multiple Ctrl-C where required to abort execution. :vunit_issue:`408` + +:vunit_commit:`4.0.5 ` - 2018-11-07 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Make tb_path absolute again. :vunit_issue:`406` +- Fix ``--export-json`` test location offets for DOS line endings. :vunit_issue:`437` + +:vunit_commit:`4.0.4 ` - 2018-11-05 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Fix broken ActiveHDL support. + +:vunit_commit:`4.0.3 ` - 2018-11-02 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Fix ``set_timeout`` for large values in ModelSim. :vunit_issue:`405` + +:vunit_commit:`4.0.2 ` - 2018-10-25 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Fix missing msg_type in push and pop of msg_t. +- Ensure axi_lite_master always aligns with aclk to avoid VHDL/Verilog simulation mismatch. + +:vunit_commit:`4.0.1 ` - 2018-10-23 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Set value to null when pushing pointer types in queue_t and com to avoid accidental dupliction of ownership. +- Fix broken ram_master.vhd where the response messages where deleted to early. + +:vunit_commit:`4.0.0 ` - 2018-10-22 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- New coverage support: + + The ``--coverage`` flag has been removed in favor of exposing a + more flexible :ref:`coverage interface `. The flag was + was not flexible enough for many users and we decided to make a + breaking change to get a better solution moving forward. An + example of using the new interface can be found here + :vunit_example:`here `. For users who liked the old + flag VUnit supports adding :ref:`custom ` command line + arguments. + +- Add ability to set watchdog timer dynamically. :vunit_issue:`400` + +- Skipping protected regions in the Verilog preprocessor. + +- Integrate utility to add Vivado IP to a VUnit project see :vunit_example:`example `. + +- Make tb_path work in combination with preprocessing. :vunit_issue:`402` + +:vunit_commit:`3.9.0 ` - 2018-10-11 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Verification components + - Avalon + - Add Avalon streaming packet signals :vunit_issue:`383` + - AXI + - Various AXI BFM improvements. +- Added special JUnit XML format for Bamboo CI server. :vunit_issue:`384` +- Add support for requirements trace-ability via user defined test attributes. +- Add ``--json--export`` flag to export list of all files and tests with associated attributes. +- Add test case filtering for user defined attributes. + - For example allows marking tests that should be run per commit or only every night. +- Always use the most up to date version of modelsim.ini. + +:vunit_commit:`3.8.0 ` - 2018-08-26 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Verification components + - Avalon + - Add Avalon memory mapped slave and master. :vunit_issue:`359` + - Add Avalon stream source and sink. :vunit_issue:`361` + - AXI + - Add AXI stream monitor + - Wishbone + - Strict command order in wishbone master. :vunit_issue:`372` +- Remove warnings when using built-in RivieraPRO libraries. :vunit_issue:`374` + +:vunit_commit:`3.7.0 ` - 2018-07-21 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Fixed lint issues from new pylint version. +- Log output of failed vsim startup to stderr. :vunit_issue:`354` +- Allow case-insensitive lookup of entities. :vunit_issue:`#346` +- Added vhdl_standard attribute at class initialization. :vunit_issue:`#350` +- Adding csv mapping support for files and libraries. :vunit_issue:`349` +- Fix broken vivado example wrt verilog headers. :vunit_issue:`344` +- Allow adding duplicate libraries. :vunit_issue:`341` +- Make adding duplicate file INFO instead of WARNING. :vunit_issue:`341` + +:vunit_commit:`3.6.2 ` - 2018-06-21 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Fixed memory leak when popping messages from queues. + +:vunit_commit:`3.6.1 ` - 2018-06-20 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Increase message id on publish + +:vunit_commit:`3.6.0 ` - 2018-06-19 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Ignore files added twice with identical contents. Closes #341 +- Made queues type safe + +:vunit_commit:`3.5.0 ` - 2018-06-04 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Added the ability to specify actor for AXI stream masters and slaves +- Added as_sync function to bus masters and AXI stream masters + +:vunit_commit:`3.4.0 ` - 2018-05-31 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Updated context files + +:vunit_commit:`3.3.0 ` - 2018-05-24 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Add SystemVerilog support for test benches without test cases. :vunit_issue:`328` +- Graceful recovery and error message from failed VHDL parsing. +- Stripping clean from re-compile command. +- Add `JSON-for-VHDL `_ as a submodule. + +:vunit_commit:`3.2.0 ` - 2018-05-07 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Add ``output`` argument to ``post_check``. :vunit_issue:`332` + +:vunit_commit:`3.1.0 ` - 2018-04-27 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Add ``--fail-fast`` CLI argument to stop on first test failure. +- Delay simulator selection until VUnit class instantiation instead of import +- Add ``post_run`` to VUnit main. +- Add ``disable_coverage`` compile option. +- Improve AXI read/write slaves + + - Add debug logging + - Add setting of stall, fifo depth and response latency + - Add burst length statistics + +- Improve AXI-lite master + + - Add debug logging + +:vunit_commit:`3.0.3 ` - 2018-04-22 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Add ``check_equal`` for real with ``max_diff`` +- Improve ``com`` library performance +- Added support for message forwarding +- Improve axi stream verification components +- Add wishbone verification component +- Protect against unexpected mutation of compile and sim options + +:vunit_commit:`3.0.2 ` - 2018-02-22 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Added is_empty on queues +- Documented queue_t and integer_array_t +- Fixed memory leak + + +:vunit_commit:`3.0.1 ` - 2018-02-19 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Replace deprecated aliases with constants to work around Sigasi-limitation. + +:vunit_commit:`3.0.0 ` - 2018-02-12 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- *beta* version of a :ref:`verification component ` library. + + - AXI read/write slaves + - Memory model + - AXI master + - AXI stream + - UART RX/TX + - (B)RAM master + +- Hiearchical and color logging support. + +- Communication library usability improvements. + + - Push/pop message creation and debugging tools. + +:vunit_commit:`2.4.3 ` - 2018-01-24 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- SystemVerilog: Fix dependency scanning with instance directly after block label :vunit_issue:`305`. + +:vunit_commit:`2.4.2 ` - 2018-01-20 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- SystemVerilog: Allow MACRO argument within ({[]}). :vunit_issue:`300`. + +:vunit_commit:`2.4.1 ` - 2018-01-16 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- SystemVerilog: Fix WATCHDOG macro with local timescale set :vunit_issue:`299`. + +:vunit_commit:`2.4.0 ` - 2018-01-12 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Ignore test cases in SystemVerilog comments. +- Make integer_array_t metadata get-functions public. +- dictionary: add default value option to get function. +- Improve get_implementation_subset :vunit_issue:`286`. + +:vunit_commit:`2.3.0 ` - 2017-12-19 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Fix commas in Modelsim generics :vunit_issue:`284`. +- Fix problem with vsim_extra_args between entity and architecture in riviera and activehdl. +- Update Verilog preprocessor to read using latin-1 encoding. :vunit_issue:`285`. +- Improve compile printouts :vunit_issue:`283`. +- Add -q/--quiet flag. :vunit_issue:`283`. +- Add printout of output file location. :vunit_issue:`283`. +- Dropped support and testing of Python 3.3 (might still work anyway). +- Fix of Modelsim `--coverage` argument :vunit_issue:`288`. + +:vunit_commit:`2.2.0 ` - 2017-09-29 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Add support for tokenizing verilog multi line strings. :vunit_issue:`278` +- Added support for restarting window in check_stable +- Added support for num_cks=0 in check_next. +- Error on adding duplicate source files. :vunit_issue:`274` +- Update Vivado example. +- Add support for non-system-verilog verilog files. :vunit_issue:`268` +- Add dependency scanning of the use of an instantiated package. :vunit_issue:`233` +- Add human readable test output paths. :vunit_issue:`211` + +:vunit_commit:`2.1.1 ` - 2017-07-19 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Fix ``init_file(s)`` broken in 2.1.0 +- Fix test bench regex that could match \*_tb\*. :vunit_issue:`263` +- Add external library sanity check. :vunit_issue:`230` +- Add non-empty operation check. :vunit_issue:`250` + +:vunit_commit:`2.1.0 ` - 2017-07-19 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Add ``{rivierapro, modelsim}_init_files.after_load`` + sim_options. They allow setting a list of DO/TCL files to be + executed during ``vunit_load`` after the top level has been loaded + using the ``vsim`` command. +- Add input validation to sim and compile options + +:vunit_commit:`2.0.1 ` - 2017-07-10 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Various small fixes + +:vunit_commit:`2.0.0 ` - 2017-02-21 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + + +Public interface changes +~~~~~~~~~~~~~~~~~~~~~~~~ + +Some ``run.py`` scripts can be broken by this. Both ``set_generic`` +and ``add_config`` works differently internally. + +``set_generic`` and ``set_sim_option`` now only affects files added +before the call so reordering within the ``run.py`` can be needed. + +``add_config`` on the test case level will no longer discard +configurations added on the test bench level. This affects users +mixing adding configurations on both test and test case level for the +same test bench. Adding a configuration on the test bench level is now +seen as a shorthand for adding the configuration to all test cases +within the test bench. Configurations are only held at the test case +level now. Before there could be configurations on multiple levels +where the most specific level ignored all others. I now recommend +writing a for loop over test_bench.get_tests() adding configurations +to each test individually, see the updated generate_tests example. + +We have also forbidden to have configurations without name (""), this +is since the default configuration of all test cases has no name. The +``post_check`` and ``pre_config`` can now be set using +``set_pre_config`` also without using ``add_config`` removing the need +to add a single unnamed configuration and instead setting these in the +default configuration. + +This internal restructuring has been made to allow a sane data model +of configurations where they are attached to test cases. This allows +us to expose configurations objects on the public API in the future +allowing users more control and visibility. The current behavior of +configurations is also better documented than it ever was. + +I suggest reading the section on :ref:`configurations ` in the docs. + +- Replace ``disable_ieee_warnings`` and ``set_pli`` with corresponding simulation options. +- Adds ``--version`` flag +- Added ``--gui`` flag for GHDL to open gtkwave. Also allows saving waveform without opening gui with ``--gtkwave-fmt`` flag. + +:vunit_commit:`1.4.0 ` - 2017-02-05 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Removed bug when compiling Verilog with Active-HDL +- Updated array package +- Added support for simulation init script +- Added support for setting VHDL asserts stop level from run script + +:vunit_commit:`1.3.1 ` - 2017-01-17 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Fixed compile errors with GHDL 0.33 + +:vunit_commit:`1.3.0 ` - 2017-01-06 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Added support for pass acknowledge messages for check subprograms. +- Made design unit duplication a warning instead of runtime error again. + +:vunit_commit:`1.2.0 ` - 2016-12-19 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Updated OSVVM submodule + +:vunit_commit:`1.1.1 ` - 2016-12-08 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Adds vunit_restart and vunit_compile TCL commands for both ModelSim and RivieraPro +- Also support persistent simulator to save startup overhead for RivieraPro. +- Changes --new-vsim into -u/--unique-sim which also works for riviera + +:vunit_commit:`1.0.0 ` - 2016-11-22 +------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Adds ActiveHDL custom simulation flags support +- Made library simulator flag argument deterministic and same as the order added to VUnit +- Added check_equal between std_logic_vector and natural for unsigned comparison +- Can now set vhdl_standard on an external library +- Added no_parse argument to add_source_files(s) to inhibit any dependency or test scanning +- Renamed public method depends_on to add_dependency_on + +:vunit_commit:`0.71.0 ` - 2016-10-20 +--------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Improved location preprocessing control + +:vunit_commit:`0.70.0 ` - 2016-10-13 +--------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Hashing test output_path to protect against special characters and long paths on Windows. +- Added ``.vo`` as recognized Verilog file ending. +- Enable setting vhdl_standard per file. + +:vunit_commit:`0.69.0 ` - 2016-09-09 +--------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +Added check_equal for strings. + +:vunit_commit:`0.68.1 ` - 2016-09-03 +--------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +New version to fix broken PyPi upload + +:vunit_commit:`0.68.0 ` - 2016-09-03 +--------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +Added check_equal for time and updated documentation. + +:vunit_commit:`0.67.0 ` - 2016-08-08 +--------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- A number of minor enhancements and bug fixes +- Added vunit_restart TCL procedure to ModelSim +- Print out remaining number of tests when pressing ctrl-c +- Updated OSVVM and made it a git submodule. Run + +.. code-block:: console + + git submodule update --init --recursive + +after updating an existing Git repository or + +.. code-block:: console + + git clone --recursive https://github.com/VUnit/vunit.git + +when creating a new clone to get the OSVVM subdirectory of VUnit populated. Doesn't affect installations made from PyPi + +:vunit_commit:`0.66.0 ` - 2016-04-03 +--------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Fixed :vunit_issue:`109`, :vunit_issue:`141`, :vunit_issue:`153`, :vunit_issue:`155`. +- Fixed relative path for multiple drives on windows. + +:vunit_commit:`0.65.0 ` - 2016-03-13 +--------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Added sim and compile options to set rivierapro/activehdl flags. :vunit_issue:`143`. +- Removed builtin ``-dbg`` flag to vcom for aldec tools. Use set_compile_option instead to set it yourself. +- Fixed a bug with custom relative output_path. +- Documentation fixes & improvements. +- Update rivierapro and activehdl toolchain discovery. :vunit_issue:`148`. +- Added possibility to set ``VUNIT__PATH`` environment + variable to specify simulation executable path. :vunit_issue:`148`. +- Added ``-k/--keep-compiling`` flag. :vunit_issue:`140`. +- Added optional ``output_path`` argument to ``pre_config``. :vunit_issue:`146`. + +:vunit_commit:`0.64.0 ` - 2016-03-03 +--------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Added python version check. Closes :vunit_issue:`141`. +- Not adding .all suffix when there are named configurations + +:vunit_commit:`0.63.0 ` - 2016-03-02 +--------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Update test scanner pattern to be based on ``runner_cfg``. :vunit_issue:`138` + +:vunit_commit:`0.62.1 ` - 2016-02-28 +--------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + + +:vunit_commit:`0.62.0 ` - 2016-02-27 +--------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Early runtime error when gtkwave is missing. Closes :vunit_issue:`137` +- Added add_compile_option. Closes :vunit_issue:`118` + +:vunit_commit:`0.61.0 ` - 2016-02-23 +--------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Adds ``.all`` suffix to test benches with no test to better align with XUnit architecture. + - Enables better hierarchical JUnit XML report view in Jenkins. +- Fixes :vunit_issue:`129`. + +:vunit_commit:`0.60.1 ` - 2016-02-16 +--------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Avoids crash with errors in Verilog defines from Python string in run.py + +:vunit_commit:`0.60.0 ` - 2016-02-15 +--------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Better error messages when there are circular dependencies. +- Added ``defines`` argument to add_source_file(s) :vunit_issue:`126` +- Made ``--files`` deterministic with Python 3 :vunit_issue:`116` + +:vunit_commit:`0.59.0 ` - 2016-02-13 +--------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Covered a miss in circular dependency detection. +- Added detection of circular includes and macro expansions in verilog preprocessing. +- Added caching of verilog parse results for significant speed when running run.py more than once. + +:vunit_commit:`0.58.0 ` - 2016-02-11 +--------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Parsing Verilog package references. :vunit_issue:`119` +- Added ``scan_tests_from_file`` public method. :vunit_issue:`121`. + +:vunit_commit:`0.57.0 ` - 2016-02-08 +--------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Adds ``include_dirs`` argument also to ``Library`` add_source_file(s) +- Ignores more builtin Verilog preprocessor directives. + +:vunit_commit:`0.56.0 ` - 2016-02-07 +--------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Verilog preprocessing of resetall / undefineall / undef + +:vunit_commit:`0.54.0 ` - 2016-02-06 +--------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- Adds support for Verilog preprocessor ifdef/ifndef/elsif/else/endif +- Fixes regression in modelsim persistent mode. Makes many short tests faster. + +:vunit_commit:`0.53.0 ` - 2016-02-06 +--------------------------------------------- + + +`Download from PyPI `__ | `Commits since previous release `__ + +- ``add_source_files`` accepts a list of files +- Added ``-f/--files`` command line flag to list all files in compile order +- Verilog parser improvements in robustness and error messages. + +:vunit_commit:`0.52.0 ` - 2016-01-29 +--------------------------------------------- + + +`Download from PyPI `__ + +Added function to get the number of messages missed by a com package actor. diff --git a/docs/release_notes/0.52.0.rst b/docs/release_notes/0.52.0.rst deleted file mode 100644 index d1be33a17..000000000 --- a/docs/release_notes/0.52.0.rst +++ /dev/null @@ -1 +0,0 @@ -Added function to get the number of messages missed by a com package actor. diff --git a/docs/release_notes/0.53.0.rst b/docs/release_notes/0.53.0.rst deleted file mode 100644 index c7a1e9110..000000000 --- a/docs/release_notes/0.53.0.rst +++ /dev/null @@ -1,3 +0,0 @@ -- ``add_source_files`` accepts a list of files -- Added ``-f/--files`` command line flag to list all files in compile order -- Verilog parser improvements in robustness and error messages. diff --git a/docs/release_notes/0.54.0.rst b/docs/release_notes/0.54.0.rst deleted file mode 100644 index 8a1397dc6..000000000 --- a/docs/release_notes/0.54.0.rst +++ /dev/null @@ -1,2 +0,0 @@ -- Adds support for Verilog preprocessor ifdef/ifndef/elsif/else/endif -- Fixes regression in modelsim persistent mode. Makes many short tests faster. diff --git a/docs/release_notes/0.56.0.rst b/docs/release_notes/0.56.0.rst deleted file mode 100644 index 03253747c..000000000 --- a/docs/release_notes/0.56.0.rst +++ /dev/null @@ -1 +0,0 @@ -- Verilog preprocessing of resetall / undefineall / undef diff --git a/docs/release_notes/0.57.0.rst b/docs/release_notes/0.57.0.rst deleted file mode 100644 index 22cc3ac40..000000000 --- a/docs/release_notes/0.57.0.rst +++ /dev/null @@ -1,2 +0,0 @@ -- Adds ``include_dirs`` argument also to ``Library`` add_source_file(s) -- Ignores more builtin Verilog preprocessor directives. diff --git a/docs/release_notes/0.58.0.rst b/docs/release_notes/0.58.0.rst deleted file mode 100644 index be491c905..000000000 --- a/docs/release_notes/0.58.0.rst +++ /dev/null @@ -1,2 +0,0 @@ -- Parsing Verilog package references. :vunit_issue:`119` -- Added ``scan_tests_from_file`` public method. :vunit_issue:`121`. diff --git a/docs/release_notes/0.59.0.rst b/docs/release_notes/0.59.0.rst deleted file mode 100644 index 8a77799dc..000000000 --- a/docs/release_notes/0.59.0.rst +++ /dev/null @@ -1,3 +0,0 @@ -- Covered a miss in circular dependency detection. -- Added detection of circular includes and macro expansions in verilog preprocessing. -- Added caching of verilog parse results for significant speed when running run.py more than once. diff --git a/docs/release_notes/0.60.0.rst b/docs/release_notes/0.60.0.rst deleted file mode 100644 index a4d88d8ed..000000000 --- a/docs/release_notes/0.60.0.rst +++ /dev/null @@ -1,3 +0,0 @@ -- Better error messages when there are circular dependencies. -- Added ``defines`` argument to add_source_file(s) :vunit_issue:`126` -- Made ``--files`` deterministic with Python 3 :vunit_issue:`116` diff --git a/docs/release_notes/0.60.1.rst b/docs/release_notes/0.60.1.rst deleted file mode 100644 index fdfec95f3..000000000 --- a/docs/release_notes/0.60.1.rst +++ /dev/null @@ -1 +0,0 @@ -- Avoids crash with errors in Verilog defines from Python string in run.py diff --git a/docs/release_notes/0.61.0.rst b/docs/release_notes/0.61.0.rst deleted file mode 100644 index 1f36b5807..000000000 --- a/docs/release_notes/0.61.0.rst +++ /dev/null @@ -1,3 +0,0 @@ -- Adds ``.all`` suffix to test benches with no test to better align with XUnit architecture. - - Enables better hierarchical JUnit XML report view in Jenkins. -- Fixes :vunit_issue:`129`. diff --git a/docs/release_notes/0.62.0.rst b/docs/release_notes/0.62.0.rst deleted file mode 100644 index 33877f363..000000000 --- a/docs/release_notes/0.62.0.rst +++ /dev/null @@ -1,2 +0,0 @@ -- Early runtime error when gtkwave is missing. Closes :vunit_issue:`137` -- Added add_compile_option. Closes :vunit_issue:`118` diff --git a/docs/release_notes/0.62.1.rst b/docs/release_notes/0.62.1.rst deleted file mode 100644 index e69de29bb..000000000 diff --git a/docs/release_notes/0.63.0.rst b/docs/release_notes/0.63.0.rst deleted file mode 100644 index 27f3b7548..000000000 --- a/docs/release_notes/0.63.0.rst +++ /dev/null @@ -1 +0,0 @@ -- Update test scanner pattern to be based on ``runner_cfg``. :vunit_issue:`138` diff --git a/docs/release_notes/0.64.0.rst b/docs/release_notes/0.64.0.rst deleted file mode 100644 index 7b07ce578..000000000 --- a/docs/release_notes/0.64.0.rst +++ /dev/null @@ -1,2 +0,0 @@ -- Added python version check. Closes :vunit_issue:`141`. -- Not adding .all suffix when there are named configurations diff --git a/docs/release_notes/0.65.0.rst b/docs/release_notes/0.65.0.rst deleted file mode 100644 index f0fbac16c..000000000 --- a/docs/release_notes/0.65.0.rst +++ /dev/null @@ -1,9 +0,0 @@ -- Added sim and compile options to set rivierapro/activehdl flags. :vunit_issue:`143`. -- Removed builtin ``-dbg`` flag to vcom for aldec tools. Use set_compile_option instead to set it yourself. -- Fixed a bug with custom relative output_path. -- Documentation fixes & improvements. -- Update rivierapro and activehdl toolchain discovery. :vunit_issue:`148`. -- Added possibility to set ``VUNIT__PATH`` environment - variable to specify simulation executable path. :vunit_issue:`148`. -- Added ``-k/--keep-compiling`` flag. :vunit_issue:`140`. -- Added optional ``output_path`` argument to ``pre_config``. :vunit_issue:`146`. diff --git a/docs/release_notes/0.66.0.rst b/docs/release_notes/0.66.0.rst deleted file mode 100644 index 4c550ca87..000000000 --- a/docs/release_notes/0.66.0.rst +++ /dev/null @@ -1,2 +0,0 @@ -- Fixed :vunit_issue:`109`, :vunit_issue:`141`, :vunit_issue:`153`, :vunit_issue:`155`. -- Fixed relative path for multiple drives on windows. diff --git a/docs/release_notes/0.67.0.rst b/docs/release_notes/0.67.0.rst deleted file mode 100644 index a389c7d2c..000000000 --- a/docs/release_notes/0.67.0.rst +++ /dev/null @@ -1,16 +0,0 @@ -- A number of minor enhancements and bug fixes -- Added vunit_restart TCL procedure to ModelSim -- Print out remaining number of tests when pressing ctrl-c -- Updated OSVVM and made it a git submodule. Run - -.. code-block:: console - - git submodule update --init --recursive - -after updating an existing Git repository or - -.. code-block:: console - - git clone --recursive https://github.com/VUnit/vunit.git - -when creating a new clone to get the OSVVM subdirectory of VUnit populated. Doesn't affect installations made from PyPi diff --git a/docs/release_notes/0.68.0.rst b/docs/release_notes/0.68.0.rst deleted file mode 100644 index 68f67aa9d..000000000 --- a/docs/release_notes/0.68.0.rst +++ /dev/null @@ -1 +0,0 @@ -Added check_equal for time and updated documentation. diff --git a/docs/release_notes/0.68.1.rst b/docs/release_notes/0.68.1.rst deleted file mode 100644 index f87bee3d1..000000000 --- a/docs/release_notes/0.68.1.rst +++ /dev/null @@ -1 +0,0 @@ -New version to fix broken PyPi upload diff --git a/docs/release_notes/0.69.0.rst b/docs/release_notes/0.69.0.rst deleted file mode 100644 index 41804a0c6..000000000 --- a/docs/release_notes/0.69.0.rst +++ /dev/null @@ -1 +0,0 @@ -Added check_equal for strings. diff --git a/docs/release_notes/0.70.0.rst b/docs/release_notes/0.70.0.rst deleted file mode 100644 index c7b00f30e..000000000 --- a/docs/release_notes/0.70.0.rst +++ /dev/null @@ -1,3 +0,0 @@ -- Hashing test output_path to protect against special characters and long paths on Windows. -- Added ``.vo`` as recognized Verilog file ending. -- Enable setting vhdl_standard per file. diff --git a/docs/release_notes/0.71.0.rst b/docs/release_notes/0.71.0.rst deleted file mode 100644 index 44df81a14..000000000 --- a/docs/release_notes/0.71.0.rst +++ /dev/null @@ -1 +0,0 @@ -- Improved location preprocessing control diff --git a/docs/release_notes/1.0.0.rst b/docs/release_notes/1.0.0.rst deleted file mode 100644 index 7f3ab2eff..000000000 --- a/docs/release_notes/1.0.0.rst +++ /dev/null @@ -1,6 +0,0 @@ -- Adds ActiveHDL custom simulation flags support -- Made library simulator flag argument deterministic and same as the order added to VUnit -- Added check_equal between std_logic_vector and natural for unsigned comparison -- Can now set vhdl_standard on an external library -- Added no_parse argument to add_source_files(s) to inhibit any dependency or test scanning -- Renamed public method depends_on to add_dependency_on diff --git a/docs/release_notes/1.1.1.rst b/docs/release_notes/1.1.1.rst deleted file mode 100644 index 1b6ba9c1c..000000000 --- a/docs/release_notes/1.1.1.rst +++ /dev/null @@ -1,3 +0,0 @@ -- Adds vunit_restart and vunit_compile TCL commands for both ModelSim and RivieraPro -- Also support persistent simulator to save startup overhead for RivieraPro. -- Changes --new-vsim into -u/--unique-sim which also works for riviera diff --git a/docs/release_notes/1.2.0.rst b/docs/release_notes/1.2.0.rst deleted file mode 100644 index 158d39ee5..000000000 --- a/docs/release_notes/1.2.0.rst +++ /dev/null @@ -1 +0,0 @@ -- Updated OSVVM submodule diff --git a/docs/release_notes/1.3.0.rst b/docs/release_notes/1.3.0.rst deleted file mode 100644 index 3c67d42e8..000000000 --- a/docs/release_notes/1.3.0.rst +++ /dev/null @@ -1,2 +0,0 @@ -- Added support for pass acknowledge messages for check subprograms. -- Made design unit duplication a warning instead of runtime error again. diff --git a/docs/release_notes/1.3.1.rst b/docs/release_notes/1.3.1.rst deleted file mode 100644 index 013d554b3..000000000 --- a/docs/release_notes/1.3.1.rst +++ /dev/null @@ -1 +0,0 @@ -- Fixed compile errors with GHDL 0.33 diff --git a/docs/release_notes/1.4.0.rst b/docs/release_notes/1.4.0.rst deleted file mode 100644 index bacf90f47..000000000 --- a/docs/release_notes/1.4.0.rst +++ /dev/null @@ -1,4 +0,0 @@ -- Removed bug when compiling Verilog with Active-HDL -- Updated array package -- Added support for simulation init script -- Added support for setting VHDL asserts stop level from run script diff --git a/docs/release_notes/2.0.0.rst b/docs/release_notes/2.0.0.rst deleted file mode 100644 index 62ddb2dee..000000000 --- a/docs/release_notes/2.0.0.rst +++ /dev/null @@ -1,39 +0,0 @@ - -Public interface changes -~~~~~~~~~~~~~~~~~~~~~~~~ - -Some ``run.py`` scripts can be broken by this. Both ``set_generic`` -and ``add_config`` works differently internally. - -``set_generic`` and ``set_sim_option`` now only affects files added -before the call so reordering within the ``run.py`` can be needed. - -``add_config`` on the test case level will no longer discard -configurations added on the test bench level. This affects users -mixing adding configurations on both test and test case level for the -same test bench. Adding a configuration on the test bench level is now -seen as a shorthand for adding the configuration to all test cases -within the test bench. Configurations are only held at the test case -level now. Before there could be configurations on multiple levels -where the most specific level ignored all others. I now recommend -writing a for loop over test_bench.get_tests() adding configurations -to each test individually, see the updated generate_tests example. - -We have also forbidden to have configurations without name (""), this -is since the default configuration of all test cases has no name. The -``post_check`` and ``pre_config`` can now be set using -``set_pre_config`` also without using ``add_config`` removing the need -to add a single unnamed configuration and instead setting these in the -default configuration. - -This internal restructuring has been made to allow a sane data model -of configurations where they are attached to test cases. This allows -us to expose configurations objects on the public API in the future -allowing users more control and visibility. The current behavior of -configurations is also better documented than it ever was. - -I suggest reading the section on :ref:`configurations ` in the docs. - -- Replace ``disable_ieee_warnings`` and ``set_pli`` with corresponding simulation options. -- Adds ``--version`` flag -- Added ``--gui`` flag for GHDL to open gtkwave. Also allows saving waveform without opening gui with ``--gtkwave-fmt`` flag. diff --git a/docs/release_notes/2.0.1.rst b/docs/release_notes/2.0.1.rst deleted file mode 100644 index 4a074258a..000000000 --- a/docs/release_notes/2.0.1.rst +++ /dev/null @@ -1 +0,0 @@ -- Various small fixes diff --git a/docs/release_notes/2.1.0.rst b/docs/release_notes/2.1.0.rst deleted file mode 100644 index 97c9bbccf..000000000 --- a/docs/release_notes/2.1.0.rst +++ /dev/null @@ -1,5 +0,0 @@ -- Add ``{rivierapro, modelsim}_init_files.after_load`` - sim_options. They allow setting a list of DO/TCL files to be - executed during ``vunit_load`` after the top level has been loaded - using the ``vsim`` command. -- Add input validation to sim and compile options diff --git a/docs/release_notes/2.1.1.rst b/docs/release_notes/2.1.1.rst deleted file mode 100644 index 9aaef0ef7..000000000 --- a/docs/release_notes/2.1.1.rst +++ /dev/null @@ -1,4 +0,0 @@ -- Fix ``init_file(s)`` broken in 2.1.0 -- Fix test bench regex that could match \*_tb\*. :vunit_issue:`263` -- Add external library sanity check. :vunit_issue:`230` -- Add non-empty operation check. :vunit_issue:`250` diff --git a/docs/release_notes/2.2.0.rst b/docs/release_notes/2.2.0.rst deleted file mode 100644 index b217f3c36..000000000 --- a/docs/release_notes/2.2.0.rst +++ /dev/null @@ -1,8 +0,0 @@ -- Add support for tokenizing verilog multi line strings. :vunit_issue:`278` -- Added support for restarting window in check_stable -- Added support for num_cks=0 in check_next. -- Error on adding duplicate source files. :vunit_issue:`274` -- Update Vivado example. -- Add support for non-system-verilog verilog files. :vunit_issue:`268` -- Add dependency scanning of the use of an instantiated package. :vunit_issue:`233` -- Add human readable test output paths. :vunit_issue:`211` diff --git a/docs/release_notes/2.3.0.rst b/docs/release_notes/2.3.0.rst deleted file mode 100644 index 7ff10e11e..000000000 --- a/docs/release_notes/2.3.0.rst +++ /dev/null @@ -1,8 +0,0 @@ -- Fix commas in Modelsim generics :vunit_issue:`284`. -- Fix problem with vsim_extra_args between entity and architecture in riviera and activehdl. -- Update Verilog preprocessor to read using latin-1 encoding. :vunit_issue:`285`. -- Improve compile printouts :vunit_issue:`283`. -- Add -q/--quiet flag. :vunit_issue:`283`. -- Add printout of output file location. :vunit_issue:`283`. -- Dropped support and testing of Python 3.3 (might still work anyway). -- Fix of Modelsim `--coverage` argument :vunit_issue:`288`. diff --git a/docs/release_notes/2.4.0.rst b/docs/release_notes/2.4.0.rst deleted file mode 100644 index 1b46dff2b..000000000 --- a/docs/release_notes/2.4.0.rst +++ /dev/null @@ -1,4 +0,0 @@ -- Ignore test cases in SystemVerilog comments. -- Make integer_array_t metadata get-functions public. -- dictionary: add default value option to get function. -- Improve get_implementation_subset :vunit_issue:`286`. diff --git a/docs/release_notes/2.4.1.rst b/docs/release_notes/2.4.1.rst deleted file mode 100644 index 72213237c..000000000 --- a/docs/release_notes/2.4.1.rst +++ /dev/null @@ -1 +0,0 @@ -- SystemVerilog: Fix WATCHDOG macro with local timescale set :vunit_issue:`299`. diff --git a/docs/release_notes/2.4.2.rst b/docs/release_notes/2.4.2.rst deleted file mode 100644 index 96c6bb4ed..000000000 --- a/docs/release_notes/2.4.2.rst +++ /dev/null @@ -1 +0,0 @@ -- SystemVerilog: Allow MACRO argument within ({[]}). :vunit_issue:`300`. diff --git a/docs/release_notes/2.4.3.rst b/docs/release_notes/2.4.3.rst deleted file mode 100644 index 7962c73d8..000000000 --- a/docs/release_notes/2.4.3.rst +++ /dev/null @@ -1 +0,0 @@ -- SystemVerilog: Fix dependency scanning with instance directly after block label :vunit_issue:`305`. diff --git a/docs/release_notes/3.0.0.rst b/docs/release_notes/3.0.0.rst deleted file mode 100644 index afd32f007..000000000 --- a/docs/release_notes/3.0.0.rst +++ /dev/null @@ -1,14 +0,0 @@ -- *beta* version of a :ref:`verification component ` library. - - - AXI read/write slaves - - Memory model - - AXI master - - AXI stream - - UART RX/TX - - (B)RAM master - -- Hiearchical and color logging support. - -- Communication library usability improvements. - - - Push/pop message creation and debugging tools. diff --git a/docs/release_notes/3.0.1.rst b/docs/release_notes/3.0.1.rst deleted file mode 100644 index 744cd93fa..000000000 --- a/docs/release_notes/3.0.1.rst +++ /dev/null @@ -1 +0,0 @@ -- Replace deprecated aliases with constants to work around Sigasi-limitation. diff --git a/docs/release_notes/3.0.2.rst b/docs/release_notes/3.0.2.rst deleted file mode 100644 index 555a61b20..000000000 --- a/docs/release_notes/3.0.2.rst +++ /dev/null @@ -1,4 +0,0 @@ -- Added is_empty on queues -- Documented queue_t and integer_array_t -- Fixed memory leak - diff --git a/docs/release_notes/3.0.3.rst b/docs/release_notes/3.0.3.rst deleted file mode 100644 index 7e7ab63a4..000000000 --- a/docs/release_notes/3.0.3.rst +++ /dev/null @@ -1,6 +0,0 @@ -- Add ``check_equal`` for real with ``max_diff`` -- Improve ``com`` library performance -- Added support for message forwarding -- Improve axi stream verification components -- Add wishbone verification component -- Protect against unexpected mutation of compile and sim options diff --git a/docs/release_notes/3.1.0.rst b/docs/release_notes/3.1.0.rst deleted file mode 100644 index 7acdce20f..000000000 --- a/docs/release_notes/3.1.0.rst +++ /dev/null @@ -1,13 +0,0 @@ -- Add ``--fail-fast`` CLI argument to stop on first test failure. -- Delay simulator selection until VUnit class instantiation instead of import -- Add ``post_run`` to VUnit main. -- Add ``disable_coverage`` compile option. -- Improve AXI read/write slaves - - - Add debug logging - - Add setting of stall, fifo depth and response latency - - Add burst length statistics - -- Improve AXI-lite master - - - Add debug logging diff --git a/docs/release_notes/3.2.0.rst b/docs/release_notes/3.2.0.rst deleted file mode 100644 index d23ec2441..000000000 --- a/docs/release_notes/3.2.0.rst +++ /dev/null @@ -1 +0,0 @@ -- Add ``output`` argument to ``post_check``. :vunit_issue:`332` diff --git a/docs/release_notes/3.3.0.rst b/docs/release_notes/3.3.0.rst deleted file mode 100644 index fbda31c08..000000000 --- a/docs/release_notes/3.3.0.rst +++ /dev/null @@ -1,4 +0,0 @@ -- Add SystemVerilog support for test benches without test cases. :vunit_issue:`328` -- Graceful recovery and error message from failed VHDL parsing. -- Stripping clean from re-compile command. -- Add `JSON-for-VHDL `_ as a submodule. diff --git a/docs/release_notes/3.4.0.rst b/docs/release_notes/3.4.0.rst deleted file mode 100644 index d325bcf68..000000000 --- a/docs/release_notes/3.4.0.rst +++ /dev/null @@ -1 +0,0 @@ -- Updated context files diff --git a/docs/release_notes/3.5.0.rst b/docs/release_notes/3.5.0.rst deleted file mode 100644 index c98d8b78f..000000000 --- a/docs/release_notes/3.5.0.rst +++ /dev/null @@ -1,2 +0,0 @@ -- Added the ability to specify actor for AXI stream masters and slaves -- Added as_sync function to bus masters and AXI stream masters diff --git a/docs/release_notes/3.6.0.rst b/docs/release_notes/3.6.0.rst deleted file mode 100644 index 53f919f66..000000000 --- a/docs/release_notes/3.6.0.rst +++ /dev/null @@ -1,2 +0,0 @@ -- Ignore files added twice with identical contents. Closes #341 -- Made queues type safe diff --git a/docs/release_notes/3.6.1.rst b/docs/release_notes/3.6.1.rst deleted file mode 100644 index 9e1fbc992..000000000 --- a/docs/release_notes/3.6.1.rst +++ /dev/null @@ -1 +0,0 @@ -- Increase message id on publish diff --git a/docs/release_notes/3.6.2.rst b/docs/release_notes/3.6.2.rst deleted file mode 100644 index d75a37659..000000000 --- a/docs/release_notes/3.6.2.rst +++ /dev/null @@ -1 +0,0 @@ -- Fixed memory leak when popping messages from queues. diff --git a/docs/release_notes/3.7.0.rst b/docs/release_notes/3.7.0.rst deleted file mode 100644 index f593098ea..000000000 --- a/docs/release_notes/3.7.0.rst +++ /dev/null @@ -1,8 +0,0 @@ -- Fixed lint issues from new pylint version. -- Log output of failed vsim startup to stderr. :vunit_issue:`354` -- Allow case-insensitive lookup of entities. :vunit_issue:`#346` -- Added vhdl_standard attribute at class initialization. :vunit_issue:`#350` -- Adding csv mapping support for files and libraries. :vunit_issue:`349` -- Fix broken vivado example wrt verilog headers. :vunit_issue:`344` -- Allow adding duplicate libraries. :vunit_issue:`341` -- Make adding duplicate file INFO instead of WARNING. :vunit_issue:`341` diff --git a/docs/release_notes/3.8.0.rst b/docs/release_notes/3.8.0.rst deleted file mode 100644 index 378a381c4..000000000 --- a/docs/release_notes/3.8.0.rst +++ /dev/null @@ -1,9 +0,0 @@ -- Verification components - - Avalon - - Add Avalon memory mapped slave and master. :vunit_issue:`359` - - Add Avalon stream source and sink. :vunit_issue:`361` - - AXI - - Add AXI stream monitor - - Wishbone - - Strict command order in wishbone master. :vunit_issue:`372` -- Remove warnings when using built-in RivieraPRO libraries. :vunit_issue:`374` diff --git a/docs/release_notes/3.9.0.rst b/docs/release_notes/3.9.0.rst deleted file mode 100644 index 2bd689f48..000000000 --- a/docs/release_notes/3.9.0.rst +++ /dev/null @@ -1,11 +0,0 @@ -- Verification components - - Avalon - - Add Avalon streaming packet signals :vunit_issue:`383` - - AXI - - Various AXI BFM improvements. -- Added special JUnit XML format for Bamboo CI server. :vunit_issue:`384` -- Add support for requirements trace-ability via user defined test attributes. -- Add ``--json--export`` flag to export list of all files and tests with associated attributes. -- Add test case filtering for user defined attributes. - - For example allows marking tests that should be run per commit or only every night. -- Always use the most up to date version of modelsim.ini. diff --git a/docs/release_notes/4.0.0.rst b/docs/release_notes/4.0.0.rst deleted file mode 100644 index 54012b60f..000000000 --- a/docs/release_notes/4.0.0.rst +++ /dev/null @@ -1,18 +0,0 @@ -- New coverage support: - - The ``--coverage`` flag has been removed in favor of exposing a - more flexible :ref:`coverage interface `. The flag was - was not flexible enough for many users and we decided to make a - breaking change to get a better solution moving forward. An - example of using the new interface can be found here - :vunit_example:`here `. For users who liked the old - flag VUnit supports adding :ref:`custom ` command line - arguments. - -- Add ability to set watchdog timer dynamically. :vunit_issue:`400` - -- Skipping protected regions in the Verilog preprocessor. - -- Integrate utility to add Vivado IP to a VUnit project see :vunit_example:`example `. - -- Make tb_path work in combination with preprocessing. :vunit_issue:`402` diff --git a/docs/release_notes/4.0.1.rst b/docs/release_notes/4.0.1.rst deleted file mode 100644 index 39692d9f8..000000000 --- a/docs/release_notes/4.0.1.rst +++ /dev/null @@ -1,2 +0,0 @@ -- Set value to null when pushing pointer types in queue_t and com to avoid accidental dupliction of ownership. -- Fix broken ram_master.vhd where the response messages where deleted to early. diff --git a/docs/release_notes/4.0.2.rst b/docs/release_notes/4.0.2.rst deleted file mode 100644 index 568f395da..000000000 --- a/docs/release_notes/4.0.2.rst +++ /dev/null @@ -1,2 +0,0 @@ -- Fix missing msg_type in push and pop of msg_t. -- Ensure axi_lite_master always aligns with aclk to avoid VHDL/Verilog simulation mismatch. diff --git a/docs/release_notes/4.0.3.rst b/docs/release_notes/4.0.3.rst deleted file mode 100644 index 4ac7431bb..000000000 --- a/docs/release_notes/4.0.3.rst +++ /dev/null @@ -1 +0,0 @@ -- Fix ``set_timeout`` for large values in ModelSim. :vunit_issue:`405` diff --git a/docs/release_notes/4.0.4.rst b/docs/release_notes/4.0.4.rst deleted file mode 100644 index 1610d90f5..000000000 --- a/docs/release_notes/4.0.4.rst +++ /dev/null @@ -1 +0,0 @@ -- Fix broken ActiveHDL support. diff --git a/docs/release_notes/4.0.5.rst b/docs/release_notes/4.0.5.rst deleted file mode 100644 index 0e6b048aa..000000000 --- a/docs/release_notes/4.0.5.rst +++ /dev/null @@ -1,2 +0,0 @@ -- Make tb_path absolute again. :vunit_issue:`406` -- Fix ``--export-json`` test location offets for DOS line endings. :vunit_issue:`437` diff --git a/docs/release_notes/4.0.6.rst b/docs/release_notes/4.0.6.rst deleted file mode 100644 index 3484e3db1..000000000 --- a/docs/release_notes/4.0.6.rst +++ /dev/null @@ -1 +0,0 @@ -- Fix a problem where sometimes multiple Ctrl-C where required to abort execution. :vunit_issue:`408` diff --git a/docs/release_notes/4.0.7.rst b/docs/release_notes/4.0.7.rst deleted file mode 100644 index 935bd3922..000000000 --- a/docs/release_notes/4.0.7.rst +++ /dev/null @@ -1 +0,0 @@ -- Fix a problem parsing generics with string containing semi colon. :vunit_issue:`409` diff --git a/docs/release_notes/4.0.8.rst b/docs/release_notes/4.0.8.rst deleted file mode 100644 index 110bbc3a2..000000000 --- a/docs/release_notes/4.0.8.rst +++ /dev/null @@ -1,5 +0,0 @@ -- Fix vivado submodule missing from release. :vunit_issue:`415` -- Add support for checking AXI response in axi_lite_master -- Fix bug with coverage flag not working with unique-sim in rivierapro -- Support for Avalon-MM burst transfers -- Unsure LICENSE_QUEUE environment variable is in effect for RivieraPRO diff --git a/docs/release_notes/4.1.0.rst b/docs/release_notes/4.1.0.rst deleted file mode 100644 index 447b8b70b..000000000 --- a/docs/release_notes/4.1.0.rst +++ /dev/null @@ -1,7 +0,0 @@ -- Enhancements to Stream VCI and AXI Stream VCs. (:vunit_issue:`420`, :vunit_issue:`422`, :vunit_issue:`429`, :vunit_issue:`483`) -- Add option 'overwrite' to set_sim_option. (:vunit_issue:`471`) -- ActiveHDL: add code coverage support. (:vunit_issue:`461`) -- GtkWave: add sim option 'ghdl.init_file.gui'. (:vunit_issue:`459`) -- GHDL: add boolean option ghdl.elab_e, to execute 'ghdl -e' only. (:vunit_issue:`467`) -- GHDL: with VHDL 2008 nonzero return values produce a fail. (:vunit_issue:`469`) -- Add experimental VHDL 2019 support. (:vunit_issue:`549`) diff --git a/docs/release_notes/4.2.0.rst b/docs/release_notes/4.2.0.rst deleted file mode 100644 index 40df866e5..000000000 --- a/docs/release_notes/4.2.0.rst +++ /dev/null @@ -1,5 +0,0 @@ -- Add ``-m/--minimal`` flag to only compile what is necessary for selected tests. -- Fix axi_stream VC for 0-length tid/tdest/tuser. -- Fix work reference for non-lower case library names. :vunit_issue:`556` -- Add ``init_files.before_run`` hook to RivieraPRO and ModelSim. -- Do not add extra quotes when invoking a gtkwave subprocess. :vunit_issue:`563` diff --git a/docs/release_notes/4.3.0.rst b/docs/release_notes/4.3.0.rst deleted file mode 100644 index a6bb63f62..000000000 --- a/docs/release_notes/4.3.0.rst +++ /dev/null @@ -1,9 +0,0 @@ -- Fix broken ``vhdl_standard`` setting in some situations. :vunit_issue:`594` -- Add 'external modes' (VHPIDIRECT) to ``string_ptr`` and ``integer_vector_ptr``; add ``byte_vector_prt`` too. :vunit_issue:`507` :vunit_issue:`476` -- Add report data to ``Results`` object/class. :vunit_issue:`586` -- Use a Python formatter: `psf/black `_. :vunit_issue:`554` -- Refactor ``vunit/ui``, ``vunit/sim_if``, ``vunit/test`` and ``tests``. :vunit_issue:`572` :vunit_issue:`582` -- Deprecate ``array_pkg``. It will be removed in future releases. Use :ref:`integer_array_pkg` instead. :vunit_issue:`593` -- Python 3.4 reached End-of-life in 2019-03-18 and it is no longer tested. Support is expected to break in future releases. -- Add support for Python 3.8. -- Deprecate Python 2.7. This is the last release supporting Python 2 and Python 3. Upcoming releases will be for Python 3 only. diff --git a/docs/release_notes/4.4.0.rst b/docs/release_notes/4.4.0.rst deleted file mode 100644 index 078eea7ec..000000000 --- a/docs/release_notes/4.4.0.rst +++ /dev/null @@ -1,20 +0,0 @@ -- Update year and update license test to 2020. -- Bump OSVVM to latest version. -- Add possibility to configure random stalls for AXI Stream. :vunit_issue:`557` -- JSON-for-VHDL: use base16 encodings. :vunit_issue:`595` -- First release requiring Python 3.6 or higher. Python 2.7, 3.4 and 3.5 are not supported anymore. :vunit_issue:`596` :vunit_issue:`601` -- Start adding type annotations to the Python sources; add mypy (a static type checker) to the list of linters. :vunit_issue:`601` :vunit_issue:`626` -- Move co-simulation (VHPIDIRECT) sources (implementation and example) to `VUnit/cosim `_. :vunit_issue:`606` -- ghdl interface: with ``ghdl_e``, save runtime args to JSON file. :vunit_issue:`606` -- Add missing mode assertions to ``-93`` sources of ``integer_vector_ptr`` and ``string_ptr``. :vunit_issue:`607` -- Add method ``get_simulator_name()`` to public Python API. :vunit_issue:`610` -- Start replacing ``join``, ``dirname``, etc. with ``pathlib``. :vunit_issue:`612` :vunit_issue:`626` :vunit_issue:`632` -- Fix parsing adjacent hyphens in a literal. :vunit_issue:`616` -- Fix ``ghdl.flags`` error in documentation. :vunit_issue:`620` -- Rename compile option ``ghdl.flags`` to ``ghdl.a_flags``. :vunit_issue:`624` -- Move ``project.Library`` to separate file. -- Remove Travis CI and AppVeyor, use GitHub Actions only. -- Remove Sphinx extension ABlog; handle posts as regular pages in subdir ``blog``. -- Update GHDL to v0.37 in Windows CI jobs. -- Fix regression in GHDL (``prefix of array attribute must be an object name``). :vunit_issue:`631` :vunit_issue:`635` -- Add code coverage support for GHDL. :vunit_issue:`627` diff --git a/docs/release_notes/4.5.0.rst b/docs/release_notes/4.5.0.rst deleted file mode 100644 index 84806ca52..000000000 --- a/docs/release_notes/4.5.0.rst +++ /dev/null @@ -1,27 +0,0 @@ -- Update year and update license test to 2021. -- Bump OSVVM. :vunit_issue:`712` -- Support Python 3.9. -- Call `supports_coverage()` rather than returning method object. :vunit_issue:`638` -- Do not use `relpath` when printing output file. :vunit_issue:`661` -- Make `runner.create_output_path` a member of `TestRunner` class and reanme to `_get_output_path`. :vunit_issue:`682` -- Update `check_stable` to handle longer time frames. :vunit_issue:`636` -- Add `check_equal` for `character`. :vunit_issue:`721` :vunit_issue:`722` -- Update `.gitignore`. :vunit_issue:`641` -- Resolve ambiguity between VUnit's `line_vector` type and the new standard `line_vector` type in VHDL-2019. :vunit_issue:`664` -- [Tests] Use `str` for params to `self.check`, reduce 'many_keys' to avoid failure with latest GHDL. -- [Docs] Travis is not used for releases, use `autodoc_default_options` instead of (deprecated) `autodoc_default_flags`, fix duplicated content and index of vunit_cli, add intersphinx mapping to docs.python.org, update 'Credits' and 'License', use buildthedocs/sphinx.theme, replace `LICENSE.txt` with `LICENSE.rst`, replace `README.rst` with `README.md`, move 'Requirements' from 'About' to 'Installing', add captioned toctrees, use admonitions, move CI out from CLI and update content, add blog post on continuous integration, clarify that GHDL is a rolling project. :vunit_issue:`694` -- [Tools] raise exception if git not available when creating release notes. -- [Example/vhdl/array_axis_vcs] Update, expand procedure `run_test`, add stall functionality. :vunit_issue:`648` -- [UI] Fix not serializable path when exporting JSON. :vunit_issue:`657` -- [Tox] add pyproject.toml, use isolated_build, merge tox.ini into pyproject.yml. -- [Setup] Ensure that the source tree is on the sys path. -- [RivieraPro] Fix coverage merge error. :vunit_issue:`675` -- [RivieraPro] handle empty macro. :vunit_issue:`681` -- [RivieraPro] Update VHDL version option in command line interface to work with version 2020.04 and above. :vunit_issue:`664` -- [VCs] Add null AXI stream master and slave constants. -- [VCs] Fix bug in AXI stream protocol checker rule 4. -- [VCs] Add ability to define the actor on new_axi_slave function. :vunit_issue:`709` -- [VCs] Push avalon master read req msg one cycle earlier. :vunit_issue:`695` :vunit_issue:`696` -- [VCs] Fix broken msg passing in wishbone master. :vunit_issue:`692` :vunit_issue:`693` -- [CI] Update container registry, use ghcr.io. -- [CI] Pin Sphinx and docutils version to work around theme issues. diff --git a/docs/release_notes/4.6.0.rst b/docs/release_notes/4.6.0.rst deleted file mode 100644 index 70746ee98..000000000 --- a/docs/release_notes/4.6.0.rst +++ /dev/null @@ -1,21 +0,0 @@ -- Add Python 3.9 and 3.10 to classifiers. -- Use MAJOR and MINOR constants to check supported Python version. :vunit_issue:`724` -- Fix pylint issues. -- Use f-strings for string formatting. :vunit_issue:`743` :vunit_issue:`747` -- Specify encoding when using 'open'. :vunit_issue:`748` -- Set black line-length to 120 characters. :vunit_issue:`736` -- Use Path from pathlib, instead of `open()`. -- Add support for log location based on VHDL-2019 call paths. :vunit_issue:`729` -- GHDL supports VHDL package generics. :vunit_issue:`753` -- Bump OSVVM to 2021.09. -- [Tox] Use pytest for collecting coverage, add py310. -- [Tests] mark array_axis_vcs and verilog_ams examples as xfail. :vunit_issue:`751` -- [Logging/log_deprecated_pkg] fix compilation issues with Cadence tools. :vunit_issue:`731` -- [Parsing/tokenizer] partial revert of 5141f7c :vunit_issue:`735` :vunit_issue:`745` -- [UI] make glob search recursive by default. -- [VCs] bugfix AXI stream slave nonblocking check. :vunit_issue:`720` -- [Examples] add shebang to run scripts. :vunit_issue:`738` -- [Example/vhdl/user_guide] add VHDL 1993 variant, clean use statements, skip in acceptance tests if VHDL context not supported. :vunit_issue:`737` -- [Examples/vhdl/array_axis_vcs] Fix PSL check for valid fifo in data during write. :vunit_issue:`750` :vunit_issue:`766` -- [Docs] bump sphinx_btd_theme to v1, revert temporary pinning of Sphinx and docutils, remove redundant delete message call from com user guide example, fix ref to Travis CI (deprecated) (GitHub Actions is used now), add section about envvars, document VUNIT_VHDL_STANDARD, use 'exec' directive to generate content in examples, update 'Credits and License', add refs to Tratex. :vunit_issue:`730` :vunit_issue:`739` :vunit_issue:`761` -- [CI] add emojis/icons, avoid deployments from forks, fix deploy condition event, add job using setup-ghdl-ci, update images from Debian Buster to Debian Bullseye, do not overload image tags. diff --git a/pyproject.toml b/pyproject.toml index 3f73db1d9..1155cb92f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,6 +8,44 @@ build-backend = "setuptools.build_meta" [tool.black] line-length = 120 +[tool.towncrier] +package = "vunit" +package_dir = "vunit" +filename = "docs/release_notes.rst" +template = "docs/news.d/template.rst.j2" +issue_format = ":vunit_issue:`{issue}`" +directory = "docs/news.d/" +title_format = ":vunit_commit:`{version} ` - {project_date}" +underlines = ["-", "~"] + + [[tool.towncrier.section]] + path = "" + + [[tool.towncrier.type]] + directory = "breaking" + name = "Breaking Changes" + showcontent = true + + [[tool.towncrier.type]] + directory = "bugfix" + name = "Bug Fixes" + showcontent = true + + [[tool.towncrier.type]] + directory = "change" + name = "Changes" + showcontent = true + + [[tool.towncrier.type]] + directory = "deprecation" + name = "Deprecations" + showcontent = true + + [[tool.towncrier.type]] + directory = "misc" + name = "Miscellaneous" + showcontent = true + [tool.tox] legacy_tox_ini = """ [tox] @@ -31,6 +69,7 @@ deps= docs: docutils docs: sphinx docs: sphinx-argparse + docs: towncrier setenv= acceptance-activehdl: VUNIT_SIMULATOR=activehdl diff --git a/tools/build_docs.py b/tools/build_docs.py index 58072015e..a0257745e 100644 --- a/tools/build_docs.py +++ b/tools/build_docs.py @@ -10,15 +10,16 @@ Command line utility to build documentation/website """ -from subprocess import check_call -from pathlib import Path +import shlex import sys -from sys import argv + +from pathlib import Path +from subprocess import check_call from shutil import copyfile -from create_release_notes import create_release_notes -DROOT = Path(__file__).parent.parent / 'docs' +REPO_ROOT = Path(__file__).parent.parent +DROOT = REPO_ROOT / 'docs' def get_theme(path: Path, url: str): @@ -36,26 +37,60 @@ def get_theme(path: Path, url: str): check_call(tar_cmd) -def main(): +def update_release_notes(version): + """Gather newsfragments and add them to the release notes. + + Args: + version (str): + Version to set the section to for all newsfragments. """ - Build documentation/website + print(f"Adding newsfragment enteries to release notes for release {version}") + if version: + check_call(shlex.split(f"towncrier build --version {version} --yes")) + else: + # Produce draft version and write to file + draft_file = DROOT / "_release_notes_draft.rst" + with open(draft_file, "w", encoding="utf-8") as fptr: + check_call( + shlex.split("towncrier build --version UNRELEASED --draft"), stdout=fptr + ) + + +def main(version=None): + """Build documentation/website. + + Args: + version (str): + Version to set the section to for all newsfragments. Newsfragments will be + added to the release notes and the now old newsfragments will be staged for + removal. + + .. important:: + Only set the version during a release, otherwise files will be + forcefully removed and staged for commit. For testing changes, set this + to ``None`` so that the documentation shows unreleased changes but does + not trigger removal of newsfragments in the source tree. """ - create_release_notes() + update_release_notes(version) copyfile(str(DROOT / '..' / 'LICENSE.rst'), str(DROOT / 'license.rst')) get_theme( DROOT, "https://codeload.github.com/buildthedocs/sphinx.theme/tar.gz/v1" ) + # Version is set for a release, so in that case this is not being called by tox so + # we do not pass args. When not building for release, set release_notes_draft to + # include the draft in the docs. check_call( [ sys.executable, "-m", "sphinx" - ] + ([] if len(argv) < 2 else argv[2:]) + [ + ] + ([] if len(sys.argv) < 2 or version else sys.argv[2:]) + + (["-t", "release_notes_draft"] if version is None else []) + [ "-TEWanb", "html", - Path(__file__).parent.parent / "docs", - argv[1], + str(Path(__file__).parent.parent / "docs"), + str(REPO_ROOT / "release" / "docs") if version else sys.argv[1], ] ) diff --git a/tools/create_release_notes.py b/tools/create_release_notes.py deleted file mode 100644 index ae44d1c97..000000000 --- a/tools/create_release_notes.py +++ /dev/null @@ -1,116 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this file, -# You can obtain one at http://mozilla.org/MPL/2.0/. -# -# Copyright (c) 2014-2022, Lars Asplund lars.anders.asplund@gmail.com - -""" -Create monolithic release notes file from several input files -""" - -from pathlib import Path -from os.path import relpath -from glob import glob -from subprocess import check_output, CalledProcessError -from shutil import which -import datetime - - -def get_releases(source_path: Path): - """ - Get all releases defined by release note files - """ - release_notes = source_path / "release_notes" - releases = [] - for idx, file_name in enumerate(sorted(glob(str(release_notes / "*.rst")), reverse=True)): - releases.append(Release(file_name, is_latest=idx == 0)) - return releases - - -def create_release_notes(): - """ - Create monolithic release notes file from several input files - """ - source_path = Path(__file__).parent.parent / "docs" - - releases = get_releases(source_path) - latest_release = releases[0] - - with (source_path / "release_notes.rst").open("w", encoding="utf-8") as fptr: - fptr.write( - f""" -.. _release_notes: - -Release notes -============= - -.. NOTE:: For installation instructions read :ref:`this `. - -`Commits since last release `__ - -""" - ) - - fptr.write("\n\n") - - for idx, release in enumerate(releases): - is_last = idx == len(releases) - 1 - - if release.is_latest: - fptr.write(".. _latest_release:\n\n") - - title = f":vunit_commit:`{release.name!s} <{release.tag!s}>` - {release.date.strftime('%Y-%m-%d')!s}" - if release.is_latest: - title += " (latest)" - fptr.write(title + "\n") - fptr.write("-" * len(title) + "\n\n") - - fptr.write(f"\n`Download from PyPI `__") - - if not is_last: - fptr.write( - f" | `Commits since previous release " - f"`__" - ) - - fptr.write("\n\n") - - fptr.write(f".. include:: {relpath(release.file_name, source_path)!s}\n") - - -class Release(object): - """ - A release object - """ - - def __init__(self, file_name, is_latest): - self.file_name = file_name - self.name = str(Path(file_name).with_suffix("").name) - self.tag = "v" + self.name - self.is_latest = is_latest - - try: - self.date = _get_date(self.tag) - - except CalledProcessError: - if self.is_latest: - # Release tag for latest release not yet created, assume HEAD will become release - print(f"Release tag {self.tag!s} not created yet, use HEAD for date") - self.date = _get_date("HEAD") - else: - raise - - with Path(file_name).open("r", encoding="utf-8") as fptr: - self.notes = fptr.read() - - -def _get_date(commit): - """ - Get date - """ - git = which("git") - if git is None: - raise BaseException("'git' is required!") - date_str = check_output([git, "log", "-1", "--format=%ci", commit]).decode().strip() - date_str = " ".join(date_str.split(" ")[0:2]) - return datetime.datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S") diff --git a/tools/release.py b/tools/release.py index acee74ca7..153df36a6 100755 --- a/tools/release.py +++ b/tools/release.py @@ -19,6 +19,8 @@ import subprocess from shutil import which +import build_docs + def main(): """ @@ -33,6 +35,7 @@ def main(): print(f"Attempting to create new release {version!s}") set_version(version) validate_new_release(version, pre_tag=True) + build_docs.main(version=version) make_release_commit(version) new_version = f"{major:d}.{minor:d}.{patch + 1:d}rc0" @@ -67,7 +70,7 @@ def make_release_commit(version): """ Add release notes and make the release commit """ - run(["git", "add", str(release_note_file_name(version))]) + run(["git", "add", str(release_note_file_name())]) run(["git", "add", str(ABOUT_PY)]) run(["git", "commit", "-m", f"Release {version!s}"]) run(["git", "tag", f"v{version!s}", "-a", "-m", f"release {version!s}"]) @@ -75,7 +78,7 @@ def make_release_commit(version): def make_next_pre_release_commit(version): """ - Add release notes and make the release commit + Add pre-release version and commit. """ run(["git", "add", str(ABOUT_PY)]) run(["git", "commit", "-m", f"Start of next release candidate {version!s}"]) @@ -86,16 +89,6 @@ def validate_new_release(version, pre_tag): Check that a new release is valid or exit """ - release_note = release_note_file_name(version) - if not release_note.exists(): - print(f"Not releasing version {version!s} since release note {release_note!s} does not exist") - sys.exit(1) - - with release_note.open("r") as fptr: - if not fptr.read(): - print(f"Not releasing version {version!s} since release note {release_note!s} is empty") - sys.exit(1) - if pre_tag and check_tag(version): print(f"Not creating new release {version!s} since tag v{version!s} already exist") sys.exit(1) @@ -136,8 +129,8 @@ def set_version(version): assert get_local_version() == version -def release_note_file_name(version) -> Path: - return REPO_ROOT / "docs" / "release_notes" / (version + ".rst") +def release_note_file_name() -> Path: + return REPO_ROOT / "docs" / "release_notes.rst" def get_local_version():