Git Product home page Git Product logo

contributor-summit-project's Introduction

Contributor Summit Project Template

Contributor Summit project month is an experimental new format that builds on hack sessions from past Contributor Summits and refocuses on long-term sustainability. We're hoping that not only do you get a supported chance to play with some of our new technology, but you can build it into something that contributes to the larger DevOps community. We'll kick things off at Puppetize Live and make our first releases at Contributor Summit Online, so this is a month-long collaborative hackathon!

We'll work with you throughout the month to help you maximine the value of your time and reduce the amount of overhead you'll have to handle. See below for some of the ways that Puppet can collaborate with you.

There are no real restrictions on what projects you can choose, only two suggestions:

  1. You should be able to complete an MVP release in one month.
  2. The project should contribute something positive to the world of DevOps.

This means that your project could be anything from a Puppet module, to a CI or testing framework, to enhanced documentation for another project, to a process or pattern proposal. The possibilities are endless!

We're glad that you're joining us on this adventure. It will be fun!

Getting Started

It's easy to get going. We'll ask that you follow these steps and work from this repository because it will make it much easier for us to keep track of who's working on what projects and what your status is.

GitHub has a useful tutorial if you need help with any of these steps.

  1. Start off by creating a free GitHub account, if you don't already have one.
  2. Fork this repository to your own namespace by clicking the Fork button in the top right of this page.
    • Remember to fork to your own namespace if you're a member of one or more organizations.
  3. Now clone the repository to your own workstation.
    • Open your terminal window and navigate to the directory where you'd like to keep the local copy of your repository.
    • Run the command git clone https://github.com/<your username>/contributor-summit-project
  4. Run the setup script to populate issues and milestones.
    1. Install a Ruby runtime if needed.
    2. Run the command ./setup.rb
  5. Tell us about your project:
    1. You'll need to create your project charter first
    2. Submit your project

Using GitHub features

GitHub includes some optional repository features that you might be interested in. Open the Options page to check them out.

GitHub Wikis

You might choose to keep your project documentation in a Wiki to enable low-friction collaborative editing. If you're creating a Puppet Module, you should use the standard README.md and REFERENCE.md documentation pattern instead.

Reference the GitHub documentation if you'd like more information.

GitHub Projects

Project boards help you organize and prioritize your work. They are made up of issues, pull requests, and notes organized as cards in columns. You can drag and drop the cards and columns as needed. Get started by enabling the feature, then creating a new board. Starting from a basic Kanban template will likely be the easiest way to get started.

Reference the GitHub documentation if you'd like more information.

Collaboration Resources Provided

We would like to help ensure your success. We'll be working with you to help keep your projects on track. We'll help you define your project scope and set roadmap goals, then check in with you roughly weekly. (Milestones are scheduled for each Wednesday, but the actual checkin date & time will vary.) In addition, during the project month we'll provide several resources and services that you might not otherwise have access to.

Some of the resources will be provided via webinars or by downloaded materials and some will be provided as short one-on-one chats or video consulations. The Puppet community team will coordinate with each of you to ensure that you receive all the help you need.

See the resources list to see examples of what we could offer.

Project Ideas

If you need a little inspiration to come up with a project idea, we've put together a list of some suggestions. Feel free to use what you'd like from here, no credit is needed.

If you'd like to collaborate with others for your project, please put a prominent note in your project's README.md and socialize your idea in the #contributor-summit Slack channel. And conversely, if you're looking to join a project, browse the forks and see if any look exciting.

Questions?

  • Can I work on an existing project?
    • Sure! It would help us keep track of projects if you forked this repository and add your charter and a link to the actual project repository as the README.md
  • Can I work on something that's not software?
    • Absolutely. Use this month to write a DevOps book, if you'd like! As you're defining your roadmap, you'll want to massage the issue queue to be more useful for the kind of project you want to work on.
  • How will we communicate during the project month?
  • Does this work count towards Hacktoberfest?
    • Most certainly! As long as the projects you're contributing to are public projects on GitHub, then any pull requests you make in the month of October will count towards the challenge.
  • Can I change the name of my repository?
    • After the fork & clone are complete, you may change the name of the repository to match your project name better if you'd like.
  • Why does the setup script ask for my GitHub credentials?
    • The script uses your credentials to configure your fork of the project repository. If you're using two-factor authentication, it will request a 2fa code and use that to create a temporary personal access token that's deleted at the end of the script.
    • The script is very short and clear. Please audit it to ensure no funny business.
    • If you're still not comfortable with this, then see the next question.
  • What if I can't run the setup script?
    • The script just turns on the Issues queue and duplicates the milestones and issues from the template repository. You can do that manually if needed.
  • What if I have other questions?

