Skip to content

Releases: zyga/zmk

The one we can reuse

29 Jan 08:52

Choose a tag to compare

Changes in 0.6.0:

  • The Configure module now sets Configure.DebugBuild to either yes, no or
    empty value (default) in response to the configure script command line
    options --enable-debug and --disable-debug respectively.
  • The Toolchain and Configure modules support Objective-C better: the OBJC
    environment variable is now recognized and remembered during configuration.
    Documentation is updated to reflect this.
  • The Toolchain module adds -g to CFLAGS when Configure.DebugBuild is set
    to yes.
  • ZMK self-tests are no longer looking into hidden directories when looking for
    unit tests. This notably fixes support for the Debian dgit tool which uses
    .git for storing local state that looks like the source tree.
  • ZMK is now compliant with the REUSE toolkit.

The well-linked release

23 Jun 20:00
v0.5.1

Choose a tag to compare

  • ZMK now defines ZMK.BugFixes as a set of identifiers of issues that were
    known and addressed inside the library. Specific bugs may gain stable identifiers
    that, once addressed, are added to the list in the next release of the library.

    This mechanism is intended to enable hot-fixes, which are applied to the
    makefile of a specific project, which update or replace part of zmk to fix a
    specific issue while doing so in a way which eventually disables the
    workaround.

  • The Symlink template is now documented with a dedicated manual page

  • The Symlink template no longer retains the sub-directory related to the
    placement in the development tree after installation, matching the behavior
    of the Program template.

    This is a backwards incompatible change resulting from the fact that
    previous behavior was simply wrong. There are additional tests checking
    various combinations of this behavior now.

    This issue is identified in ZMK.BugFixes as zmk-issue-80

  • ZMK integration tests no longer fail on Haiku

The BitBake friendly release

03 Feb 15:10
v0.5

Choose a tag to compare

  • The Program.Test template no longer fails with syntax error when computing
    test coverage.

  • The Toolchain module no longer misidentifies clang on FreeBSD.

  • The Toolchain module has initial integration test suite that checks the real
    interaction with the host system. The integration test suite has reference
    data for FreeBSD and MacOS.

  • The Coverity module gained support for checking if scan result is viable for
    submission and an ability to submit the scan automatically, using the new
    upload-coverity-scan target. See the manual page for additional information
    about project configuration.

  • ZMK now supports additional static analysis tools: clang-tidy, clang-analyzer
    (via scan-build), cppcheck and sparse. They each define a CamelCase-named
    module and a Sources attribute which includes the set of files to scan.

  • The distclean no longer forgets to run clean target.

  • ZMK now allows installing multiple headers simultaneously with the
    use of the HeaderGroup template. HeaderGroup supports group customization of
    InstallDir and InstallMode and otherwise behaves identical to the Header
    template used multiple times, manually.

  • The ClangTidy template now passes -- $(CPPFLAGS) if there are non-empty
    CPPFLAGS defined. This can be used to provide include paths and macro
    definitions appropriate for the project.

  • The Sparse module now passes $(Sparse.Options) via CFLAGS set at the environment
    level before invoking recursive $(MAKE). This avoids clobbering CFLAGS set in
    the build system (e.g. to pass -fpic) as make treats command line overrides
    differently from environment values.

  • The Configure module now supports setting the target triplet. The generated
    configuration script handles the --target= command line option and the result
    is available as $(Configure.TargetArchTriplet).

  • The configure script now accepts --exec_prefix= as an alternate spelling of
    --exec-prefix.

  • The configure script now accepts but ignores --oldincludedir for compatibility
    with some build systems.

  • The Configure module now supports configuration of static and dynamic
    libraries with the new configuration script options: --enable-static,
    --disable-static, --enable-dynamic and --disable-dynamic. Both library types
    are enabled by default. The values are stored and inhibit expansion of
    appropriate templates.

  • The Header and HeaderGroup template no longer expand $(includedir) too early,
    allowing customized includedir to be respected.

  • The Configure module no longer breaks in out-of-tree builds and no special
    care is required to support that anymore.

  • ZMK is now able to use an explicit sysroot for all activities.
    The configure script now accepts --with-libtool-sysroot which sets
    $(Configure.SysRoot). The Toolchain module defines $(Toolchain.SysRoot) which
    defaults to whatever was configured. The templates ObjectGroup, Library.So,
    Library.DyLib and Program now pass the sysroot argument when
    Toolchain.SysRoot is non-empty. Lastly the PVS module similarly passes
    a non-empty sysroot when invoking the pre-processor.

