{admiral} 1.0.0 #2089
Replies: 6 comments 14 replies
-
Beta Was this translation helpful? Give feedback.
-
I'm eager to get to a I think our reputations is that we are always breaking things, re-working things. Not always a bad thing as it demonstrates our desire to meet the needs of the community, CDISC and company standards. However, users at GSK have expressed frustration with how their code breaks in every release, which can be frustrating when using admiral for a study. Once we reach My biggest concern is our programming strategy and our manifesto. I think we should spend some time this cycle reviewing, simplifying and updating these documents. |
Beta Was this translation helpful? Give feedback.
-
Fully agree with the sentiment of all the above - and from a selfish perspective 2024 is going to see a mass of admiral adoption at Roche, and frankly the constant changing our package extensions and admiralroche to keep in line with ever changing minor tweaks of admiral core functions has become really challenging to keep on top of. I love @zdz2101 point on "Don't let perfect be the enemy of the good" - I was thinking similar here, but I'd say "Don't let perfect be the enemy of the great" - as I see admiral already is great, so let's not risk losing new users and companies adopting whilst we strive for "even greater". We should ruthlessly prioritize the Q4 clean-up items and be willing to drop the nice-to-haves. Good team discussion! |
Beta Was this translation helpful? Give feedback.
-
I think if we can release a "stable" (or "mature") admiral version in Q4 2023 depends on what we mean by that term. I see three possible meanings:
What are you aiming for? |
Beta Was this translation helpful? Give feedback.
-
I completely agree. I would implement it as a separate package. Then it is obvious that admiral can be used without
I do not think that the call store concept goes against "the modularity and readable code manifestos". On the contrary we would regain modularity and readability. When we started the ADaM scripts looked like a
This did not work because it would have resulted in thousands of functions with a lot of duplication of code. It was also not readable because nobody can remember all these functions and what was actually done in a derivation was hidden in the function. Therefore we created more general functions. This solved the duplication issue partly but it made the ADaM scripts very long. The scripts are a big chunk of code, sometimes more than thousand lines. This is hard to read and not modular. So at the moment we are not really modular. The call store concept solves these issues.
It is another layer but the concept is quite simple. So I would expect that it does not require much time to learn it. In return creating and maintaining the ADaM scripts should be much more efficient.
I agree, we should not change the existing templates. In admiralroche I would generate the templates by |
Beta Was this translation helpful? Give feedback.
-
Summary of discussionGeneral
Communication around 1.0
Looking past 1.0:
I don't know about you all but I'm super excited for the months ahead! |
Beta Was this translation helpful? Give feedback.
-
Hi @pharmaverse/admiral,
We've been talking about releasing {admiral} v1.0.0 for a while now, and myself and @bms63 feel like the next release following v0.12.0 (i.e. the December 2023 release) would be a good time to do it. Our reasoning is as follows:
Largely, we are happy with the current contents of the package. Even if some functions here and there may overlap in places, that's alright. We feel like continually remoulding the package to completely remove these is not only not a good use of our time, but also comes at the detriment of our current users (who see breaking changes disrupting their code) and our future users, who now lose a possible tool to derive a variable/parameter. In general, we are happy about how the package is balancing between the two paradigms of "one function per variable/parameter" and "one function per whole ADaM"; we don't want to upset this equilibrium too much. With all of this in mind, after release 0.12.0 our idea is to draw a line under the function rework effort that has been going on, gathering any remaining small bits and pieces relating to standardising the arguments of our functions into a new "argument standardisation" effort but tabling any work relating to combining/drastically changing actual {admiral} functions.
In connection to the above, some of the reservations around 1.0 were related to the associated notions of package stability that naturally come with this milestone. Having given it some thought, we came to the conclusion that while increased stability is something that we think is naturally expected of 1.0, perhaps a better term to use for 1.0 is package maturity. In essence, we feel {admiral} is ready to to be used by ADaM programmers, and as such we as a dev team should start pivoting from a mindset focused on new functionality to one centered around maintaining our package.
This doesn't mean that we should never introduce breaking changes anymore - there will be times in the future where we wish to make changes to the {admiral}. Instead, our idea is to move to a twice-yearly release schedule (excluding any patches) so that any changes happen slower and thus users have more time to adapt. For instance, our deprecation cycle (warning/error/removed) would take 18 months instead of 9 months.
Additionally, we believe releasing 1.0 will increase the credibility of our package for external companies/users that may not be involved with it yet. These groups may now see immediately from the version number that the package is indeed mature enough to satisfy their ADaM needs. I know that I myself am more likely to use a package that is labelled as version 1.x rather than 0.x.
Lastly, a relatively minor thing is that releasing 1.0 at the end of the year enables us to start 2024 with a new, fresh mindset focusing on the points I mentioned above.
Having said all of the above, we want to know how you feel about 1.0. What are your thoughts, concerns, ideas around the subject? What do you think we should be doing while moving towards this milestone, and what do you think we should stop doing?
Beta Was this translation helpful? Give feedback.
All reactions