dependency management for projects is *never* an easy task. who think that the complex on loading project X or Y is because of metacello simply does not understand the inherent complexity the task it tries to solve has.
things can be improved, yes… but no matter what tools we create, this will just make a bit easier what is complex. now… I think one of our problems is the use of #stable into configurations. I have expressed my concerns other moments, but here it is again: Project A uses for instance Seaside stable which is, when Project A starts Seaside 3.0 time after owner tries to load Project A… but since then stable from Seaside has move from Seaside 3.0, to 3.1.2 now… that can be “not desired” at all. Project A wanted Seaside 3.0, not 3.1 (of course, if using Semantic Versioning that will mean there is just changes to the API in a compatible way… but we all know we do not use semver correctly almost never). So… in fact Project A cannot depend on Seaside/#stable… instead, he should depend on Seaside/3.0 directly to be sure you have the version you want. that of course introduces other kind of problems, like: what happens if I want to install Project A who depends on Seaside/3.0 and Project B who depends on Seaside/3.0.2 Well… ideally, we need to be able to resolve those problems when loading. Also, it would be cool to specify version dependencies as “Seaside/3.*”, for instance… but well… that’s another thread :) As you can see… is not an easy task. Esteban > On 12 Jun 2015, at 02:28, Igor Stasenko <[email protected]> wrote: > > Absence of Metacello won't help you dealing with dependencies > and loading stuff by using hand-made scripts by dozens of people > written at different points in time and not maintained by anyone. > > It may be too complicated to use, especially at earlier stages of development, > and in situations, when all you need is to use latest versions of everything > available (aka #bleedingedge). > > But always staying on bleeding edge hurts a lot (that's why it called so) > and it is conscious choice of many professional developers to base own > development on latest but stable versions of dependencies. > Simply because then you have more time focusing on what you want to do, > instead of fighting with various bugs and drastic changes and updates in > numerous dependencies. > And this is where tools like Metacello helping a lot. Because once you define > stable point, you can always be sure that you can reproduce it at any moment > and load without problems. > And no, script on which you spent 1 minute and placed on pastebin doesn't > helps in such situation. It just contributes even more mess to what is > already there. > > -- > Best regards, > Igor Stasenko.
