Skip to content
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

Create 0.4 for branches for the currently available plugins #1675

Closed
tboerger opened this issue Jun 14, 2016 · 23 comments
Closed

Create 0.4 for branches for the currently available plugins #1675

tboerger opened this issue Jun 14, 2016 · 23 comments

Comments

@tboerger
Copy link

tboerger commented Jun 14, 2016

To track the progress of the branching for the 0.4 release I have opened this issue. Below you can see a list of plugins that have been branched or which should be branched before the migration to 0.5. Feel free to mark rows as done if I missed something!

Branch

Migrate

@metalmatze
Copy link

metalmatze commented Jun 14, 2016

👍 Does that mean, that the plugins will be available as docker images with a 0.4 tag? Is drone going to use them automatically?

@tboerger
Copy link
Author

tboerger commented Jun 14, 2016

Does that mean, that the plugins will be available as docker images with a 0.4 tag? Will drone use them automatically?

Not exactly. The release/0.4 branches will be pushed to plugins/drone-pluginname:latest while the following versions for drone 0.5 will be pushed to plugins/pluginname. So if you still got a 0.4 drone server you can still use the plugins as before even if the plugin is already migrated to 0.5.

@metalmatze
Copy link

I see, thanks!

@tboerger
Copy link
Author

But to directly answer the question, it will work out of the box with 0.4 and the same for 0.5 when the plugin is migrated.

@bradrydzewski
Copy link

I updated the list above. Note that some plugins have already been ported to 0.5 but the code is sitting in a release/0.5 branch

@donny-dont
Copy link

NPM has an open pull request drone-plugins/drone-npm#9

Slack Blame has work on https://github.com/drone-plugins/drone-slack-blame/tree/feature/0.5-update

@tboerger
Copy link
Author

So for the migration to 0.5 builds of the existing plugins there is only pushover pending. It's just pending because the author of the used go lib has removed the lib from github :(

@bradrydzewski
Copy link

bradrydzewski commented Jul 13, 2016

This is my initial thoughts on which plugins will be managed under the offiicial namespace. I will individually message top contributors of projects not in this list to take individual ownership.

There isn't really any well-defined criteria for what is official vs unofficial. These are some of the criteria I'm considering:

  1. is this plugin critical to drone core or the drone build / release process?
  2. is this plugin very heavily used by the drone community?
  3. is this plugin for a major commercial service (ie S3)
  4. is this plugin for a core unix utility (ie ssh)
  5. is this plugin simple and relatively feature complete?
  6. does this plugin require elevated privilege and strict code review (docker, grc)

The list ended up being a bit longer than initially expected, however, I expect most of these plugins will be mostly frozen with the exception of bug fixes. There will be a major focus on stability and I plan to heavily encourage developers to fork and extend as opposed to supporting every possible feature or configuration option.

official

  1. drone-ecr [ready]
  2. drone-docker [ready]
  3. drone-gcr
  4. drone-git [ready]
  5. drone-gitter [ready]

maybe official

  1. drone-email
  2. drone-github-release
  3. drone-gh-pages
  4. drone-heroku
  5. drone-webhook
  6. drone-coverage [ready]
  7. drone-downstream
  8. drone-git-push
  9. drone-google-cloudstorage
  10. drone-hg
  11. drone-npm [ready]
  12. drone-rsync
  13. drone-s3 (merge with s3-sync) [ready]
  14. drone-sftp-cache [ready]
  15. drone-slack [ready]
  16. drone-ssh

@tboerger
Copy link
Author

Feel free to transfer the ownership to drone-community :)

@gtaylor
Copy link

gtaylor commented Jul 13, 2016

This makes sense to me, and we can bend either way as needed.

Related: if we're making drone-gcr official, we should probably do the same for drone-ecr. Alternatively, I believe one or both of these can be done with drone-docker now. If that is indeed the case, we should nuke both of them. Removing just one might lead to confusion as to why the other exists. These two are getting lots of usage right now since they're built into two popular platforms and are incredibly cheap.

