Comments (3)
An up to date version should be available via https://github.com/novoid/Memacs/blob/master/setup.py
from memacs.
Hi @novoid, great project!
I still have to install it, but I'm planning to do it ASAP.
My thoughts from what I've learned in ~5 years of python:
-
requirements.txt are good for developers, especially if version are pinned, to reproduce the exact dev environment (or for docker based CI to exploit caching). For a good user experience
pip install memacs
(if you plan to publish it on pipy) or cloning the repo and doingpip install .
is the "right" way, IMO. That means dependencies have to be declared insetup.py
orsetup.cfg
(orpyproject.toml
if using poetry - it looks very promising) -
I've seen that in your latest
setup.py
theentry_point
is commented. This is the way to go, and as stated here,[each entry point] can optionally specify “extras” that it depends on, that will be added to sys.path when the script is run.
Then later on the dynamic discovery section
It can also include a bracketed list of “extras” that are required for the entry point to be used.
This goes hand in hand with #74: you specify the "extras" in
extras_require
and use them in theentry_points
declaration. -
I'm in favor of Semantic versioning, a widely accepted system for versioning a project. It's the default of npm packages, and many python packages also use this. In a nutshell:
- the syntax is
major.minor.bugfix
bugfix
is incremented when, well, a bug is fixedminor
is incremented for edits or new feature that don't break the API (backward compatible)major
is incremented for edits that changes the API, so backward compatibility is not granted.
I like to use it in conjunction with commitizen and conventional commits, so that version are bumped by parsing the commits messages, and you can also automate it with Actions.
- the syntax is
from memacs.
Thanks @sanzoghenzo for your comments!
Unfortunately, my personal pressure is not as high as it should be to distribute memacs via pip
since I'm using the sources directly. On the other hand, I'm not sure if the current status should be published via pip
because it would require many dependencies considering the wide range of modules. #96 fixed on of the issues by introducing appropriate links for the modules.
Semantic versioning: I understand the advantages and for most larger projects, this makes perfectly sense to me as well. However, in small projects, there are no bugfix releases and I do not differ between minor and major releases.
Instead, the information of the date seems much more interesting than any artificial number like 0.4.7
which does not hold any valuable information without a relation to a second version number. This is why I tend not to use semantic versioning for now.
If the modules are separated from the main framework, semantic versioning would be much more interesting and probably also a must-have since the separated modules would have to rely on a compatible framework with non-breaking changes for minor releases and potentially breaking changes only for major releases.
from memacs.
Related Issues (20)
- Difference to Orger + plans for a Hypothesis module HOT 1
- memacs_firefox output does not include url title HOT 7
- Updating to Python 3.9 results in 'HTMLParser' object has no attribute 'unescape' error HOT 4
- memacs/ical fails to parse valid iCalendar files & generally mishandles timezones HOT 1
- memacs_filenametimestamps exclude multiple directories not working HOT 1
- Can't parse timestamp HOT 1
- suggest: screencast examples HOT 5
- memacs_csv: help parameter is not working HOT 3
- implement sub-packages to install only selected module dependencies HOT 6
- suggest revision installation via pip, provision of test/reference data HOT 2
- a few links in `README.org` are dysfunctional HOT 1
- suggest: extension of general README.org (though pending revision) HOT 1
- Project dependencies may have API risk issues HOT 1
- redirecting Memacs std output to file causes broken Orgdown format (instead of using -o parameter) HOT 8
- Add optional parameter for body text
- Feature Request: Matrix Module HOT 1
- --add-to-time-stamps doesn't work at least with filenametimestamp module
- AttributeError: type object 'OrgFormat' has no attribute 'datetime' - after ubuntu update HOT 3
- kodi: probable issue with content of row (OrderedDict) HOT 3
- filenametimestamps exclusion not working if excluded directory contains "bad files" HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from memacs.