Extra touches release

30 Dec 19:59

Choose a tag to compare

Changes in 0.4.2:

  • The PVS module no longer fails when running the pvs-report target.

  • The Header module no longer clobbers custom InstallDir.

  • The Library.DyLib template no longer creates symlink foo -> foo.dylib when
    the library is not versioned. In addition the amount of code shared between
    Library.So and Library.DyLib has increased.

Practically tested release

30 Dec 13:08

Choose a tag to compare

Changes in 0.4.1:

  • The Library.So template no longer creates symlink foo -> foo.so when the
    library is not versioned.

  • The ObjectGroup template no longer fails during out-of-tree builds with
    dependency generation and sub-directories in source file paths by attempting
    to put the generated dependency information alongside the source code.

  • The ObjectGroup template no longer fails during out-of-tree builds when
    the original project explicitly uses $(ZMK.OutOfTreeSourcePath).

  • The PVS module longer fails when the original project uses
    sub-directories to organize the source tree.

Pretty good release

28 Dec 18:17

Choose a tag to compare

Backwards incompatible changes in 0.4:

  • The Configure module introduces a backwards incompatible change in the
    name of the generated configuration file. In older releases the file was
    called GNUmakefile.configure.mk, starting with this release the name is
    config.$(NAME).mk. $(NAME) is the name of the project, also available as
    $(Project.Name). This also restricts the configuration system to projects
    that define a name. The background of this change is a realization that prior
    approach caused confusing an buggy behavior, where Make would search the
    include path, which also contains all of PATH, for any file named
    GNUmakefile.configure.mk and include the first one it found.

    Projects using zmk are advised to change their manually included
    configuration file to one that contains their project name.

Changes in 0.4:

  • The Symlink template used by Library.So and Library.DyLib will now work
    correctly when invoked with -B switch (aka --always-make), by force-creating
    symbolic links that already exist.

  • Program template no longer forgets to add the .exe suffix to installed executables.

  • The ObjectGroup template used by Program, Program.Test, Library.A, Library.So
    and Library.Dylib now supports sub-directories in source file names. Object files
    created by the object group are now created in directories corresponding to the source
    files.

  • The ObjectGroup template now supports additional C++ extensions: .cxx and .cc.
    This is in addition to the .cpp extension that was supported before.

  • The ObjectGroup template used by Program, Program.Test, Library.A, Library.So
    and Library.DyLib is now performing rudimentary detection of a missing compiler.

  • The GitVersion module now provides GitVersion.Origin attribute
    to indicate how the version information was obtained. The value "git" is used
    when git history along with git tags were used. The value "file" is used when
    the .version file was read.

  • The Tarball.Src template no longer breaks when used from a dist archive.

  • The Program and Script modules no longer attempt to transform installed name
    when the Configure module is not imported.

  • The internal toolchain.GCC module no longer attempts to invoke gcc and g++
    if they are not installed.

  • The ManPage module again checks for errors in manual pages. This feature
    was disabled in an earlier release as it was showing a problem with zmk
    that was not understood at the time.

  • The Tarball.Src module only signs the release if both GPG and GPG keys are
    available.

The testful release

26 Jun 17:12
v0.3.8

Choose a tag to compare

  • The release archive now contains the full collection of test files.

The source release

26 Jun 17:04
v0.3.7

Choose a tag to compare

  • The release archive no longer contains the pre-compiled manual pages. Instead
    the .in files are shipped, to be compiled locally.

The more installable release

26 Jun 16:39
v0.3.6

Choose a tag to compare

  • InstallUninstall no longer reuses the relative directory in the source tree
    to represent the target directory. Instead the InstallDir property is the
    only way to influence the final path. This was a late discovery but one that
    is ultimately only sensible. ZMK itself was adjusted to install correctly in
    this new scheme.

Fixes for MacOS

25 Jun 23:51
v0.3.3

Choose a tag to compare

  • Tests no longer hang on case-insensitive filesystems.

  • The Directory module no longer issues warnings on MacOS.