Skip to content

Latest commit

 

History

History
127 lines (93 loc) · 4.52 KB

File metadata and controls

127 lines (93 loc) · 4.52 KB

Changelog

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

  • Added functions like resolve_ref and ref_list for show-ref, tag, branch, checkout to work with .git/refs
  • Added ngit show-ref that list references stored in .git/refs
  • Added ngit tag that can create, delete and list tags, and is based on show-ref's backend
  • Added a stupid ngit rev-parse de-reference tags, branches, short-hashes etc
  • Added a ngit ls-files to parse and show .git/index
  • Added a ngit check-ignore to debug .gitignore and exclude file from git 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 status etc along with other helpers

Changed

  • Converted shortify_hash to 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)

Fixed

  • Reduced nesting and minor-redundancy in kvlm_serialize
  • The tagger name is read from git-config, instead of being hard-coded

Added

  • Added Sub-ArgParser for cat-file sub-command
  • Added Sub-ArgParser for hash-object sub-command
  • Added help section in ngit/README that sources from ngit <command> --help
  • Added support for GitBlobs
  • Added ngit hash-object that create a GitObject from a file
  • Added ngit cat-file that provides content stored in Repository's GitObjects
  • Added CONTRIBUTING guideline
  • Added a kvlm_parser and kvlm_serializer to parse and write git commits and tags
  • Added Sub-ArgParser for log sub-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

  • Changed some ruff defaults in pyproject.toml
  • The GitObject's sub-classes are moved to object.py

Fixed

  • The directory structure was fixed to reduce clutter and inter-project dependencies
  • Instead of using general Exception, more concrete exceptions are raised

Added

  • pre-commit hooks have beed added
  • A new microproject ngit is added
  • ArgParser is added for better CLI arguments support
  • Added Sub-ArgParser for init sub-command
  • Added ngit init that Initializes a new, empty repository
  • Added GitRepository and some helper functions to assisst ngit init
  • Added ngit/README stub

Fixed

  • Minor fixes in calc

Changed

  • The min, max and sum functions are changed to accomodate single argument

Fixed

  • Fixed unary - operator
  • Minor bug-fixes

Removed

  • The test cases that were failing were either edited, or removed completely

Added

  • 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_lexemes by default
  • Added reverse polish notation converter & solver
  • Added support for base 2, 8, and 16 using --base flag

Changed

  • The format of token_stream returned by analyzer.lexical_analyzer is changed
  • Some tests are changed to simplify logic
  • Setup the skeleton of MicroProjects in an extensible manner
  • Added Calculator module