All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added functions like
resolve_refandref_listforshow-ref,tag,branch,checkoutto work with.git/refs - Added
ngit show-refthat list references stored in.git/refs - Added
ngit tagthat can create, delete and list tags, and is based onshow-ref's backend - Added a stupid
ngit rev-parsede-reference tags, branches, short-hashes etc - Added a
ngit ls-filesto parse and show.git/index - Added a
ngit check-ignoreto debug .gitignore and exclude file fromgit add - Added a semi-complete .gitignore parser (incomplete support for Slash
/as directory separator) - Added missing doc-strings and cleaned some code
- Added
ngit commit,ngit rm,ngit add,ngit statusetc along with other helpers
- Converted
shortify_hashto a function, use a local lambda to use like previous implementation - Changed the release workflow (upload patches to TestPyPI but only uploads minor changes to PyPI)
- Reduced nesting and minor-redundancy in
kvlm_serialize - The tagger name is read from git-config, instead of being hard-coded
- Added Sub-ArgParser for
cat-filesub-command - Added Sub-ArgParser for
hash-objectsub-command - Added help section in ngit/README that sources from
ngit <command> --help - Added support for GitBlobs
- Added
ngit hash-objectthat create a GitObject from a file - Added
ngit cat-filethat provides content stored in Repository's GitObjects - Added
CONTRIBUTINGguideline - Added a
kvlm_parserandkvlm_serializerto parse and write git commits and tags - Added Sub-ArgParser for
logsub-command - Added
ngit log, more git-inspired, i.e., deviating from official WYAG - Added
ngit ls-tree, list the contents of a tree(-ish) object - Added
ngit checkout, switch branches or restore working tree files
- Changed some ruff defaults in pyproject.toml
- The GitObject's sub-classes are moved to
object.py
- The directory structure was fixed to reduce clutter and inter-project dependencies
- Instead of using general
Exception, more concrete exceptions are raised
- pre-commit hooks have beed added
- A new microproject
ngitis added - ArgParser is added for better CLI arguments support
- Added Sub-ArgParser for
initsub-command - Added
ngit initthat Initializes a new, empty repository - Added
GitRepositoryand some helper functions to assisstngit init - Added ngit/README stub
- Minor fixes in calc
- The min, max and sum functions are changed to accomodate single argument
- Fixed unary - operator
- Minor bug-fixes
- The test cases that were failing were either edited, or removed completely
- Ported tests from fish-shell to pytest
- Ported examples from math - perform mathematics calculations to check50 and pytest
- Added a simple lexical analyzer (without Error handling)
- Added GitHub workflow for automated testing using pytest
- Added GitHub workflow for deploymeny to PyPI and TestPyPI
- Added Shunting yard algorithm to solve Operator precedence
- Linked all math.* function in
known_lexemesby default - Added reverse polish notation converter & solver
- Added support for base 2, 8, and 16 using
--baseflag
- The format of
token_streamreturned byanalyzer.lexical_analyzeris changed - Some tests are changed to simplify logic
- Setup the skeleton of MicroProjects in an extensible manner
- Added Calculator module