I don't feel strongly, but I figured I'd cast "Unofficial" votes for:

  • drone-github-release (The behaviors here can vary a bit. Punt to the community)
  • drone-gh-pages (Ditto)
  • drone-heroku (Maybe we could convince someone with Heroku ties to take this on?)

Official votes:

  • drone-email (Not sexy, but a chunk of users will expect this to be present and solid)
  • drone-ecr (See earlier statement, or nuke drone-gcr and drone-ecr entirely)

@bradrydzewski
Copy link

bradrydzewski commented Jul 13, 2016

I think drone-ecr and drone-gcr could actually just be simple scripts that wrap the main docker plugin and set a few default values. The drone-ecr plugin definitely needs to be a separate thing because aws doesn't use standard docker login, so we need to make a few AWS API calls before invoking docker login.

I'll probably test it out with gcr first, which may end up being just a simple bash script wrapper. We'll see though. I'm definitely open to ecr.


EDIT for reference, this is how we could wrap the docker plugin for gcr and ecr. We can inherit the docker plugin image, and invoke a wrapper script that can then invoke the plugin:

FROM plugins/docker:latest

ENTRYPOINT /bin/wrap-drone-docker.sh 

where the wrap-drone-docker.sh could do something like this:

#!/bin/sh

# map some gcr specific variable names to their docker equivalents
export DOCKER_USERNAME=_json_key
export DOCKER_PASSWORD=$GCR_TOKEN
export DOCKER_REGISTRY=gcr.io

# invoke the docker plugin
/bin/drone-docker "$@"

@sl1pm4t
Copy link

sl1pm4t commented Aug 16, 2016

I need the google-cloudstorage plugin, so I'm having a go at porting it to 0.5
Progress is over here.

@tboerger
Copy link
Author

tboerger commented Aug 16, 2016

So this is our final list of official 0.5 plugins:

  • drone-coverage
  • drone-docker
  • drone-downstream
  • drone-email
  • drone-gcr
  • drone-gh-pages
  • drone-git
  • drone-git-push
  • drone-github-release
  • drone-gitter
  • drone-google-cloudstorage
  • drone-hg
  • drone-npm
  • drone-rsync
  • drone-s3
  • drone-s3-sync
  • drone-sftp-cache
  • drone-slack
  • drone-ssh
  • drone-webhook

@tboerger
Copy link
Author

tboerger commented Aug 16, 2016

Just to clarify, the other remaining plugins are intended to be moved to the community, just the list mentioned one comment above will be maintained by the drone-plugins organization.

blackjid added a commit to platanus/drone-ecr that referenced this issue Aug 26, 2016
This rewrite was done make a wrapper over the drone-docker plugin as discussed in harness/gitness#1675 (comment)
@tonglil
Copy link

tonglil commented Sep 15, 2016

Is there any instructions on what it takes to migration/upgrade a plugin from 0.4 to 0.5?

Specifically major changes that need to be done? I have a custom (soon to be open sourced) Drone 0.4 Kubernetes plugin that is written (fortunately or not) with https://github.com/drone/drone-plugin-go.

@donny-dont
Copy link

@tonglil no nothing really. If you look at the list above you'll see pull requests that update to 0.5. Its pretty painless for the most part. If you have any particular questions you can ask on gitter.

@tboerger
Copy link
Author

https://github.com/drone/drone-plugin-starter that is a pretty good start, it's the blueprint for new 0.5 plugins

@appleboy
Copy link

appleboy commented Oct 4, 2016

I write some notification plugin like facebook, gtalk and line for drone 0.5 version.

@bradrydzewski
Copy link

@appleboy that is awesome. Hopefully we can have a plugin registry soon so that we can show them off to everyone!

@appleboy
Copy link

appleboy commented Oct 7, 2016

@bradrydzewski Awesome. I am looking forward to the plugin registry.

@appleboy
Copy link

Another two plugin as following for drone 0.5 version:

  • drone-jenkins Drone plugin for trigger Jenkins jobs.
  • drone-scp Drone plugin to copy files and artifacts via SSH.

@bradrydzewski
Copy link

I think we can close this, but if not, lets move to discourse

@tboerger
Copy link
Author

Yeah it's fine to close it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants