Code Monkey home page Code Monkey logo

registrator.jl's Introduction

Registrator

Build Status CodeCov

"amelia robot logo"

Registrator is a GitHub app that automates creation of registration pull requests for your julia packages to the General registry. Install the app below!

Install Registrator:

install

How to Use

There are two ways to use Registrator: a web interface and a GitHub app.

Via the Web Interface

This workflow supports repositories hosted on either GitHub or GitLab.

Go to https://pkg.julialang.org/registrator/ and follow the instructions. There are also more detailed instructions here.

Via the GitHub App

Unsurprisingly, this method only works for packages whose repositories are hosted on GitHub.

First, install the app on your package(s) as mentioned above. The procedure for registering a new package is the same as for releasing a new version.

  1. Set the Project.toml version field in your repository to your new desired version.
  2. Comment @JuliaRegistrator register on the commit/branch you want to register (e.g. like here or here).
  3. If something is incorrect, adjust, and redo step 2.
  4. If the automatic tests pass, but a moderator makes suggestions (e.g., manually updating your Project.toml to include a [compat] section with version requirements for dependancies), then incorporate suggestions as you see fit into a new commit, and redo step 2 for the new commit. You don't need to do anything to close out the old request.
  5. Finally, either rely on TagBot to tag and make a github release or alternatively tag the release manually.

Registrator will look for the project file in the master branch by default, and will use the version set in the Project.toml file via, for example, version = "0.1.0". To use a custom branch comment with:

@JuliaRegistrator register branch=name-of-your-branch

The old pseudo-Julia syntax is also still supported:

@JuliaRegistrator register(branch="foo")

Transitioning from REQUIRE to Project.toml

Download gen_project.jl, enter in your package directory and run julia gen_project.jl, resulting in a Project.toml file. You may need to do minor modifications (license, current version, description, etc.) and then remove the REQUIRE file, since it is only used for packages supporting Julia 0.6 and is otherwise irrelevant now.

Check that your package conforms to the required Project.toml structure found in the general package guidelines.

Details for triggering JuliaRegistrator (for step 2 above)

Either:

  1. Open an issue and add @JuliaRegistrator register as a comment. You can re-trigger the registrator by commenting @JuliaRegistrator register again (in case registrator reports an error or to make changes).
  2. Add a comment to a commit and say @JuliaRegistrator register.

Note: Only collaborators on the package repository and public members on the organization the package is under are allowed to register. If you are not a collaborator, you can request a collaborator trigger registrator in a GitHub issue or a comment on a commit.

If you want to register as a private member you should host your own instance of Registrator, see docs.md

Release notes

If you have enabled TagBot on your repositories, then you may write your release notes in the same place that you trigger Registrator, or allow them to be automatically generated from closed issues and merged pull requests instead. These can later be edited via the GitHub releases interface.

To write your release notes, add a section labeled "Release notes:" or "Patch notes:" to your Registrator trigger issue/comment, after the @JuliaRegistrator trigger. For example,

@JuliaRegistrator register

Release notes:

Check out my new features!

Note that if you have not enabled TagBot, no release will be made at all, and so any release notes you write will not be used.

Note on git tags and GitHub releases

The Julia package manager does not rely on git tags and GitHub releases. However, Registrator will generate a git tag command for you to optionally create a corresponding tag with your package version, or you can use TagBot as is mentioned above.

Approving pull requests on the registry

Currently, a registry maintainer will manually merge the pull request made by Registrator. We will soon have a CI system to check and auto-merge without human intervention.

Private packages and registries

Private packages will be ignored by the current running instance of Registrator. Please see docs.md on how to host your own Registrator for private packages.

For more info on running your own instance of Registrator, see the documentation in docs.md

registrator.jl's People

Contributors

nkottary avatar christopher-dg avatar tanmaykm avatar stefankarpinski avatar iamed2 avatar fredrikekre avatar ianbutterworth avatar cormullion avatar tpoisot avatar simonbyrne avatar dlfivefifty avatar pfitzseb avatar visr avatar joshday avatar eford avatar arunjose1995 avatar chakravala avatar ararslan avatar

Watchers

James Cloos avatar TRΛNS-GIRL.C0DΞS avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.