New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move CLI to drone-cli #2037

Closed
bradrydzewski opened this Issue May 11, 2017 · 12 comments

Comments

Projects
5 participants
@bradrydzewski
Member

bradrydzewski commented May 11, 2017

Why change back to a separate CLI repository? Some things have changed that makes this a more viable approach than it was before.

  1. the runtime is now in a separate repository that can be imported for use by drone exec
  2. the drone api is stabilizing
  3. the CLI is no longer required for daily use with the removal of the signature file

There is also a lot of community interest around improving the CLI. By decoupling the CLI from the core repository I hope to achieve the following:

  1. increase the pace of improvements
  2. reduce the number of outstanding pull requests
  3. increase the number of individuals with write access

@bradrydzewski bradrydzewski added this to To Do in Version 0.7 May 11, 2017

@bradrydzewski bradrydzewski moved this from To Do to In Progress in Version 0.7 May 14, 2017

@bradrydzewski

This comment has been minimized.

Show comment
Hide comment
@bradrydzewski

bradrydzewski May 15, 2017

Member

I've moved drone-cli to a separate project and setup a team with write access. This includes the following individuals so far @tboerger @appleboy @jmccann @Bugagazavr . I also added @Dorian who hasn't contributed to drone yet, but is doing some interesting things with https://github.com/Dorian/drone-builds

There are some things we might want need to figure out:

  1. how do we want to publish (s3 or github releases)
  2. brew script will need to be updated accordingly
  3. we should decide on a standard for output. For example tabular or list? We should pick one and keep things consistent so that the cli doesn't look like it was written by 10 different people 😛
  4. we should decide on error conventions
  5. when to use arguments vs flags? Does urfave/cli support our design?

Note that everyone will have the ability to merge pull requests, however, the branches are protected, meaning that an approval will be required before merging.

Member

bradrydzewski commented May 15, 2017

I've moved drone-cli to a separate project and setup a team with write access. This includes the following individuals so far @tboerger @appleboy @jmccann @Bugagazavr . I also added @Dorian who hasn't contributed to drone yet, but is doing some interesting things with https://github.com/Dorian/drone-builds

There are some things we might want need to figure out:

  1. how do we want to publish (s3 or github releases)
  2. brew script will need to be updated accordingly
  3. we should decide on a standard for output. For example tabular or list? We should pick one and keep things consistent so that the cli doesn't look like it was written by 10 different people 😛
  4. we should decide on error conventions
  5. when to use arguments vs flags? Does urfave/cli support our design?

Note that everyone will have the ability to merge pull requests, however, the branches are protected, meaning that an approval will be required before merging.

@appleboy

This comment has been minimized.

Show comment
Hide comment
@appleboy

appleboy May 15, 2017

Member
  1. vote github releases 👍
Member

appleboy commented May 15, 2017

  1. vote github releases 👍
@bradrydzewski

This comment has been minimized.

Show comment
Hide comment
@bradrydzewski

bradrydzewski May 15, 2017

Member

@appleboy I'm inclined to agreed. @jmccann thoughts? Would this work with homebrew?

Member

bradrydzewski commented May 15, 2017

@appleboy I'm inclined to agreed. @jmccann thoughts? Would this work with homebrew?

@bradrydzewski

This comment has been minimized.

Show comment
Hide comment
@bradrydzewski

bradrydzewski May 15, 2017

Member

I haven't used github releases. @tboerger is this something you could help setup?

Member

bradrydzewski commented May 15, 2017

I haven't used github releases. @tboerger is this something you could help setup?

@tboerger

This comment has been minimized.

Show comment
Hide comment
@tboerger

tboerger May 15, 2017

Member

I'm actively using github releases, but this works only for tags and not for "latest" builds.

Member

tboerger commented May 15, 2017

I'm actively using github releases, but this works only for tags and not for "latest" builds.

@bradrydzewski

This comment has been minimized.

Show comment
Hide comment
@bradrydzewski