contributor-summit-project's People

Contributors

binford2k avatar raphink avatar

Watchers

 avatar  avatar

contributor-summit-project's Issues

Implement tests

Implement feature and unit tests as you're building out your class structure.

Fill out the the issue queue

Edit the issue queue on this repository to match the needs of your project. Add issues as needed, remove or close irrelevant issue, move the issues between milestones, etc.

Build a feedback plan

Think back to your charter. You identified some metrics that would identify whether this project was a success or not. With the release next week, how will you measure these metrics? How will you identify course corrections for the future? Put together a quick plan for answering these three questions:

  • Did the project fully solve the problem that it was designed to address?
  • What can you do next to iterate and deliver more benefits?
  • What lessons did you learn for future work on this or other projects?

This can be as formal or not as you choose. If your chosen success metrics orient around download count or repository forks, then maybe all you need is a comment closing this issue with a link to your repository insights. If something more formal would help you, then write out your plan and determine how you'll execute on it.

Remember that you can ask Puppet project managers for advice, and you can reach out to individuals you've worked with to provide feedback on the process and the project.

Write reference docs

This is where you put the API reference, or all the parameter options, or whatever gory details your project requires. If this is a Puppet module, put this documentation in REFERENCE.md using these instructions.

Create release

Create the initial release. Depending on the type of project, this might mean writing your .gemspec and building a gem or it might mean writing a metadata.json for a Puppet module.

Install instructions

If your project is a thing that requires installation, then write installation & configuration docs. Remember your audience--this might just be gem install <projectname> or it might be more involved. Remember to document any dependencies or required setup.

Create a project charter

Mission: What are you building or solving ?

I would like to setup multi hosts acceptance tests with beaker for module voxpupuli/openvpn.

For the moment, i enabled a minimal acceptance tests set with only one puppet node. But, with openvpn we have to support server and client side. We can not test well with server and client on same node.

End users: Who will derive value from what you're building? How will you reach them?

My work will be reviewed by others members of Voxpupuli. I can reach them but IRC as usual.

Vision: Why build this? What transformational change will this encourage?

In VP modules, we do not have any module running acceptance tests with several nodes. This module will show to others how to build acceptance tests with several nodes.

Success criteria: How will we know if we've succeeded?

  • 1st step : at the end of this summit , the module will have acceptance tests running with several nodes.
  • 2sd step : after the end of the summit (or during, it depends of time consumed by step 1) , it will be possible to test effectively around the issue declared here : voxpupuli/openvpn#211
  • 3rd step : out of this summit, others contributors and VP collaborators can use multi node tests when it is needed.

Constraints: What non-negotiable constraints must be navigated?

I am in France and so, with time shift, it can be difficult to talk synchronously with Portland.
Even if i use puppet for my job, i work about this on my free time.
I am more ops then dev.
My work station is with Linux.

Assumptions: What assumptions are we making that might affect our success if they were to change?

N/A i suppose.

Team members: Who is working on the project? Are there any other stakeholders?

I work alone on this project. I said on IRC i registered about this topic, and online peoples reacted positively. As always, i can talk with others online VP members.

Readme explaining the project purpose

Write a user-facing README.md that describes the project. You can use the charter as inspiration. You'll come back to it and add installation and usage docs later, but for now an end user reading this should be able to understand what the project is and what it does.

Unit testing framework created

Configure your spec testing framework. If this is a Puppet module, the PDK will have done this for you automatically.

Create roadmap

Now that you've built a few things and you've had some time to gather feedback, it's time to design a roadmap for the future. We're going to make our initial releases next week, so now it's time to start thinking about what happens next.

Where do you want to go? Is it time to iterate and build a more complete and mature solution? Should the first release be discarded and lessons learnt guide a redesign?

Add more milestones for future releases and then put together some of the high level issues to describe your plans.

Create an elevator pitch

We will have time slots for presenting projects at Contributor Summit. If you'd like to participate, then put together a few words describing the problem that your project solves and how it works. You might have time for a few slides or a quick demo, depending on how many projects want to present.

Remember, this isn't a comprehensive exposé of every possible thing your project does. As it's often said, "The purpose of an elevator pitch is to describe a situation or solution so compelling that the person you're with wants to hear more after the elevator ride is over." Create some excitement!

Filesystem skeleton created

The project directory should be created with all the needed directories and support files. If you're creating a Puppet module, the PDK should be used for this!

Write usage docs

Add usage documentation to your README.md as appropriate. Remember that usage instructions are not the same thing as a reference. Write this section from a more high level and/or conceptual standpoint for a reader who just discovered your project 90 seconds ago.

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.