Skip to content

Releases: AnarchyTools/atbuild

1.2: Yo dawg, I heard you like package managers

11 May 09:52
Compare
Choose a tag to compare
  • We now have atbuild packaged for homebrew and apt! Install with your favorite package manager and always be up to date. For more information, see the documentation
  • Add a new task-level setting, only-platforms, to restrict a task to a particular platform
  • Support compression in packageatbin, so that your packages look smaller in the mirror
  • Providing package version information to shell and attool
  • Fix a strange interaction between packageatbin and executable-name

1.1: GitHub release titles don't support emojis, but we do

10 May 02:50
Compare
Choose a tag to compare
  • Added packageatbin, a new tool to generate atbin binary packages.

    • When targeting iOS, we can now build fat binaries, or as we call them these days, "binaries of size".
  • Added executable-name to atllbuild, allowing the building of executables with "special" names, like your-executable, your.executable, your?executable, and many other questionable choices Chris Lattner has banned as module names.

    • Fun party game: you can ask your users to prove they're not robots by identifying the "mountain" executable in your build products: 🌁⛰🏔🗻🌋🏞🌉. Make sure to include a "fun" consequence for incorrect guesses.
  • If you are a string parameter looking for a quick exit, atpkg quotes can now be escaped via an escape sequence:

    :option "and we would have gotten away with it, too \" if it wasn't for you meddling kids"
  • Assorted fixes to atpm interoperability

1.0: Going Gold

26 Apr 12:47
Compare
Choose a tag to compare

atbuild is a small, configurable, mature, and boring Swift buildsystem.

  1. It just builds your code. That's it. No bells, whistles, file downloads, or feature creep.
  2. It is extensible and can be easily customized to work how you want.
  3. It has no magic. It doesn't guess. It does what you tell it to do.
  4. It has no opinions. It does not look down on you for writing code "wrong".
  5. It is used to build many large production projects.

It follows the Anarchy Tools philosophy of simple, unopinionated, hackable tools.

Key atbuild features:

  • Builds Swift 2 & Swift 3 projects
  • Can even build with Xcode's Swift
  • Builds projects for OSX, Linux, and iOS (experimental)
  • Can run custom scripts before, after, and during builds
  • Customize all compile and link flags
  • Powerful imports system for managing dependencies
  • Overlays, custom tools, and external scripts allow maximum customization
  • Uses the next-generation swift-llbuild engine
  • Extensive documentation
  • It's 1.0!

atbuild pairs well with:

atbuild 1.0 is the result of many months of hard work from amazing contributors. 17 releases ago, we rallied around a radical idea to Make Buildsystems Boring Again™. We succeeded. Join us and make building your software boring too.

Changes since 0.10.0

  • Fixed a bug that prevented usage from working correctly
  • Fixed an intermittent Linux segfault when no atpkg is present in the working directory
  • ATBUILD_PLATFORM is now exported to shell and custom tools
  • No longer warned about atbuild.* overlays having no effect

0.10.0: static FTW

