Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge Features into Main #12

Merged
merged 14 commits into from
Feb 8, 2024
Merged

Merge Features into Main #12

merged 14 commits into from
Feb 8, 2024

Conversation

ModernMAK
Copy link
Member

No description provided.

Makes reading faster by not doing it
The old method exposed a lot of extra properties on classes which didn't need to expose that; since their job was to read/write sections of the stream.

The new method uses composition instead of inheritance; but allows for inheritance chains to continue to work by using the BinaryProxy protocol.

This primarily allows the 'serializers' to continue to act as BinaryIO objects without exposing all the BinaryIO info
Updates to Relic CLI `run_with` and new `lazyio` module
* Buffer not defined because typing-extension not installed

* Fix name no longer supporting None

* Resolved TODOs

* Update .pylintrc to properly calculate score, also lower pylint standards

* Docstrings + Formatting

* More docstrings + raising proper Errors

* More docstrings and lowering pylint standards

* Apply Black
- `relic_cli` is now `CLI`
- `CLI` is not exposed directly by the `core` package
  - allows `from relic.core import CLI` which just looks nicer
- Updated Readme for Usage guidelines
  - The core library doesn't offer much utility outside of the Command Line, the readme reflects that
* Create entrytools.py

Finally do that thing where I refactor EntryPoint Registry into Relic-Tool-Core
MAK-Relic-Tool/Issue-Tracker#12

* Lazy load CLI plugins

CLI entrypoints cause a race condition which causes import errors

* Use importlib over pkg_resources

* Begin replacing Magic Word functionality of mak-tools

The only thing that I kinda want from the mak-serialization-tools is the magic word class helper; its nice to not have to import a function to validate

* Magic Word replacement for mak-tools

* Migrate to importlib.metadata

* Formatting

* Formatting and doc-strings

* Trying to update docs

* docs

* Create .pre-commit-config.yaml

* Run Pre-Commit

* Move to pyproject.toml

* Add Mypy to precommit

* Update .pre-commit-config.yaml

* Update mypy.yml

* Update .pre-commit-config.yaml

* EntryPoint fix for Py 3.9

* Fix requirements

Not proper utf-8 files

* Pylint / MyPy Fixes

* Mypy Cli fix

* Update pyproject.toml
* PluginGroup default command

- `CliPluginGroup` now has a default command which prints the usage to stderr

- Added `argv` to _run to allow proper name printing if an `UnboundCommandError` is raised on a `CliPluginGroup`
  - `CliPluginGroup` has a `command` name of None for some reason; reading from argv allows us to fix that manually

* Update Test Cases
chore(sem-ver): Add semantic-versioning CI

Relies on Angular-style commit messages to determine if an update is necessary.
The following doc can help: https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#commits

BREAKING CHANGE: previously, I was hoping to use labels in PRs to specify whether a Major, Minor, or Patch needed to update, and I still *could* do that, but this seems as good as any solution, as long as it works.
@ModernMAK ModernMAK merged commit b8a3b16 into main Feb 8, 2024
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant