<div dir="auto">I agree with breaking up utils. I've certainly read similar comments elsewhere that calling something 'utils' inherently causes issues like this, and it seems to fit with our experience.<div dir="auto"><br></div><div dir="auto">I also agree that X stable depending on Y unstable doesn't seem right. Though we're also very bad at ever making a genuine release of dependencies. (it's a lot of overhead if nobody else is actually consuming them)</div><div dir="auto"><br></div><div dir="auto">There are probably other small things like it is "mgo/bson" where bson should really be it's own package.</div><div dir="auto"><br></div><div dir="auto">Also some questions about how well packages avoid leaking. (charmstore uses mgo as a backend. if it doesn't expose those types then we probably don't care if some of our tree depends on it while the other part doesn't. At least as a transition phase.)</div><div dir="auto"><br><div data-smartmail="gmail_signature" dir="auto">John<br>=:-></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Apr 4, 2018 06:19, "Tim Penhey" <<a href="mailto:tim.penhey@canonical.com">tim.penhey@canonical.com</a>> wrote:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Which then begs the question...<br>
<br>
Why do we have stable <a href="http://gopkg.in" rel="noreferrer noreferrer" target="_blank">gopkg.in</a> branches depending on unstable branches?<br>
<br>
i.e. <a href="http://gopkg.in/juju/charmstore.v5" rel="noreferrer noreferrer" target="_blank">gopkg.in/juju/charmstore.v5</a> depending on<br>
<a href="http://gopkg.in/macaroon-bakery.v2-unstable" rel="noreferrer noreferrer" target="_blank">gopkg.in/macaroon-bakery.v2-unstable</a>?<br>
<br>
This seems to smell bad.<div class="signature-text"><br>
<br>
<br>
Tim</div><div class="elided-text"><br>
<br>
On 04/04/18 14:17, Tim Penhey wrote:<br>
> As a follow on...<br>
><br>
> I'd like to move juju to only use "stable" dependency branches. No more<br>
> '-unstable'.<br>
><br>
> Tim<br>
><br>
> On 04/04/18 12:52, Tim Penhey wrote:<br>
>> Hi folks,<br>
>><br>
>> Juju has a problem with its dependencies. We have been trying to upgrade<br>
>> a number of our dependencies recently have have been hitting road<br>
>> blocks. Mostly because of changes to common libraries that are<br>
>> incompatible with other libraries that we use.<br>
>><br>
>> I'm pretty sure that the root of all these problems is the juju/utils<br>
>> package. It has become a dumping ground for any common functions that<br>
>> packages may want to share. However these common functions are changed<br>
>> arbitrarily with only thoughts around how they impact a subset of the<br>
>> downstreams of juju/utils.<br>
>><br>
>> I think that the only sane way forward is to move all the functionality<br>
>> we care about out of juju/utils into more cohesive, smaller, packages<br>
>> that have meaningful names and you should be able to determine what they do.<br>
>><br>
>> Where the current clashes came from were a few places.<br>
>>  1) we wanted to change our mgo dependency<br>
>>  2) a new file path utility function was wanted<br>
>>  3) the debugstatus package inside utils was updated in a backward<br>
>> incompatible way<br>
>><br>
>> The root problem here is that the utils package tries to do too many<br>
>> things. Any package called "utils" should be a warning, and we should<br>
>> have listened to Dave Cheney when he brought this up originally.<br>
>><br>
>> I think the way forward is to break up the utils package. I'd like to<br>
>> propose that we don't add anything new to the utils package, and only<br>
>> deletions are allowed. We create new packages that contain the<br>
>> functionality we require, and have them be much more controlled on their<br>
>> own dependencies.<br>
>><br>
>> Thoughts?<br>
>><br>
>> Tim<br>
>><br>
><br>
<br>
--<br>
Juju-dev mailing list<br>
<a href="mailto:Juju-dev@lists.ubuntu.com" target="_blank" rel="noreferrer">Juju-dev@lists.ubuntu.com</a><br>
Modify settings or unsubscribe at: <a href="https://lists.ubuntu.com/mailman/listinfo/juju-dev" rel="noreferrer noreferrer" target="_blank">https://lists.ubuntu.com/mailman/listinfo/juju-dev</a><br>
</div></blockquote></div><br></div>