Changelog and Update History
A changelog is a document that tracks the history of changes in a project, typically organized by version numbers. It serves as a transparent record for developers, users, and contributors, detailing what has been added, updated, fixed, removed, or addressed in terms of security. By offering a structured overview, changelogs play a vital role in maintaining trust, facilitating communication, and easing version management.
Changelogs provide a transparent narrative of a project’s evolution. They ensure users can make informed decisions about updating software and give contributors insights into the project’s direction. For development teams, changelogs are invaluable for version control and accountability. Well-maintained changelogs foster trust, improve user engagement, and ensure smoother project management for all stakeholders.
Key Components of a Changelog:
- Adds: This section highlights new features, tools, or functionalities introduced to the project. For example, a CLI tool may include a new command or configuration option. Clearly listing these additions allows users to discover improvements and expanded capabilities.
- Updates: Updates reflect modifications or enhancements to existing features, such as performance optimizations or UI/UX improvements. These entries help users understand what has evolved, ensuring they benefit from improved usability or efficiency.
- Fixes: Fixes document the resolution of bugs or issues. By specifying what was corrected, users gain confidence that problems they may have encountered have been addressed, reducing frustration.
- Deprecates: When something (function, approach or even feature) is replaced but still available, usually for retrocompatibility, this thing is marked as deprecated; the idea is to remove later without breaking existing use cases.
- Removes: Sometimes, features or functionalities are removed. Listing these changes prevents surprises, enabling users to adapt and refactor their workflows accordingly.
- Security: Security changes focus on vulnerabilities that have been mitigated or resolved. This section reassures users that the project maintains high standards for safety and data protection.
v2.0.4 - 2025-08-20
Adds
Updates
tests.PROJECTreplaced to a real project's codebase
v2.0.3 - 2025-08-11
Fixes
- Mypy report for
mosheh.handlers.pythonafter PR 13
v2.0.2 - 2025-08-06
Adds
- Features list to
README.md
Updates
- Refactor
_handle_nodefor improved performance and readability by usingast.unparsedirectly - PR 13 - @MananJain39 - Moved homepage logic to
mosheh.doc.shared - Test suite updates with Hypothesis
Fixes
- Small documentation issues, such as Discussion Templates titles
Removes
- Remove unused
_handle_generalfunction after refactoring - PR 13 - @MananJain39 - Remove unnecessary
typing.castcalls - PR 13 - @MananJain39
v2.0.1 - 2025-07-30
Adds
.github/DISCUSSION_TEMPLATEfiles for discussion templates: "Questions", "Showcases" and "Ideas to Features"
Updates
- Replaced manual binary search implementation with
bisect.bisect_leftwrapper inutils.bin- PR 7 - @ClanEver - Refactored dataclass implementations to use NamedTuple - PR 6 - @ClanEver
- Updated method calls from
.as_dictto._asdict()- PR 6 - @ClanEver
Fixes
README.mdgif of Mosheh use
v2.0.0 - 2025-07-24
Adds
- Social
.githubfiles such as templates and guidelines (ISSUE_TEMPLATE/,TODO.md, ...) py.typedfor defining Mosheh as a typed project- New command
mosheh update --json .for updating an existing codebase documentation
Updates
- CLI interface from simple commands to new logic with
init,createandmosheh.json README.mdand other documentation properly updatedmosheh.custom_typesdivided intomosheh.typeswithbasic,contracts,jsoncfgandenums- Enums inheritance change from
enum.Enumtoenum.StrEnum mosheh.types.basicdefinition usingtypekeywordhandler.pymoved to/handlers/python.pyfor future conveniencemosheh.handlers.python.handle_def_nodesrenamed tohandle_std_nodesmosheh.handlers.python._handle_generalfor dealing withast.ASTnot defined ontypes.contractscommands/*to deal with different commands instead ofmain.pyraw logic- General docstring for new and updated files/functions/classes
Fixes
- Rename variables with duplicated names
- File path with
.dirmanaged todir - "Notation" into "Annotation" writing over codebase
Removes
mosheh.handlerinternal funcs but the ones called bymosheh.handler.handle_std_nodes
v1.3.4 - 2025-01-07
Adds
- File docstrings for source code, documenting the file role
- File docstrings now observed and inserted into output documentation markdown
Updates
- Mosheh now requires Python 3.13
- Dependencies now supports versions in
lib>=x.x.xstyle, no morelib==x.x.xonly mosheh.docfunctions__write_to_fileto_write_to_fileand__update_navigationto_update_navigation
Fixes
'.'added to generated documentation files and dirs onmosheh.doccreation lines
v1.3.3 - 2024-12-27
Adds
- "Role" defined and added to markdown generated doc files
- Functions now has docstring description on markdown
Updates
- Codebase readed files now documented under
- Codebasesection on generatedmkdocs.yml
Security
f'{name}'tof'{name}'ontests.PROJECT.dummy.views.indextest example
v1.3.2 - 2024-12-17
Adds
_mark_methodscreated onmosheh.codebaseplusencapsulated_mark_methods_for_unittestfor testing- Examples for
mosheh.handlerfunctions on docstrings
Updates
- Sequence-like
mosheh.constantsconstants sorted in code to better performing
Fixes
- Implementing
richas direct dependency
v1.3.1 - 2024-12-16
Adds
- Publish official documentation website: https://lucasgoncsilva.github.io/mosheh/
Updates
- Remaking the Mosheh's documentation itself
- Setting documentation website metadata on
pyproject.toml mosheh.constantsconstantsBUILTIN_MODULES,BUILTIN_FUNCTIONS,BUILTIN_DUNDER_METHODSandACCEPTABLE_LOWER_CONSTANTSfromtyping.Iteratortotyping.Sequence
v1.3.0 - 2024-12-13
Adds
- Handler functions to deal with statements not defined before, such as
ast.For- all below:
| Added Nodes | |||||
|---|---|---|---|---|---|
ast.AsyncFor |
ast.AsyncWith |
ast.AugAssign |
ast.Await |
ast.Break |
ast.Continue |
ast.Del |
ast.Delete |
ast.ExceptHandler |
ast.Expr |
ast.For |
ast.FormattedValue |
ast.Global |
ast.If |
ast.Load |
ast.Match |
ast.NamedExpr |
ast.Nonlocal |
ast.ParamSpec |
ast.Pass |
ast.Raise |
ast.Return |
ast.Starred |
ast.Store |
ast.TryStar |
ast.Try |
ast.TypeAlias |
ast.TypeVarTuple |
ast.TypeVar |
ast.While |
ast.With |
ast.YieldFrom |
ast.Yield |
rtypeor return type annotation ontests.unittesttest functions- New theme to Mosheh's self documentation code blocks inspired by Dracula Theme
- Insert logs on all the Mosheh's codebase using
mosheh.set_logging_configand nativelogging: - CRITICAL: when something crashes the script
- ERROR: non-crashing errors on the script
- WARNING: notorious advising that are not errors
- INFO: normal log level
- DEBUG: detailed step-by-step execution
Updates
mosheh.handler._handle_nodenow can handle nodes off all types listed aboveast.FunctionDefinside ofast.ClassDefnow withFunctionType.Methodattribute on output doc
Removes
Statementclass frommosheh.custom_typesunused types, such asStatement.Call- all below:
| Removed Types | ||
|---|---|---|
BinOp = auto() |
Call = auto() |
Compare = auto() |
List = auto() |
Set = auto() |
Tuple = auto() |
Dict = auto() |
Slice = auto() |
Subscript = auto() |
v1.2.1 - 2024-12-10
Adds
- Unittest workflow for automated tests using
pytest:.github/workflows/unittest.yml - PyPI publishing workflow for new public versions using
uvandtwine:.github/workflows/publish_pypi.yml - MkDocs publishing workflow for updating documentation using
uvandmkdocs:.github/workflows/publish_mkdocs.yml - New badges for
README.md"Stack" section: Material for MkDocs, GitHub, GitHub Pages and GitHub Actions [build-system],[project.urls],[project.scripts]and some other small infos inserted onpyproject.toml
Updates
- Reordering Stack badges for
README.md
Fixes
moshehback as script entrypoint for Mosheh inpyproject.tomlconfig file
Removes
setup.pydeleted due total substitution bypyproject.toml
v1.2.0 - 2024-12-10
Adds
- Test file for
mosheh.utilsfunctions:tests.unittest.utils - Test file for
mosheh.constantsconstants:tests.unittest.constants - Test file for
mosheh.docfunctions:tests.unittest.doc - Test file for
mosheh.handlerfunctions:tests.unittest.handler - Mock test file
mock.py.txtfor servingtests.unittest.handleras template
Updates
pyproject.tomlsettingpytestto use-vvparameterlist[Any] | tuple[Any]tocollections.abc.Sequence[Any]onmosheh.utils.bin:universeargdict[Any, Any]todefaultdict[Any, Any]onmosheh.utils.nested_dictrtypedict[Any, Any]todefaultdict[Any, Any]onmosheh.utils.add_to_dict:structurearg and rtype- Changing all
moshe.docfunctions exceptcreate_docto be private (e.g._process_file) - Changing all
moshe.handlersfunctions excepthandle_std_nodesto be private (e.g._process_file) - Renaming
moshe.handlerstomoshe.handler - Changing
moshe.codebase.iterateto be private:moshe.codebase._iterate
Fixes
Proccessword refined toProcess
v1.1.1 - 2024-12-06
Adds
metadata.pycreated to separate metadata from the actualmain.pyfile
Updates
- Migration from
pip/requirements.txtdependency management touv/pyproject.toml/uv.lock/.python-version documentation/*.mdfiles formattedREADME.mdupdated with new local installation and running instructionsREADME.mdupdated with new dependency management system into dir's demonstration- Substituting
handlers.py'styping.Optionalto... | None(e.g.Optional[str]tostr | None)
Removes
ruff.tomldeleted due topyproject.tomlcreation
v1.1.0 - 2024-12-06
Adds
- Creation of
CHANGELOG.md setup.pyintoREADME.mddir's demonstrationdocumentationintoREADME.mddir's demonstration--edit-uriparameter defined as'blob/main/documentation/docs'
Updates
README.md's todo list targets--exitparameter renamed to--output--logo-pathargument's defaults toNone--readme-pathargument's defaults toNoneclickable_checkboxstatement ofmkdocs.ymldefaults tofalse- Some function docstrings reviewed
v1.0.0 - 2024-12-04
Adds
- First stable version release