All Versions
9
Latest Version
Avg Release Cycle
59 days
Latest Release
2514 days ago

Changelog History

  • v0.5.0 Changes

    November 27, 2014

    ๐Ÿš€ This is another alpha-quality release. This release contains no user-visible enhancements; its main purpose is to update ExMake to work with Elixir 1.0.2. New bugs may pop up due to the many changes that have happened to Elixir since 0.15.0.

    Built with Elixir 1.0.2.

  • v0.4.0 Changes

    August 08, 2014

    ๐Ÿš€ This is another alpha-quality release. This release only contains one user-visible enhancement; its main purpose is to update ExMake to work with Elixir 0.15.0. New bugs may pop up due to the many changes that have happened to Elixir since 0.12.4.

    โœจ Enhancements:

    • ๐Ÿ‘ Allow omitting argument patterns in on_load definitions in some cases.

    Built with Elixir 0.15.0.

  • v0.3.2 Changes

    February 28, 2014

    ๐Ÿš€ This is another alpha-quality release, adding various bug fixes and enhancements.

    ๐Ÿ›  Fixes:

    • ๐Ÿ›  Fix the job waiting logic when an error occurs in a recipe.
    • F#: Fix the way the sources list is passed to the shell invocation.
    • ๐Ÿ›  Fix the order of arguments passed to tasks.

    โœจ Enhancements:

    • ๐Ÿ“‡ Rename phony rules to tasks as this term is less obscure.
    • โž• Add support for fallback tasks (similar to .DEFAULT in Make).
    • Import File, IO, Path, and System automatically in scripts.
    • ๐Ÿ‘ Allow omitting argument patterns in rule/task definitions in some cases.

    Built with Elixir 0.12.4.

  • v0.3.1 Changes

    February 27, 2014

    ๐Ÿš€ This is another alpha-quality release, adding various bug fixes and enhancements.

    ๐Ÿ›  Fixes:

    • Don't run on_load functions repeatedly if a library is loaded multiple times.
    • C#/F#: Don't pass the key file as a source file.
    • C#: Don't pass .netmodule files as source files.
    • Mark the -c flag as a Boolean option.

    โœจ Enhancements:

    • ExMake.Logger is now automatically imported in libraries.
    • โž• Add an ExMake.Logger.log_warn/1 function.
    • โž• Add a Host library which can detect various details about the host machine.
    • โž• Add an ExMake.Lib.require_lib/1 macro for libraries that depend on other libraries.
    • โž• Add an ExMake.Utils.format/2 function.
    • ExMake.Cache.save_manifest/2 is now append_manifest/2 and supports appending.

    Built with Elixir 0.12.4.

  • v0.3.0 Changes

    February 27, 2014

    ๐Ÿš€ This is another alpha-quality release, adding various bug fixes, enhancements, and optimizations.

    ๐Ÿ›  Fixes:

    • โœ‚ Remove a bunch of stuff from the public API that shouldn't have been there.
    • Raise ExMake.ScriptError if an executable (e.g. erlc) cannot be found.
    • Sanitize the ExMake.Logger interface so it's more sensible for library writers.
    • Correct various type specs in the public API.

    โœจ Enhancements:

    • ๐Ÿ–จ Print result messages when locating executables.
    • ๐Ÿ‘Œ Support :silent and :ignore options in ExMake.Utils.shell/2 and ExMake.Utils.find_exe/3.
    • โž• Add a library for building C# source code.
    • โž• Add a library for building F# source code.

    Optimizations:

    • Pass -spp true to the Erlang VM on startup.
    • โฑ Implement a more concurrent job scheduling algorithm that schedules jobs whenever possible.

    Built with Elixir 0.10.1.

  • v0.2.1 Changes

    August 19, 2013

    ๐Ÿš€ This is another alpha-quality release, adding various bug fixes and enhancements.

    ๐Ÿ›  Fixes:

    • ๐Ÿ›  Fix an attribute typo in the Elixir library that could break output directory determination.

    โœจ Enhancements:

    • โž• Add support for non-Elixir module names, output directory selection, and explicit dependencies to the ExMake library.

    Built with Elixir 0.10.1.

  • v0.2.0 Changes

    August 19, 2013

    ๐Ÿš€ This is another alpha-quality release, adding various bug fixes and enhancements.

    ๐Ÿ›  Fixes:

    • Error out if a recipe does not produce the expected target file(s).
    • ๐Ÿ‘ท Wait for remaining jobs to exit when a recipe fails, instead of ignoring them.
    • ๐Ÿ›  Fix output directory determination in the Erlang/Elixir libraries.

    โœจ Enhancements:

    • Document attributes that are, by convention, reserved for libraries.
    • ๐Ÿ‘‰ Make ExMake.Utils.find_exe/2 support a list of names to try instead of just a single name.
    • โž• Add support for caching of --args and 'precious' environment variables.
    • ๐Ÿ”ง Use previous --args and precious environment variables when configuring due to a stale cache.

    Built with Elixir 0.10.1.

  • v0.1.0 Changes

    August 17, 2013

    ๐Ÿš€ This is another alpha-quality release, adding various bug fixes, enhancements, and optimizations.

    ๐Ÿ›  Fixes:

    • Error out if a phony rule depends on a file that doesn't exist and cannot be built.
    • ๐Ÿ‘ท Provide better stack traces in debug mode when an exception is caught in a job runner.
    • ๐Ÿ›  Fix a pattern match failure that could happen in the Erlang library if a rule had header dependencies.
    • ๐Ÿ›  Fix the "recipe changed directory" error to actually say what it means.
    • Ensure library paths are expanded into absolute paths before adding them.
    • Correctly invalidate the environment table cache if a script file changes.

    โœจ Enhancements:

    • Wrap the DAG creation process in a timing pass.
    • โž• Add a module for compiling Elixir source code.
    • ๐Ÿ‘ Allow specifying output directory in Erlang rules.
    • โž• Add a manifest macro to specify files to be considered sources of the build cache.
    • Lift the arbitrary restriction that recurse paths could not contain path separators.
    • ๐Ÿ”„ Change into the directory the file given to --file is located in, and lift a similar separator restriction.

    Optimizations:

    • โž• Add module caching by using a manifest file in the cache directory.
    • If --clear is passed, immediately assume that the cache is stale.

    Built with Elixir 0.10.1.

  • v0.0.0 Changes

    August 16, 2013

    ๐Ÿš€ This is the initial, alpha-quality release of ExMake. While it should work for many things in practice, expect bugs.

    Overview:

    • ๐Ÿ‘Œ Support for Make-style dependency chains.
    • ๐Ÿ‘Œ Support for Make-style phony rules (commands).
    • ๐Ÿ‘Œ Support for arbitrary Elixir code as recipes.
    • ๐Ÿ‘Œ Support for caching of the environment table and dependency graph.
    • ๐Ÿ‘Œ Support for parallel job execution with a specific amount of runners.
    • ๐Ÿ‘Œ Support for timing of various build steps.
    • ๐Ÿ‘Œ Support for loadable libraries that provide macros/functions to assist in writing build scripts.
    • Included library for Erlang source code compilation.
    • ๐Ÿ— Included library for building ExMake libraries.

    Built with Elixir 0.10.1.