I personally don't care where the CI runs, as long as it runs :)

Adding to that, it should run *for every merge proposal*, not just on
trunk (when it's too late). Travis is a time and cost effective way to
achieve this, but I'd be more than happy with whatever alternative
solution.

- Chris

On Wed, Aug 12, 2015 at 1:12 PM, Marco Ceppi <marco.ce...@canonical.com> wrote:
> I don't have a problem moving to github for the project. However, we have a
> lot of people contributing to the library already in launchpad and I would
> hate to disrupt that flow. I'm not sure if there's an advantage to moving to
> github at this moment in time if only to use travis. I'd be interested in
> more contributors feedback about moving before doing anything. Working with
> the Juju QA team to add a Jenkins job for test landing is a great idea, one
> we should certainly do now while we figure the rest of this out.
>
> On Wed, Aug 12, 2015 at 6:59 AM Christopher Glass <trib...@gmail.com> wrote:
>>
>> Small comment while mentioning charm-helpers:
>>
>> What I would really like to see is the project's tests running in CI,
>> before things start moving around. The last few times we ran them we
>> discovered many were broken (I suspect people need to put out fires
>> and don't bother running the tests before committing).
>>
>> Could we consider moving to i.e. github.com with travis? It's there,
>> it works, and somebody else is maintaining it (for free, no less).
>>
>> - Chris
>>
>> On Tue, Aug 11, 2015 at 3:42 PM, Marco Ceppi <marco.ce...@canonical.com>
>> wrote:
>> > Hello everyone,
>> >
>> > There have been a lot of conversations had over the past few months
>> > about
>> > charm-helpers and how to proceed forward with the project. As a result
>> > of
>> > these conversations I'd like to surface the following items for
>> > discussion:
>> >
>> > # Trimming down charm-helpers
>> >
>> > The first item, and arguably the largest is a complete reorganization of
>> > the
>> > current charm-helpers code base. Originally, charm helpers was setup to
>> > allow a path for developers to place unstable code (contrib directory)
>> > where
>> > they could iterate without a guarantee of API stability. However, this
>> > quickly grew to include code that simply didn't make sense as a "core"
>> > feature of charm-helpers. This includes a large set of code for domain
>> > specific charm ecosystems (bigdata, openstack, storage) as well as
>> > quickly
>> > fixes to missing features in Juju (leader election).
>> >
>> > The amount of collaborative code in contrib is fantastic! However, it's
>> > making the release and distribution of charm-helpers more complicated.
>> > With
>> > an inability to keep up with documentation for methods contrib and the
>> > "volatile" nature of "unstable API", I'd like to propose we completely
>> > remove the contrib directory and instead urge code maintainers in
>> > contrib to
>> > create their own libraries for the feature and code they wish to
>> > maintain
>> > going forward which simply depends on charm-helpers for the code in
>> > core.
>> >
>> > This will allow groups like bigdata, openstack charmers, storage, and
>> > others
>> > to maintain their own release and review process for helpers specific to
>> > their solutions, as well as their own means of delivery (be it
>> > charm-helpers-sync, pypi, debian, or another means). This will also
>> > GREATLY
>> > slim down the charm-helpers library to instead include one of two
>> > things:
>> >
>> > - API in Python for communicating with Juju
>> > - Simple collection of tools in Python to solve shared universal
>> > problems
>> >
>> > Which roughly translates to hookenv.py, host.py, and fetch tools. Once
>> > contrib is removed and relocated I'd like to also propose flattening the
>> > library namespaces from
>> >
>> > charmhelpers.core.hookenv -> charmhelpers.hookenv
>> > charmhelpers.core.host -> charmhelpers.host
>> > charmhelpers.core.files -> charmhelpers.host
>> > charmhelpers.core.fstab -> charmhelpers.host
>> > charmhelpers.core.sysctl -> charmhelpers.host
>> > charmhelpers.core.kv -> separate project?
>> >
>> > Everything else, outside of contrib would remain the same. While I think
>> > it's important to slim down charm-helpers I'm not convinced the above
>> > outlined rename/code merges are the right or best way forward. I welcome
>> > feedback and a discussion around this.
>> >
>> > # Packaging charm-helpers
>> >
>> > Currently, charm-helpers are available via either bazaar source or PyPI.
>> > With a more stable, slim, and maintainable code base we would like to
>> > package charm-helpers still on PyPI with semantic versioning, make a
>> > dist/wheel[0] available for embedding (instead of charm-helpers-sycn),
>> > and
>> > in Debian and have them available via a PPA but also potentially in the
>> > archive proper.
>> >
>> > The hardest challenge will be keeping the archive as up to date as
>> > possible
>> > with releases of charm-helpers. Since charms and Juju versions are
>> > decoupled
>> > from packages "frozen" in the archive, just having a version of
>> > charm-helpers in the archive for the version of Juju in that archive
>> > won't
>> > necessarily last the test of time. Someone deploying a charm now from a
>> > new
>> > version of Juju against trusty would get the 1.21 equivalent of
>> > charm-helpers which may not include the new leadership or extended
>> > status
>> > methods causing the charm to fail erroneously.
>> >
>> > Having a PPA can alleviate this, but PyPI and PPAs may interfere with
>> > firewalls and policies where Juju is being deployed. Opinions on how to
>> > help
>> > with this are appreciated. Otherwise, we may simply recommend authors to
>> > use
>> > a bit of bootstrap code which attempts to install from PyPI, with a
>> > fallback
>> > to install an embedded version of charmhelpers that was included in the
>> > charm as a dist/wheel.
>> >
>> > # Charm-helpers for other languages
>> >
>> > We already have charm-helpers written for three languages! Python[0],
>> > PowerShell[1], and Rust-lang[2]. By sliming down the charm-helpers we
>> > can
>> > define a minimum requirement that each new charm-helper language should
>> > expose. This will enable us to document charm-helpers more thoroughly
>> > and
>> > include code examples for each language supported in our docs. Also, by
>> > having a narrowly defined scope of methods, it enables other communities
>> > to
>> > create helpers for their languages.
>> >
>> > The PowerShell library was written by the folks at CloubBase, I had the
>> > chance to sit down with them a few months back and review how their
>> > structure looks. It's already very far along, includes unit testing, and
>> > matches the relative structure we have had in the Python charm helpers
>> > for
>> > some time. Going forward I'd like to continue this trend and sent some
>> > guidelines around future charm-helper libraries for other languages.
>> >
>> > # More exposure via the CLI
>> >
>> > Finally, we have a CLI interface for the charm-helpers python library.
>> > Recently there have been several merges which add exposure to additional
>> > methods and features of python charm-helpers. I'd like to continue this
>> > tend
>> > and add a CLI hook for everything in charm-helpers, within reason. A
>> > recent
>> > addition, by Cory Johns, enabled the internal key-value store in
>> > charm-helpers to be accesible via CLI. While making things like the
>> > "config_get" method available by CLI is silly, other key and core
>> > methods
>> > that exist as code in Python only and aren't a 1:1 bridge to Juju
>> > commands
>> > should also be made available. This will allow authors creating first
>> > drafts
>> > of charms in bash to access these higher methods.
>> >
>> > # Conclusion
>> >
>> > I welcome discussion, dissent, and suggestions around these topics. They
>> > are
>> > by no means set in stone but are the assumed plan at the moment.
>> >
>> > TL;DR: I want to make charm-helpers very slim, versioned, packaged,
>> > documented, and easily portable to other languages.
>> >
>> > Thanks,
>> > Marco Ceppi
>> > Juju Developer Experience group
>> >
>> > [0] http://pythonwheels.com/
>> > [1] https://github.com/cloudbase/juju-powershell-modules
>> > [2] https://crates.io/crates/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

Reply via email to