+1! While you're at it; I think it could be wise to namespace everything with Juju. For example $JUJU_LAYER_PATH and ~/.cache/juju/charm-build/deps or something similar. I think it would make everything more coherent and also eliminate the possibility of naming collisions.
This could of course be done in a different PR if you feel that it's outside of this scope. On 11 May 2017 at 16:25, Cory Johns <cory.jo...@canonical.com> wrote: > Adam, > > I think the name "charms" is up to the user, it's just whatever they have > set $JUJU_REPOSITORY to. It just so happens that Merlijn sets his to > JUJU_REPOSITORY=~/charms (or similar). > > Previously, the build charm would end up in {$JUJU_REPOSITORY,$PWD}/{ > builds,trusty,xenial,...}/$charm_name. The proposal is to always have it > go to $JUJU_REPOSITORY/$charm_name instead. > > Additionally, it was the case previously that the layers, interfaces, and > deps directories would default to living under $JUJU_REPOSITORY. The > proposal is to move deps to always be under ~/.cache/charm-build/deps and > to not have any default for layers or interfaces, such that if $LAYER_PATH > or $INTERFACE_PATH are not set, they will simply be ignored. > > All of this with the caveat that $JUJU_REPOSITORY, $LAYER_PATH, and > $INTERFACE_PATH can be provided / overridden on the CLI. > > On Thu, May 11, 2017 at 9:34 AM, Adam Israel <adam.isr...@canonical.com> > wrote: > >> To confirm: Builds will be replaced by a charms directory, and deps moved >> to ~/.cache/charm-build. If so, I'm +1 to that. >> >> On Thu, May 11, 2017 at 9:28 AM, Cory Johns <cory.jo...@canonical.com> >> wrote: >> >>> Yes, that's what I'm proposing. >>> >>> On Thu, May 11, 2017 at 4:47 AM, Merlijn Sebrechts < >>> merlijn.sebrec...@gmail.com> wrote: >>> >>>> It seems like deps should go under ~/.cache/charm-build/ >>>> >>>> >>>> +1 >>>> >>>> Now, to be clear, the structure you propose is something like the >>>> following? >>>> >>>> >>>> ├── charms # $JUJU_REPOSITORY >>>> │ ├── my-charm >>>> │ ├── ... >>>> ├── interfaces # $INTERFACE_PATH >>>> │ ├── ... >>>> ├── layers # $LAYER_PATH >>>> │ ├── ... >>>> >>>> >>>> >>>> 2017-05-10 23:39 GMT+02:00 Cory Johns <cory.jo...@canonical.com>: >>>> >>>>> There are separate env vars for layers and interfaces, and there >>>>> should probably be CLI args as well. Perhaps instead of being required >>>>> like the output dir, if they're not provided they just aren't used. >>>>> >>>>> It seems like deps should go under ~/.cache/charm-build/ >>>>> >>>>> On Wed, May 10, 2017 at 3:36 PM, Merlijn Sebrechts < >>>>> merlijn.sebrec...@gmail.com> wrote: >>>>> >>>>>> * Drop the "builds" portion of the output directory (that was mainly >>>>>>> to distinguish it from the series portion). >>>>>>> >>>>>> >>>>>> We still need to distinguish the charms from `deps` and possibly from >>>>>> `layers` and `interfaces`. >>>>>> >>>>>> This is my $JUJU_REPOSITORY: >>>>>> >>>>>> ├── charms >>>>>> │ ├── builds >>>>>> │ ├── deps >>>>>> │ ├── interfaces >>>>>> │ ├── layers >>>>>> >>>>>> >>>>>> 2017-05-10 20:03 GMT+02:00 Cory Johns <cory.jo...@canonical.com>: >>>>>> >>>>>>> Started on https://github.com/juju/charm-tools/pull/320, I'd like >>>>>>> to bring this discussion to the list. >>>>>>> >>>>>>> The output directory for charm build can vary in seemingly >>>>>>> unpredictable ways depending on how it is called, the environment, and >>>>>>> the >>>>>>> charm's metadata.yaml contents. This is due to historical reasons, >>>>>>> primarily with how Juju 1.x worked and how charm paths worked prior to >>>>>>> the >>>>>>> advent of multi-series charms. However, now that 2.x and multi-series >>>>>>> support are standard, I would like to push for simplifying the output >>>>>>> directory, based on Merlijn's PR. >>>>>>> >>>>>>> Specifically, I'd like to push for the following changes: >>>>>>> >>>>>>> * Drop the series portion of the output directory (we recommend >>>>>>> providing the series in the charm's metadata, making it redundant in the >>>>>>> path). >>>>>>> * Drop the "builds" portion of the output directory (that was mainly >>>>>>> to distinguish it from the series portion). >>>>>>> * Drop the current directory as a fallback option for the output >>>>>>> directory (it causes more confusion than it saves). >>>>>>> >>>>>>> Thus, charm build would always require an output directory to be >>>>>>> given either via --output-dir (-o) or via the $JUJU_REPOSITORY >>>>>>> environment >>>>>>> variable, and would always put the built charm in >>>>>>> $output_dir/$charm_name >>>>>>> >>>>>>> Obviously, this is not backwards compatible, and may affect >>>>>>> automated build systems, but I think it would be easy to adjust for and >>>>>>> simplify things for everyone concerned. >>>>>>> >>>>>>> Thoughts? Objections? >>>>>>> >>>>>>> -- >>>>>>> Juju mailing list >>>>>>> Juju@lists.ubuntu.com >>>>>>> Modify settings or unsubscribe at: https://lists.ubuntu.com/mailm >>>>>>> an/listinfo/juju >>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >>> -- >>> Juju mailing list >>> Juju@lists.ubuntu.com >>> Modify settings or unsubscribe at: https://lists.ubuntu.com/mailm >>> an/listinfo/juju >>> >>> >> > > -- > Juju mailing list > Juju@lists.ubuntu.com > Modify settings or unsubscribe at: https://lists.ubuntu.com/ > mailman/listinfo/juju > >
-- Juju mailing list Juju@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/juju