I've implemented option 1:

 error if Series attribute is used at all with a store charm URL

Trivial to change if needed.

On 10/03/16 12:58, Ian Booth wrote:
> Yeah, agreed having 2 ways to specify store series can be suboptimal.
> So we have 2 choices:
> 
> 1. error if Series attribute is used at all with a store charm URL
> 2. error if the Series attribute is used and conflicts
> 
> Case 1
> ------
> 
> Errors:
> 
> Series: trusty
> Charm: cs:mysql
> 
> Series: trusty
> Charm: cs:trusty/mysql
> 
> Ok:
> 
> Series: trusty
> Charm: ./mysql
> 
> 
> Case 2
> ------
> 
> Ok:
> 
> Series: trusty
> Charm: cs:mysql
> 
> Series: trusty
> Charm: cs:trusty/mysql
> 
> Series: trusty
> Charm: ./mysql
> 
> Errors:
> 
> Series: xenial
> Charm: cs:trusty/mysql
> 
> 
> On 10/03/16 12:51, Rick Harding wrote:
>> Bah maybe you're right. I want to sleep on it. It's kind of ugh either way.
>>
>> On Wed, Mar 9, 2016, 9:50 PM Rick Harding <rick.hard...@canonical.com>
>> wrote:
>>
>>> I think there's already rules for charmstore charms. it uses the default
>>> if not specified. I totally agree that for local charms we have to have
>>> this. For remote charms though this is providing the user two ways to do
>>> the same thing
>>>
>>> On Wed, Mar 9, 2016, 9:46 PM Ian Booth <ian.bo...@canonical.com> wrote:
>>>
>>>> If the charm store charm defines a series in the URL, then we will
>>>> consider it
>>>> an error to specify a different series using the attribute. But charm
>>>> store URLs
>>>> are not required to have a series, so we can use the attribute in that
>>>> case. It
>>>> also allows users to easily switch between store and local charms during
>>>> development just by replacing "./" with "cs:"
>>>>
>>>>      nova-compute:
>>>>        series: xenial
>>>>        charm: ./nova-compute
>>>>
>>>>      nova-compute:
>>>>        series: xenial
>>>>        charm: cs:nova-compute
>>>>
>>>>
>>>> On 10/03/16 12:21, Rick Harding wrote:
>>>>> I'm not sure we want to make this attribute apply to charmstore charms.
>>>>> We've an established practice of the charmstore url being the series
>>>>> information. It gives the user a chance to have conflicting information
>>>> if
>>>>> the charmstore url is cs:trusty/nova-compute and the series attribute is
>>>>> set to xenial. I think we should toss an error to a bundle that has
>>>> series:
>>>>> specified for a charmstore based charm value (or non-local value
>>>> whichever
>>>>> way you want to think about it)
>>>>>
>>>>> On Wed, Mar 9, 2016 at 6:29 PM Ian Booth <ian.bo...@canonical.com>
>>>> wrote:
>>>>>
>>>>>> One additional enhancement we need for bundles concerns specifying
>>>> series
>>>>>> for
>>>>>> multi-series charms, in particular local charms now that the local repo
>>>>>> will be
>>>>>> going away.
>>>>>>
>>>>>> Consider:
>>>>>>
>>>>>> A new multi-series charm may have a URL which does not specify the
>>>> series.
>>>>>> In
>>>>>> that case, the series used will be the default specified in the charm
>>>>>> metadata
>>>>>> or the latest LTS. But we want to allow people to choose their own
>>>> series
>>>>>> also.
>>>>>>
>>>>>> So we need a new (optional) Series attribute in the bundle metadata.
>>>>>>
>>>>>> bundle.yaml
>>>>>>   series: trusty
>>>>>>   services:
>>>>>>     nova-compute:
>>>>>>       series: xenial <------ new
>>>>>>       charm: ./nova-compute
>>>>>>       num_units: 2
>>>>>>
>>>>>> or with a charm store charm
>>>>>>
>>>>>> bundle.yaml
>>>>>>   series: trusty
>>>>>>   services:
>>>>>>     nova-compute:
>>>>>>       series: xenial    <------ new
>>>>>>       charm: cs:nova-compute
>>>>>>       num_units: 2
>>>>>>
>>>>>>
>>>>>> Note: the global series in the bundle still applies if series is not
>>>>>> otherwise
>>>>>> known.
>>>>>> The new series attribute is per charm.
>>>>>>
>>>>>> So in the case above, cs:nova-compute may ordinarily be deployed on
>>>> trusty
>>>>>> (the
>>>>>> default series in that charm's metadata). But the bundle requires the
>>>>>> xenial
>>>>>> version. With the charm store URL, we can currently use
>>>>>> cs:xenial/nova-compute
>>>>>> but that's not the case for local charms deployed out of a directory.
>>>> We
>>>>>> need a
>>>>>> way to allow the series to be specified in that latter case.
>>>>>>
>>>>>> We'll look to make the changes in core initially and can followup later
>>>>>> with the
>>>>>> GUI etc. The attribute is optional and only really affects bundles with
>>>>>> local
>>>>>> charms.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 09/03/16 09:53, Ian Booth wrote:
>>>>>>> So to clarify what we'll do. We'll support the same syntax in bundle
>>>>>> files as we
>>>>>>> do for deploy.
>>>>>>>
>>>>>>> Deploys charm store charms:
>>>>>>>
>>>>>>> $ juju deploy cs:wordpress
>>>>>>> $ juju deploy wordpress
>>>>>>>
>>>>>>> Deploys a local charm from a directory:
>>>>>>>
>>>>>>> $ juju deploy ./charms/wordpress
>>>>>>> $ juju deploy ./wordpress
>>>>>>>
>>>>>>> So below deploys a local nova-compute charm in a directory co-located
>>>>>> with the
>>>>>>> bundle.yaml file.
>>>>>>>
>>>>>>>  series: trusty
>>>>>>>  services:
>>>>>>>    nova-compute:
>>>>>>>      charm: ./nova-compute
>>>>>>>      num_units: 2
>>>>>>>
>>>>>>> This one deploys a charm store charm:
>>>>>>>
>>>>>>>  series: trusty
>>>>>>>  services:
>>>>>>>    nova-compute:
>>>>>>>    charm: nova-compute
>>>>>>>    num_units: 2
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 09/03/16 03:59, Rick Harding wrote:
>>>>>>>> Long term we want to have a pattern when the bundle is a directory
>>>> with
>>>>>>>> local charms in a directory next to the bundles.yaml file. We could
>>>> not
>>>>>> do
>>>>>>>> this cleanly before the multi-series charms that are just getting out
>>>>>> the
>>>>>>>> door. I think that bundles with local charms will be suboptimal
>>>> until we
>>>>>>>> can get those bits to line up.
>>>>>>>>
>>>>>>>> I don't think we want to be doing the file based urls, but to build a
>>>>>>>> pattern that's reusable and makes sense across systems. Creating a
>>>>>> standard
>>>>>>>> pattern I think is the best path forward.
>>>>>>>>
>>>>>>>> On Tue, Mar 8, 2016 at 12:26 PM Martin Packman <
>>>>>> martin.pack...@canonical.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> On 05/03/2016, Ian Booth <ian.bo...@canonical.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>> How will bundles work which reference local charms? Will this
>>>> work as
>>>>>>>>>>> expected where nova-compute is a directory at the same level as a
>>>>>> bundle
>>>>>>>>>>> file?
>>>>>>>>>>>
>>>>>>>>>>> ```
>>>>>>>>>>> series: trusty
>>>>>>>>>>> services:
>>>>>>>>>>>   nova-compute:
>>>>>>>>>>>     charm: ./nova-compute
>>>>>>>>>>>     num_units: 2
>>>>>>>>>>> ```
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> The above will work but not until a tweak is made to bundle
>>>>>> deployment to
>>>>>>>>>> interpret a path on disk rather than a url. It's a small change.
>>>> This
>>>>>>>>> would
>>>>>>>>>> be done as part of the work to remove the local repo support.
>>>>>>>>>
>>>>>>>>> Can we keep interpreting the the reference in the bundle as a url,
>>>> but
>>>>>>>>> start supporting file urls? That seems neater than treating the cs:
>>>>>>>>> prefix as magic not-a-filename.
>>>>>>>>>
>>>>>>>>> The catch is that there's no sane way of referencing locations
>>>> outside
>>>>>>>>> a base url.
>>>>>>>>>
>>>>>>>>>     charm: file:nova-compute
>>>>>>>>>
>>>>>>>>> Works as a reference to a dir inside the base location, but:
>>>>>>>>>
>>>>>>>>>     charm: file:../nova-compute
>>>>>>>>>
>>>>>>>>> Will not work as a reference to a sibling directory. And absolute
>>>> file
>>>>>>>>> paths are pretty useless across machines.
>>>>>>>>>
>>>>>>>>> Martin
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Juju-dev mailing list
>>>>>>>>> Juju-dev@lists.ubuntu.com
>>>>>>>>> Modify settings or unsubscribe at:
>>>>>>>>> https://lists.ubuntu.com/mailman/listinfo/juju-dev
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
> 

-- 
Juju-dev mailing list
Juju-dev@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/juju-dev

Reply via email to