Package: zettelkasten
zettelkastenFolder based zettelkasten with a bibtex reference system and emacs org-mode file zettelsVery first stepsInitialInitializegitinside your repo:gitinitIf you don't havePoetryinstalled run:makedownload-poetryInitialize poetry and installpre-commithooks:makeinstallUpload initial code to GitHub (ensure you've runmake installto usepre-commit):gitadd.
gitcommit-m":tada: Initial commit"gitbranch-Mmain
gitremoteaddoriginhttps://github.com/tZ3ma/zettelkasten.git
gitpush-uoriginmainInitial setting upSet upDependabotto ensure you have the latest dependencies.Set upStale botfor automatic issue closing.PoetryAll manipulations with dependencies are executed through Poetry. If you're new to it, look throughthe documentation.Notes about PoetryPoetry'scommandsare very intuitive and easy to learn, like:poetry add numpypoetry run pytestpoetry buildetcBuilding your packageBuilding a new version of the application contains steps:Bump the version of your packagepoetry version <version>. You can pass the new version explicitly, or a rule such asmajor,minor, orpatch. For more details, refer to theSemantic Versionsstandard.Make a commit toGitHub.Create aGitHub release.And... publish 🙂poetry publish --buildWhat's nextWell, that's up to you. I can only recommend the packages and articles that helped me.Packages:Typeris great for creating CLI applications.Richmakes it easy to add beautiful formatting in the terminal.FastAPIis a type-driven asynchronous web framework.IceCreamis a little library for sweet and creamy debuggingArticles:Open Source GuidesGitHub Actions DocumentationMaybe you would like to addgitmojito commit names. This is really funny. 😄🚀 FeaturesFor your development we've prepared:Supports forPython 3.7and higher.Poetryas the dependencies manager. See configuration inpyproject.tomlandsetup.cfg.Power ofblack,isortandpyupgradeformatters.Ready-to-usepre-commithooks with formatters above.Type checks with the configuredmypy.Testing withpytest.Docstring checks withdarglint.Security checks withsafetyandbandit.Well-made.editorconfig,.dockerignore, and.gitignore. You don't have to worry about those things.For building and deployment:GitHubintegration.Makefilefor building routines. Everything is already set up for security checks, codestyle checks, code formatting, testing, linting, docker builds, etc. More details atMakefile summary).Dockerfilefor your package.Github Actionswith predefinedbuild workflowas the default CI/CD.Always up-to-date dependencies with@dependabot(You will onlyenable it).Automatic drafts of new releases withRelease Drafter. It creates a list of changes based on labels in mergedPull Requests. You can see labels (akacategories) inrelease-drafter.yml. Works perfectly withSemantic Versionsspecification.For creating your open source community:Ready-to-usePull Requests templatesand severalIssue templates.Files such as:LICENSE,CONTRIBUTING.md,CODE_OF_CONDUCT.md, andSECURITY.mdare generated automatically.Stale botthat closes abandoned issues after a period of inactivity. (You will onlyneed to setup free plan). Configuration ishere.Semantic Versionsspecification withRelease Drafter.Installationpipinstall-Uzettelkastenor install withPoetrypoetryaddzettelkastenThen you can runzettelkasten--helpzettelkasten--nameRomanor if installed withPoetry:poetryrunzettelkasten--helppoetryrunzettelkasten--nameRomanMakefile usageMakefilecontains many functions for fast assembling and convenient work.1. Download Poetrymakedownload-poetry2. Install all dependencies and pre-commit hooksmakeinstallIf you do not want to install pre-commit hooks, run the command with the NO_PRE_COMMIT flag:makeinstallNO_PRE_COMMIT=13. Check the security of your codemakecheck-safetyThis command launches aPoetryandPipintegrity check as well as identifies security issues withSafetyandBandit. By default, the build will not crash if any of the items fail. But you can setSTRICT=1for the entire build, or you can configure strictness for each item separately.makecheck-safetySTRICT=1or only forsafety:makecheck-safetySAFETY_STRICT=1multiplemakecheck-safetyPIP_STRICT=1SAFETY_STRICT=1List of flags forcheck-safety(can be set to1or0):STRICT,POETRY_STRICT,PIP_STRICT,SAFETY_STRICT,BANDIT_STRICT.4. Check the codestyleThe command is similar tocheck-safetybut to check the code style, obviously. It usesBlack,Darglint,Isort, andMypyinside.makecheck-styleIt may also contain theSTRICTflag.makecheck-styleSTRICT=1List of flags forcheck-style(can be set to1or0):STRICT,BLACK_STRICT,DARGLINT_STRICT,ISORT_STRICT,MYPY_STRICT.5. Run all the codestyle formatersCodestyle usespre-commithooks, so ensure you've runmake installbefore.makecodestyle6. Run testsmaketest7. Run all the lintersmakelintthe same as:maketest&&makecheck-safety&&makecheck-styleList of flags forlint(can be set to1or0):STRICT,POETRY_STRICT,PIP_STRICT,SAFETY_STRICT,BANDIT_STRICT,BLACK_STRICT,DARGLINT_STRICT,ISORT_STRICT,MYPY_STRICT.8. Build dockermakedockerwhich is equivalent to:makedockerVERSION=latestMore informationhere.9. Cleanup dockermakeclean_dockeror to remove all buildmakecleanMore informationhere.📈 ReleasesYou can see the list of available releases on theGitHub Releasespage.We followSemantic Versionsspecification.We useRelease Drafter. As pull requests are merged, a draft release is kept up-to-date listing the changes, ready to publish when you’re ready. With the categories option, you can categorize pull requests in release notes using labels.For Pull Request this labels are configured, by default:LabelTitle in Releasesenhancement,feature🚀 Featuresbug,refactoring,bugfix,fix🔧 Fixes & Refactoringbuild,ci,testing📦 Build System & CI/CDbreaking💥 Breaking Changesdocumentation📝 Documentationdependencies⬆️ Dependencies updatesYou can update it inrelease-drafter.yml.GitHub creates thebug,enhancement, anddocumentationlabels for you. Dependabot creates thedependencieslabel. Create the remaining labels on the Issues tab of your GitHub repository, when you need them.🛡 LicenseThis project is licensed under the terms of theMITlicense. SeeLICENSEfor more details.📃 Citation@misc{zettelkasten,
  author = {tZ3ma},
  title = {Folder based zettelkasten with a bibtex reference system and emacs org-mode file zettels},
  year = {2021},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/tZ3ma/zettelkasten}}
}CreditsThis project was generated withpython-package-template.