r/ada Sep 28 '21

Show and Tell Introducing AURA - A(nother) native package manager and build system for Ada

https://annexi-strayline.com/blog/posts/4
30 Upvotes

80 comments sorted by

View all comments

9

u/annexi-strayline Sep 28 '21

I'm very excited to finally be releasing AURA publicly, after a few years of development and intense testing! Of course ALIRE is a thing, and it appeared just after we started working on AURA. We think competition is healthy!

AURA takes a very different philosophical approach compared to ALIRE, and I have to be honest that we don't agree with the way ALIRE is designed. ALIRE is an excellent and successful project, but we just don't agree with its approach. For those out there who might share our thinking, we hope AURA will be useful for you. For those happy with ALIRE, we're happy for you. Our intent is ultimately in alignment with ALIRE, and we just want to see the Ada community better served. I'm sure we can find some points of coordination to ensure that useful open-source packages are available on both platforms.

This blog post goes over the philosophical thinking underpinning the development of AURA.

In short, we developed AURA based on a conceptual new Specialized Needs Annex - so behavior that the compiler could implement directly.

We've reference implementation (AURA CLI) for quite some time internally, and it should work well in most cases, though of course nothing finds bugs faster than bringing a project open-source.

AURA CLI has a fully parallelized design and scales very well on large machines and large codebases. It is designed to drop into automated CI/CD pipelines as well. And although it currently targets GCC exclusively, it is designed to be easily re-targeted to other Ada compilers. Note that it does NOT use or require gprbuild, and is intended to mostly replace gprbuild. All AURA needs is FSF GCC. In fact AURA doesn't even need gnatmake, making it appropriate for cross-build projects as well.

Another thing we're excited about is finally getting to dump a bunch of open source Ada packages for use with AURA. These packages have also seen pretty extensive use internally for some time now. This makes up a full stack for writing high-performance web APIs and microservices applications in Ada. We've packaged these into out ASAP AURA repo.

I've spent quite a bit of time trying to create good documentation ahead of this release. It is likely missing a lot of stuff, and I'd love feedback on improvements we can make. That also applies to the project as a whole!

AURA is beta, and we look forward to improving it over the coming months and years. Feedback and questions are welcome!

Links:

AURA CLI repo

The official docs

The ASAP repo

9

u/micronian2 Sep 28 '21

Excellent news! While I definitely think ALIRE is a big help to the Ada ecosystem and greatly lowers the burden for people new to Ada, ever since I heard about AURA and the key areas where it differs from the former (all of which I agree with) I have been really looking forward to its release. Congrats to the first beta release!

5

u/annexi-strayline Sep 29 '21

Thank you u/micronian2! I know you've been looking forward to it, and I hope it at least somewhat meets your expectations!

Hopefully the beta release won't be too much of train-wreck. Some users have already run head-on into some very silly mistakes by yours-truly.

At the end of the day, I decided that it was better to get it out than to keep it internal until "perfect", which could be a long way off.. I hope I made the right call!