25 Apr 03:02
Compare
Choose a tag to compare
0.10.0: static FTW Pre-release
Pre-release
  • We now have "true" platform support, eliminating the need for ad-hoc platform-specific overlays. See the --platform option in our documentation.
  • In addition to osx and linux platforms, we now support iOS, both libraries and executables. What's exactly is an iOS "executable" you ask? Try it and let us know! We will be refining our iOS support in future releases.
    • This means you can now make a libFoo.a with Swift iOS code, which is a WORLD FIRST 🏆 . Please link responsively.
  • Speaking of which, atbuild itself is now statically linked, so we are no longer tied to Swift snapshots! \o/
    • This release is, we're pretty sure, the first Linux executable IN HISTORY 🏆 to be statically linked. I'd like to thank the academy, the ELF specification, and @dunkelstern for their heroic efforts and long hours in getting this done.
    • Unfortunately I can't thank upstream, who has no time to review the patches, which continue to sit in their queue. Growl.
    • I threw up my hands and forked Swift. If you'd like to statically link your own programs, try CaffeinatedSwift. WE HAVE THE TECHNOLOGY.
  • Added a "custom tools" pluginish thing to allow you to write custom atbuild tools. See the documentation
  • We no longer print atbuild strack traces in common cases that aren't atbuild bugs, like your code failing to compile. (Nice try, but your compile error isn't our bug.)
  • Previously, we produced a diagnostic umbrella-header "synthesized" must be used with the umbrella-header option which is nonsensical, because "synthesized" is not a valid value for umbrella-header. That diagnostic has now been replaced with a sensible one.
  • Previously, using required-overlays anywhere in the atpkg caused an error if the required overlay was not provided. This was true even for running "silly" tasks in an atpkg, such as clean. Now you can do your spring cleaning without specifying any required overlays.
  • atbuild now no longer depends on corelibs-Foundation. We have our own project, atfoundation which is way cooler, and can be statically linked. Props to @dunkelstern for his amazing work.
    • YOU CAN'T TELL US WHAT TO DO ANYMORE, MOM

Unlike some projects, we plan on going stable real soon! Please report bugs in our tracker.

0.9.0: DLL hell

15 Apr 03:58
Compare
Choose a tag to compare
0.9.0: DLL hell Pre-release
Pre-release
  • Support for snapshot swift-DEVELOPMENT-SNAPSHOT-2016-04-12-a
    • By the way, if you are annoyed at atbuild releases are tied to specific versions of Swift, we have many open conversations upstream that may benefit from your comments. See generally: here, here, here, and here.
  • Dynamic libraries are now supported. atbuild now provides the same DLL hell you're familiar with from other platforms.
  • Frameworks for OSX are also supported in a new packageFramework tool.
  • You can now build a project with a different toolchain than swift-latest. In particular, we support building with Xcode's toolchain.
  • We've added a variable expansion syntax, currently only supported for the shell tool.
  • 1/2 We now unbuffer our output which resolves certain kind of interleaving that can occur...
  • We no longer print pp /some/random/path in your output. But if you're sad to see it go, one more for old times' sake: pp /dev/null
  • 2/2 ...between build processes when atbuild is used from other tooling. Some of us aren't completely convinced Swift uses the right default here, see SR-1127 if this affects you

Snapshot

28 Mar 06:10
Compare
Choose a tag to compare
Snapshot Pre-release
Pre-release

Compatibility with swift-DEVELOPMENT-SNAPSHOT-2016-03-24-a

The Swiftening

19 Mar 04:33
Compare
Choose a tag to compare
The Swiftening Pre-release
Pre-release

Updated for snapshot swift-DEVELOPMENT-SNAPSHOT-2016-03-16-a

Release early, release occasionally

04 Mar 20:00
Compare
Choose a tag to compare
Pre-release
  • Supporting incremental compiles, because doing the same thing over and over and over again is annoying.
  • Supporting incremental compiles, because doing the same thing over and over and over again is annoying.
  • Supporting whole-module-optimizaton, for those times when half-module-optimization isn't quite enough.
  • No longer printing random 'a's in your build log. But just in case, take a few more: a a a
  • Previously, if you didn't supply an executable for XCTestrun, we said No nil for XCTestRun. Now we say No testExecutable for XCTestRun because that actually makes sense
  • We silenced "certain redundant warnings that are probably useless". We promise to be less useless in every release.

Mar 1 snapshot

04 Mar 14:37
Compare
Choose a tag to compare
Mar 1 snapshot Pre-release
Pre-release
0.7.3

Bump version to 0.7.3

Feb 25th snapshot

27 Feb 12:56
Compare
Choose a tag to compare
Feb 25th snapshot Pre-release
Pre-release

Compatibility with the Feb 25th snapshot: swift-DEVELOPMENT-SNAPSHOT-2016-02-25-a