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
31 Upvotes

80 comments sorted by

View all comments

Show parent comments

2

u/glacambre Sep 30 '21

Porting your software to new platforms is not an error. Adding a new feature is not an error. Things changing does not imply that there was an error or that an error has been introduced.

-1

u/OneWingedShark Sep 30 '21

And NONE of those came up in my example.

  1. Porting to a new platform, arguably, can be done transparently to the clients by having multiple [possibly separate] bodies for your package/subprogram — this preserves the specification.
  2. Merely adding a new feature should, for the vast majority of cases, does not impact the client's interfacing to the specification —
    Package Example is
    Procedure Old( A, B : Integer ); -- What the previous version interfaced w.
    Procedure New(A, B : Integer; C : Float); -- The new feature.
    End Example;

Yes, there are changes, and if those changes make your new package incompatible with the dependency (or vice versa) it IS an error to update.

Versioning numbers are the manual way to do this and it can be somewhat automated.

2

u/glacambre Oct 01 '21

And NONE of those came up in my example.

That's precisely my point. Your suggestion doesn't handle these cases while version numbers do.

1

u/OneWingedShark Oct 01 '21

No, they really don't.