bradrydzewski May 15, 2017

Member

but this works only for tags and not for "latest" builds.

maybe this is a good thing? It will force more frequent tagging ...

Member

bradrydzewski commented May 15, 2017

but this works only for tags and not for "latest" builds.

maybe this is a good thing? It will force more frequent tagging ...

@tboerger

This comment has been minimized.

Show comment
Hide comment
@tboerger

tboerger May 15, 2017

Member
  1. Maybe gitHub for tags and s3 for latest builds?
  2. Currently a manual step, but maybe we can script something based on tagging, at least to create a PR
  3. I really like the templateable list format we got
  4. Keep it like it is :P
  5. I personally build my cli stuf mostly on flags. But if we choose arge we must build a better help output than it's currently the case.
Member

tboerger commented May 15, 2017

  1. Maybe gitHub for tags and s3 for latest builds?
  2. Currently a manual step, but maybe we can script something based on tagging, at least to create a PR
  3. I really like the templateable list format we got
  4. Keep it like it is :P
  5. I personally build my cli stuf mostly on flags. But if we choose arge we must build a better help output than it's currently the case.
@jmccann

This comment has been minimized.

Show comment
Hide comment
@jmccann

jmccann May 15, 2017

Contributor

I like @tboerger thoughts for 1 and 2.

Contributor

jmccann commented May 15, 2017

I like @tboerger thoughts for 1 and 2.

@bradrydzewski

This comment has been minimized.

Show comment
Hide comment
@bradrydzewski

bradrydzewski May 22, 2017

Member

ok, a few thoughts

I'm trying to eliminate my s3 dependency so we'll host the CLI downloads on github releases. I've setup the integration and published the 0.6.0 release:
https://github.com/drone/drone-cli/releases

We will tag more frequent minor versions (ie 0.6.1...N) when we need to make newer CLI versions available. Everyone in this thread has the ability to tag a new release I believe.

I feel like we don't need to publish a latest version of the CLI because most people interested in the latest build can probably build from source. With /vendor in place and with the CLI separated from drone core it becomes much easier to install from source:

go get github.com/drone/drone-cli/drone

If we decide we really need a latest version published we can maybe check bintray in the future?

Member

bradrydzewski commented May 22, 2017

ok, a few thoughts

I'm trying to eliminate my s3 dependency so we'll host the CLI downloads on github releases. I've setup the integration and published the 0.6.0 release:
https://github.com/drone/drone-cli/releases

We will tag more frequent minor versions (ie 0.6.1...N) when we need to make newer CLI versions available. Everyone in this thread has the ability to tag a new release I believe.

I feel like we don't need to publish a latest version of the CLI because most people interested in the latest build can probably build from source. With /vendor in place and with the CLI separated from drone core it becomes much easier to install from source:

go get github.com/drone/drone-cli/drone

If we decide we really need a latest version published we can maybe check bintray in the future?

@bradrydzewski

This comment has been minimized.

Show comment
Hide comment
@bradrydzewski

bradrydzewski May 22, 2017

Member

@tboerger there are some CLI packages that are more optimized for args
https://github.com/alecthomas/kingpin

Member

bradrydzewski commented May 22, 2017

@tboerger there are some CLI packages that are more optimized for args
https://github.com/alecthomas/kingpin

@bradrydzewski bradrydzewski moved this from In Progress to Done in Version 0.7 May 22, 2017

@bradrydzewski

This comment has been minimized.

Show comment
Hide comment
@bradrydzewski

bradrydzewski May 22, 2017

Member

closing now that repository is moved

Member

bradrydzewski commented May 22, 2017

closing now that repository is moved

@Tzrlk

This comment has been minimized.

Show comment
Hide comment
@Tzrlk

Tzrlk May 29, 2017

Can someone quickly document the cli location on the main drone readme to avoid confusion?

Tzrlk commented May 29, 2017

Can someone quickly document the cli location on the main drone readme to avoid confusion?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment