Remove obsolete build_manpages target and markdown type
They're based on obsolete mkit.ini structure and is not used in any known
project. That said, at least build_manpages will be added in future,
most probably in form of plugin, once plugin structure is figured out.
(Stay tuned, but don't hold your breath!)
The changelog is intended to be edited, but it's more convenient this
way (especially if you're like me, using Vim and '{' and '}' as major
means of moving around.
Overview of changes:
* build target will now leave file .mkit/semver file
Build tools can read this to easily find out version.
* semver() caches its output now
* Refactored common operations in .mkit
* Removed old unnecessary check
* Solved or muted last few ShellCheck issues
A bit convoluted check that cannot fail, since everything now relies on
var.sh being imported, which is guarranteed to set $MKIT_LOCAL to a
non-empty value.
Overview of changes:
* mkit/stub: Removed `[roots]` reference from `[tokens]` example
Using '[roots]' as reference can have unpredictable results since it
silently depends on DESTDIR, which is only available at install
time.
Next breaking release (v0.1.0, but could be earlier as we are still
in 0.0.z space) should rename 'roots' to 'ROOTS' to reflect its
volatile nature (similar to ENV).
* mkit/stub: LICENSE.md won't be mentioned in headers if not asked
* mkit/stub: PREFIX is set to /usr in packaging templates
* mkit/stub: Added notes about file paths in packaging templates
* mkit/stub: Fixed bug when empty license name would be accepted
* mkit/stub: Fixed double deploy of template.spec
* mkit/make: Having relsrc same as reldst is now tolerated (albeit useless)
* mkit/make: 'release' and 'vbump' can now be reached directly (without GNU Make)
* mkit/make: Added -V option to mkit/make script
* Code maintenance
Use of `[roots]` in `[tokens]` is tricky, because final value of a
`[roots:foo]` will "silently" depend on DESTDIR, while DESTDIR is
only known during install time. On the other hand, `[tokens]` are used only
during build time.
In other words, YOU CANNOT RELY on the value of keys in `[roots]` to be
consistent. For example, consider root:
[roots]
foo = /bar
qux = [ENV:PREFIX]:/quux
`[roots:foo]` will be '/bar' at build time, but "$DESTDIR/bar" at
install time, and `[roots:qux]` will be "$PREFIX/quux" at build time,
but "$DESTDIR/$PREFIX/quux" at install time.
Just about only case when you might want to use it is mentioning it in
a document, when you want the value to be rather "standard" than
"correct", while you still want to respect PREFIX.
So let's not lead new users directly into that rabbit hole.
Overview of changes:
* Fixed version directive lookup
mkit.ini would be refused if version directive was at the end of the
file, while first and last 3 lines is what was supposed to work.
* Fixed license argument check
stub script would ignore license argument due to argument validation
error caused by refactoring.
* Fixed bad grep advice in MKIT_STUB_README.md
* Updated own dogfood
Overview of changes:
* Rewrote *newstub* as *stub* meta-command, now with update mode
The script looks promising, let's use the extensible CLI scheme.
* Removed sorting from `ini lskeys`
*stub* can rewrite user's mkit.ini but it does not want to mess it
up more than is necessary.
* User can now override project version with *stub*
* *stub* now Respects MKIT_INI environment variable
* Fixed problems with LICENSE.md and README.md rewriting in *stub*
* Moved MKit version directive to end of file
* Improved MKit's own project README.md
'newstub' was not so far to being able to update meta-data based on
existing mkit.ini. However, in order to keep the CLI sane, it seems
better to switch to meta-command scheme.
Overview of changes:
* Added 'newstub', builder script to help with new projects
The script is intended to help start up new MKit project by generating
structure necessary for MKit to work, and instructing user which
parts to review and how.
* Fixed bug when skeletons could be deployed as part of directory
If directory targeted in [files] section contained .skel files, they
would get deployed along with built files.
* Code refactoring
Moved global variables to new vars.sh module, improved initialization
and importing code and added file headers.
* Improved patch importer utility