From 825c06563a9f71aa9da43185bd761b5dedb0141e Mon Sep 17 00:00:00 2001 From: angie Date: Thu, 21 Sep 2023 10:38:58 -0300 Subject: [PATCH 01/11] cli option to print version --- pyproject.toml | 8 +++++++- src/ipl3checksum/__init__.py | 4 ++-- src/ipl3checksum/__main__.py | 14 +++++++++++++ src/ipl3checksum/frontends/__init__.py | 9 +++++++++ src/ipl3checksum/frontends/climain.py | 27 ++++++++++++++++++++++++++ src/ipl3checksum/py.typed | 0 6 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 src/ipl3checksum/__main__.py create mode 100644 src/ipl3checksum/frontends/__init__.py create mode 100644 src/ipl3checksum/frontends/climain.py create mode 100644 src/ipl3checksum/py.typed diff --git a/pyproject.toml b/pyproject.toml index f939bcd..d2ff1ac 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ [project] name = "ipl3checksum" -version = "1.0.0" +version = "1.0.1.dev0" description = "Library to calculate the IPL3 checksum for N64 ROMs" readme = "README.md" requires-python = ">=3.7" @@ -17,5 +17,11 @@ dynamic = ["dependencies"] requires = ["hatchling", "hatch-requirements-txt"] build-backend = "hatchling.build" +[project.scripts] +ipl3checksum = "ipl3checksum.frontends.climain:ipl3checksumMain" + [tool.cibuildwheel] skip = ["cp36-*"] + +[tool.setuptools.package-data] +spimdisasm = ["py.typed"] diff --git a/src/ipl3checksum/__init__.py b/src/ipl3checksum/__init__.py index 8427ae4..9083c46 100644 --- a/src/ipl3checksum/__init__.py +++ b/src/ipl3checksum/__init__.py @@ -5,8 +5,8 @@ from __future__ import annotations -__version_info__: tuple[int, int, int] = (1, 0, 0) -__version__ = ".".join(map(str, __version_info__)) +__version_info__: tuple[int, int, int] = (1, 0, 1) +__version__ = ".".join(map(str, __version_info__)) + ".dev0" __author__ = "Decompollaborate" from . import utils as utils diff --git a/src/ipl3checksum/__main__.py b/src/ipl3checksum/__main__.py new file mode 100644 index 0000000..a625150 --- /dev/null +++ b/src/ipl3checksum/__main__.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python3 + +# SPDX-FileCopyrightText: © 2023 Decompollaborate +# SPDX-License-Identifier: MIT + +from __future__ import annotations + +import argparse + +from .frontends import climain + + +if __name__ == "__main__": + climain.ipl3checksumMain() diff --git a/src/ipl3checksum/frontends/__init__.py b/src/ipl3checksum/frontends/__init__.py new file mode 100644 index 0000000..4104677 --- /dev/null +++ b/src/ipl3checksum/frontends/__init__.py @@ -0,0 +1,9 @@ +#!/usr/bin/env python3 + +# SPDX-FileCopyrightText: © 2023 Decompollaborate +# SPDX-License-Identifier: MIT + +from __future__ import annotations + + +from . import climain as climain diff --git a/src/ipl3checksum/frontends/climain.py b/src/ipl3checksum/frontends/climain.py new file mode 100644 index 0000000..c656b4c --- /dev/null +++ b/src/ipl3checksum/frontends/climain.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python3 + +# SPDX-FileCopyrightText: © 2023 Decompollaborate +# SPDX-License-Identifier: MIT + +from __future__ import annotations + +import argparse + +from .. import __version__ + + +def ipl3checksumMain(): + parser = argparse.ArgumentParser(description="Interface to call any of the ipl3checksum's CLI utilities", prog="ipl3checksum") + + parser.add_argument("-V", "--version", action="version", version=f"%(prog)s {__version__}") + + # subparsers = parser.add_subparsers(description="action", help="The CLI utility to run", required=True) + + # ipl3checksum.frontends.utility.addSubparser(subparsers) + + args = parser.parse_args() + # args.func(args) + + +if __name__ == "__main__": + ipl3checksumMain() diff --git a/src/ipl3checksum/py.typed b/src/ipl3checksum/py.typed new file mode 100644 index 0000000..e69de29 From dcbbdbff6dc2eb2ba915dc25f369daa7db837633 Mon Sep 17 00:00:00 2001 From: angie Date: Thu, 21 Sep 2023 11:17:11 -0300 Subject: [PATCH 02/11] Add changelog and markdownlint file --- .gitignore | 2 -- .markdownlint.jsonc | 14 ++++++++++++++ .vscode/extensions.json | 7 +++++++ CHANGELOG.md | 23 +++++++++++++++++++++++ README.md | 21 +++++++++++++-------- 5 files changed, 57 insertions(+), 10 deletions(-) create mode 100644 .markdownlint.jsonc create mode 100644 .vscode/extensions.json create mode 100644 CHANGELOG.md diff --git a/.gitignore b/.gitignore index da00728..631da74 100644 --- a/.gitignore +++ b/.gitignore @@ -162,8 +162,6 @@ cython_debug/ #.idea/ -# -.vscode/ asm/ *.z64 diff --git a/.markdownlint.jsonc b/.markdownlint.jsonc new file mode 100644 index 0000000..ef8db42 --- /dev/null +++ b/.markdownlint.jsonc @@ -0,0 +1,14 @@ +{ + // https://github.com/DavidAnson/markdownlint/blob/main/doc/md024.md + // MD024 - Multiple headings with the same content + "MD024": { + "siblings_only": true + }, + + // https://github.com/DavidAnson/markdownlint/blob/main/doc/md013.md + // MD013 - Line length + "MD013": { + "code_block_line_length": 120, + "headings": false + } +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..a20a77e --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=827846 + // for the documentation about the extensions.json format + "recommendations": [ + "davidanson.vscode-markdownlint" + ] +} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..f82637c --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,23 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +### Added + +- Allow invoking `ipl3checksum` as a CLI program + - Currently it only allows the `-V`/`--version` to print the version of the library +- A `CHANGELOG.md` + +## [1.0.0] - 2023-09-21 + +### Added + +- Initial relase + +[unreleased]: https://github.com/olivierlacan/keep-a-changelog/compare/1.0.0...HEAD +[1.0.0]: https://github.com/Decompollaborate/ipl3checksum/releases/tag/1.0.0 diff --git a/README.md b/README.md index 5a3b97e..602d5e0 100644 --- a/README.md +++ b/README.md @@ -38,21 +38,26 @@ print(cickind) # Either a `ipl3checksum.CICKind` or None if was not able to dete ## Where does this come from? -This algorithm comes directly from the IPL3, which each variant is part of the first 0x1000 bytes of the rom of every retail N64 ROM. +This algorithm comes directly from the IPL3, which each variant is part of the +first 0x1000 bytes of the rom of every retail N64 ROM. -There are various implementations floating around on the internet, but for this specific one was reverse-engineered by myself. -I made this because I couldn't find a library to calculate this checksum, so I decided to reverse-engineer it myself instead of -taking somebody else's work. It also was an interesting learning experience. +There are various implementations floating around on the internet, but for this +specific one was reverse-engineered by myself. I made this because I couldn't +find a library to calculate this checksum, so I decided to reverse-engineer it +myself instead of taking somebody else's work. It also was an interesting +learning experience. ## Note about licensing -Most of the repository is licensed under the [MIT license](LICENSE), but I also made a -[reference implementation](docs/reference_implementation.md) that is part of the public domain (licensed under CC0-1.0), feel free to -use it however you prefer (acknowledgment is always appreciated, but not required). +Most of the repository is licensed under the [MIT license](LICENSE), but I also +made a [reference implementation](docs/reference_implementation.md) that is part +of the public domain (licensed under CC0-1.0), feel free to use it however you +prefer (acknowledgment is always appreciated, but not required). ## I want to learn more! What is an IPL3? What is CIC? -I'm not really the guy that can answer all your hunger for knowledge, but here are a few links that may be helpful: +I'm not really the guy that can answer all your hunger for knowledge, but here +are a few links that may be helpful: * CIC-NUS: * Initial Program Load 3 (IPL3) From 0098b71e68a2c94be10523450cd18b3607fbe5f6 Mon Sep 17 00:00:00 2001 From: angie Date: Thu, 21 Sep 2023 11:30:39 -0300 Subject: [PATCH 03/11] versioning and changelog section in the readme --- README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/README.md b/README.md index 602d5e0..9370668 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,13 @@ First you need to install the library, one way of doing it is via `pip`. python3 -m pip install -U ipl3checksum ``` +If you use a `requirements.txt` file in your repository, then you can add +library with this line: + +```txt +ipl3checksum>=1.0.0,<2.0.0 +`````` + Now you can invoke the library from your script. ```py @@ -36,6 +43,17 @@ cickind = ipl3checksum.detectCIC(romBytes) print(cickind) # Either a `ipl3checksum.CICKind` or None if was not able to detect the CIC ``` +## Versioning and changelog + +This library follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +We try to always keep backwards compatibility, so no breaking changes should +happen until a major release (i.e. jumping from 1.X.X to 2.0.0). + +To see what changed on each release check either the [CHANGELOG.md](CHANGELOG.md) +file or check the [releases page on Github](https://github.com/Decompollaborate/ipl3checksum/releases). +You can also use [this link](https://github.com/Decompollaborate/ipl3checksum/releases/latest) +to check the latest release. + ## Where does this come from? This algorithm comes directly from the IPL3, which each variant is part of the From 24d8cba947bccfc9d6cda2c8eadfb98833e85f63 Mon Sep 17 00:00:00 2001 From: angie Date: Thu, 21 Sep 2023 11:59:05 -0300 Subject: [PATCH 04/11] README cleanup --- CHANGELOG.md | 10 +++++-- README.md | 83 +++++++++++++++++++++++++++++++++++++++------------- 2 files changed, 71 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f82637c..06f9de0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,9 +9,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- Allow invoking `ipl3checksum` as a CLI program - - Currently it only allows the `-V`/`--version` to print the version of the library +- Allow invoking `ipl3checksum` as a CLI program. + - Currently it only allows the `-V`/`--version` to print the version of the library. - A `CHANGELOG.md` +- Cleanup the `README.md` + - Reorder sections. + - Add more notes about installing and the develop version. + - Reference the changelog. + - List features. +- Add a `py.typed` file. ## [1.0.0] - 2023-09-21 diff --git a/README.md b/README.md index 9370668..127d633 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,44 @@ A Python library to calculate the IPL3 checksum for N64 ROMs. ## How to use it? +To calculate the checksum of a ROM: + +```py +romBytes = # A big endian bytes-like object +cickind = ipl3checksum.CICKind.CIC_6102_7101 + +checksum = ipl3checksum.calculateChecksum(romBytes, cickind) +assert checksum is not None # Not able to compute the checksum, probably because rom was too small + +print(f"{checksum[0]:08X}") +print(f"{checksum[1]:08X}") +``` + +This library also contains a CIC detector: + +```py +cickind = ipl3checksum.detectCIC(romBytes) +print(cickind) # Either a `ipl3checksum.CICKind` or None if was not able to detect the CIC +``` + +## Features + +- Supports all 6 retail CIC variants. +- Can calculate the checksum of a ROM using the algorithm of any of the +supported CIC variants. +- Can detect any of the supported CIC variants. + +### Restrictions/requirements + +- The library assumes the passed ROM contains a ROM header at offset range +`[0x0, 0x40]` and a correct IPL3 is at `[0x40, 0x1000]` +- Since the checksum algorithm is calculated on the first MiB after IPL3 (from +`0x1000` to `0x101000`), then the library expects the passed ROM to be at least +`0x101000` bytes long, otherwise the library will reject the ROM. + - If it is not the case, then pad your ROM with zeroes to that size. + +## Installing + First you need to install the library, one way of doing it is via `pip`. ```bash @@ -17,7 +55,7 @@ python3 -m pip install -U ipl3checksum ``` If you use a `requirements.txt` file in your repository, then you can add -library with this line: +this library with the following line: ```txt ipl3checksum>=1.0.0,<2.0.0 @@ -25,24 +63,29 @@ ipl3checksum>=1.0.0,<2.0.0 Now you can invoke the library from your script. -```py -romBytes = # A big endian bytes-like object -cickind = ipl3checksum.CICKind.CIC_6102_7101 +### Development version -checksum = ipl3checksum.calculateChecksum(romBytes, cickind) -assert checksum is not None # Not able to compute the checksum, probably because rom was too small +The unstable development version is located at the [develop](https://github.com/Decompollaborate/ipl3checksum/tree/develop) +branch. PRs should be made into that branch instead of the main one. -print(f"{checksum[0]:08X}") -print(f"{checksum[1]:08X}") +The recommended way to install a locally cloned repo is by passing the `-e` +(editable) flag to `pip`. + +```bash +python3 -m pip install -e . ``` -This library also contains a CIC detector: +In case you want to mess with the latest development version without wanting to +clone the repository, then you could use the following commands: -```py -cickind = ipl3checksum.detectCIC(romBytes) -print(cickind) # Either a `ipl3checksum.CICKind` or None if was not able to detect the CIC +```bash +python3 -m pip uninstall ipl3checksum +python3 -m pip install git+https://github.com/Decompollaborate/ipl3checksum.git@develop ``` +NOTE: Installing the development version is not recommended unless you know what +you are doing. Proceed at your own risk. + ## Versioning and changelog This library follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html). @@ -77,14 +120,14 @@ prefer (acknowledgment is always appreciated, but not required). I'm not really the guy that can answer all your hunger for knowledge, but here are a few links that may be helpful: -* CIC-NUS: -* Initial Program Load 3 (IPL3) -* List of retail games, containing which CIC they use: -* Research about the CIC 6105: -* Disassembly of all the retail IPL3 binaries: +- CIC-NUS: +- Initial Program Load 3 (IPL3) +- List of retail games, containing which CIC they use: +- Research about the CIC 6105: +- Disassembly of all the retail IPL3 binaries: ## References -* "IPL3 checksum algorithm" section of the "PIF-NUS" article on n64brew.dev: - * Used for getting the "8-bit IPL3" seed value. -* List of retail games, containing which CIC they use: +- "IPL3 checksum algorithm" section of the "PIF-NUS" article on n64brew.dev: + - Used for getting the "8-bit IPL3" seed value. +- List of retail games, containing which CIC they use: From efde3535c6a4358b3ac9eb609111ec648a95a13f Mon Sep 17 00:00:00 2001 From: angie Date: Thu, 21 Sep 2023 12:06:13 -0300 Subject: [PATCH 05/11] GHA to lint markdown files --- .github/workflows/md_lint.yml | 17 +++++++++++++ .github/workflows/mypy.yml | 3 ++- .github/workflows/tests.yml | 3 ++- .github/workflows/tests_other_repo.yml | 2 +- .github/workflows/upload_pypi.yml | 35 +++++++++++++------------- README.md | 5 ++++ 6 files changed, 45 insertions(+), 20 deletions(-) create mode 100644 .github/workflows/md_lint.yml diff --git a/.github/workflows/md_lint.yml b/.github/workflows/md_lint.yml new file mode 100644 index 0000000..9545a8c --- /dev/null +++ b/.github/workflows/md_lint.yml @@ -0,0 +1,17 @@ +name: Lint markdown files + +# Build on every branch push, tag push, and pull request change: +on: [push, pull_request] + +jobs: + checks: + runs-on: ubuntu-latest + name: mypy + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Lint markdown files + - uses: articulate/actions-markdownlint@v1.1.0 + with: + config: markdownlint-config.json diff --git a/.github/workflows/mypy.yml b/.github/workflows/mypy.yml index 275909a..029b278 100644 --- a/.github/workflows/mypy.yml +++ b/.github/workflows/mypy.yml @@ -8,7 +8,8 @@ jobs: runs-on: ubuntu-latest name: mypy steps: - - uses: actions/checkout@v4 + - name: Checkout repository + uses: actions/checkout@v4 - name: Set up Python 3.7 uses: actions/setup-python@v4 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c074693..36937c5 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -9,7 +9,8 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - name: Checkout repository + uses: actions/checkout@v4 - name: Install local ipl3checksum run: pip install . diff --git a/.github/workflows/tests_other_repo.yml b/.github/workflows/tests_other_repo.yml index 40a1733..9beaa70 100644 --- a/.github/workflows/tests_other_repo.yml +++ b/.github/workflows/tests_other_repo.yml @@ -5,7 +5,7 @@ on: [push, pull_request_target] jobs: build_repo: - name: Build repo + name: Test other repo runs-on: ubuntu-latest strategy: diff --git a/.github/workflows/upload_pypi.yml b/.github/workflows/upload_pypi.yml index 2cd43fc..1fe68db 100644 --- a/.github/workflows/upload_pypi.yml +++ b/.github/workflows/upload_pypi.yml @@ -9,29 +9,30 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - name: Checkout repository + uses: actions/checkout@v4 - - name: Install build module - run: pip install build + - name: Install build module + run: pip install build - - name: Build wheel and source - run: python -m build --sdist --wheel --outdir dist/ . + - name: Build wheel and source + run: python -m build --sdist --wheel --outdir dist/ . - - uses: actions/upload-artifact@v3 - with: - path: dist/* + - uses: actions/upload-artifact@v3 + with: + path: dist/* upload_pypi: needs: [build_wheel] runs-on: ubuntu-latest if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') steps: - - uses: actions/download-artifact@v3 - with: - name: artifact - path: dist - - - uses: pypa/gh-action-pypi-publish@v1.8.10 - with: - user: __token__ - password: ${{ secrets.pypi_password }} + - uses: actions/download-artifact@v3 + with: + name: artifact + path: dist + + - uses: pypa/gh-action-pypi-publish@v1.8.10 + with: + user: __token__ + password: ${{ secrets.pypi_password }} diff --git a/README.md b/README.md index 127d633..e0dc4bd 100644 --- a/README.md +++ b/README.md @@ -131,3 +131,8 @@ are a few links that may be helpful: - "IPL3 checksum algorithm" section of the "PIF-NUS" article on n64brew.dev: - Used for getting the "8-bit IPL3" seed value. - List of retail games, containing which CIC they use: + + + + + From 713043aec62332a7348288e9131a216caf32f3a2 Mon Sep 17 00:00:00 2001 From: angie Date: Thu, 21 Sep 2023 12:07:16 -0300 Subject: [PATCH 06/11] Fix linter GHA --- .github/workflows/md_lint.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/md_lint.yml b/.github/workflows/md_lint.yml index 9545a8c..cfb59f5 100644 --- a/.github/workflows/md_lint.yml +++ b/.github/workflows/md_lint.yml @@ -12,6 +12,6 @@ jobs: uses: actions/checkout@v4 - name: Lint markdown files - - uses: articulate/actions-markdownlint@v1.1.0 + uses: articulate/actions-markdownlint@v1.1.0 with: - config: markdownlint-config.json + config: .markdownlint.jsonc From 50f73382c9eaffe248aa13b0a9b3d3312d14d80e Mon Sep 17 00:00:00 2001 From: angie Date: Thu, 21 Sep 2023 12:09:43 -0300 Subject: [PATCH 07/11] Fix md files --- .github/workflows/md_lint.yml | 2 +- README.md | 5 ----- docs/reference_implementation.md | 9 ++++++--- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/.github/workflows/md_lint.yml b/.github/workflows/md_lint.yml index cfb59f5..489008e 100644 --- a/.github/workflows/md_lint.yml +++ b/.github/workflows/md_lint.yml @@ -6,7 +6,7 @@ on: [push, pull_request] jobs: checks: runs-on: ubuntu-latest - name: mypy + name: Lint md files steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/README.md b/README.md index e0dc4bd..127d633 100644 --- a/README.md +++ b/README.md @@ -131,8 +131,3 @@ are a few links that may be helpful: - "IPL3 checksum algorithm" section of the "PIF-NUS" article on n64brew.dev: - Used for getting the "8-bit IPL3" seed value. - List of retail games, containing which CIC they use: - - - - - diff --git a/docs/reference_implementation.md b/docs/reference_implementation.md index f53c0bb..492e184 100644 --- a/docs/reference_implementation.md +++ b/docs/reference_implementation.md @@ -4,9 +4,11 @@ This whole file is licensed under CC0-1.0. See [docs/LICENSE](./LICENSE). -This file contains a reference implementation of the IPL3 checksum algorithm, adapted to work with every known retail CIC/IPL3 variant. +This file contains a reference implementation of the IPL3 checksum algorithm, +adapted to work with every known retail CIC/IPL3 variant. -This implementation is a very crude direct translation from the original assembly and it could be greatly simplified in a reimplementation. +This implementation is a very crude direct translation from the original +assembly and it could be greatly simplified in a reimplementation. ```c /* SPDX-License-Identifier: CC0-1.0 */ @@ -158,7 +160,8 @@ void calculateChecksum(const uint8_t *rom, uint32_t cic, uint32_t *dst1, uint32_ switch (cic) { case 6105: case 7105: - /* ipl3 6105 copies 0x330 bytes from the ROM's offset 0x000554 (or offset 0x000514 into IPL3) to vram 0xA0000004 */ + /* ipl3 6105 copies 0x330 bytes from the ROM's offset 0x000554 (or offset 0x000514 into IPL3) */ + /* to vram 0xA0000004 */ /* lw $t7, 0x0($s6) */ t7 = readWord(rom, s6 - 0xA0000004 + 0x000554); From 71f5e73617001a081823b1dc3e0e219c5ac7d14b Mon Sep 17 00:00:00 2001 From: angie Date: Thu, 21 Sep 2023 12:16:03 -0300 Subject: [PATCH 08/11] More md fixing --- notes/README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/notes/README.md b/notes/README.md index a5d21cd..435fd49 100644 --- a/notes/README.md +++ b/notes/README.md @@ -1,5 +1,7 @@ # Notes -This folder contains the scripts I made while I was trying to understand the checksum algorithm of every IPL3 variant. +This folder contains the scripts I made while I was trying to understand the +checksum algorithm of every IPL3 variant. -All of the implementations here are direct and crude translations from the original asm. +All of the implementations here are direct and crude translations from the +original asm. From 7105252bc36255ccd0aa2b97af102f4ec37a9459 Mon Sep 17 00:00:00 2001 From: angie Date: Thu, 21 Sep 2023 12:29:13 -0300 Subject: [PATCH 09/11] Version bump --- CHANGELOG.md | 7 +++++-- pyproject.toml | 2 +- src/ipl3checksum/__init__.py | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 06f9de0..11a6aa3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.0.1] - 2023-09-21 + ### Added - Allow invoking `ipl3checksum` as a CLI program. @@ -19,11 +21,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - List features. - Add a `py.typed` file. -## [1.0.0] - 2023-09-21 +## [1.0.0] - 2023-09-20 ### Added - Initial relase -[unreleased]: https://github.com/olivierlacan/keep-a-changelog/compare/1.0.0...HEAD +[unreleased]: https://github.com/olivierlacan/keep-a-changelog/compare/1.1.0...HEAD +[1.0.1]: https://github.com/olivierlacan/keep-a-changelog/compare/1.0.0...1.1.1 [1.0.0]: https://github.com/Decompollaborate/ipl3checksum/releases/tag/1.0.0 diff --git a/pyproject.toml b/pyproject.toml index d2ff1ac..8529475 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ [project] name = "ipl3checksum" -version = "1.0.1.dev0" +version = "1.0.1" description = "Library to calculate the IPL3 checksum for N64 ROMs" readme = "README.md" requires-python = ">=3.7" diff --git a/src/ipl3checksum/__init__.py b/src/ipl3checksum/__init__.py index 9083c46..c8086d8 100644 --- a/src/ipl3checksum/__init__.py +++ b/src/ipl3checksum/__init__.py @@ -6,7 +6,7 @@ from __future__ import annotations __version_info__: tuple[int, int, int] = (1, 0, 1) -__version__ = ".".join(map(str, __version_info__)) + ".dev0" +__version__ = ".".join(map(str, __version_info__)) __author__ = "Decompollaborate" from . import utils as utils From f346d799994c2d7682a38711d27d5918838ae493 Mon Sep 17 00:00:00 2001 From: angie Date: Thu, 21 Sep 2023 12:30:50 -0300 Subject: [PATCH 10/11] fix copy-paste --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 8529475..85329df 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,4 +24,4 @@ ipl3checksum = "ipl3checksum.frontends.climain:ipl3checksumMain" skip = ["cp36-*"] [tool.setuptools.package-data] -spimdisasm = ["py.typed"] +ipl3checksum = ["py.typed"] From a11ab68d679892d54fd28cc507cd0eef10b0849f Mon Sep 17 00:00:00 2001 From: angie Date: Thu, 21 Sep 2023 12:33:18 -0300 Subject: [PATCH 11/11] reword --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 11a6aa3..1cce3fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Allow invoking `ipl3checksum` as a CLI program. - - Currently it only allows the `-V`/`--version` to print the version of the library. + - Currently it only allows the `-V`/`--version` argument, which prints the +version of the library. - A `CHANGELOG.md` - Cleanup the `README.md` - Reorder sections.