How many pedantic programmers does it take to change a lightbulb?
A: Change? Or replace?
(No, you need a good idea)
"Hey ... we should talk."
Use PowerShell to work with OpenStack
Problem #1: What's in a name?
Stackinator 5000
"Hey Don ... whatcha doin'?"
PoshStack
Posh = common shorthand for PowerShellStack = OpenStack
Problem #2: Where to put it?
github.com/DonSchenck/PoshStack
What's a good first commit?
README should include:
Description
Installation instructions
Configuration information
How to contribute
What about that second commit?
How about a document outlining the project?
How about the first piece of working code, something that demonstrates the approach it takes, i.e. frameworks, standards, etc.?
Oh, hey! ... Let's do another commit!
Just stop.
Wait.
Think.
At this point, ask yourself some questions:
Is this heading in the right direction?
Will some serious changes need to be made. BREAKING changes?
This is a public project
Remember; This is for public consumption. You may be two or three commits into it and already have people using this code. YOU NEED TO PROCEED CAREFULLY AND WITH A PLAN! So, what is a good cadence?
What is a good cadence? Let's talk about issues.
I have Issues
Ever since I was cut from the 8th grade basketball team…
No, seriously; Use Github Issues
Take the time necessary and plan ahead. Map out a development plan. Break it down into small, easily-completed steps, and turn those steps into Issues.
For my project, I created one issue for each SDK function.
That resulted in...
236 Issues?
What the...??
This would be a good time...
Milestones
Use them.
Don't make them too big. I did; You should not.
Oh glorious day!
My first Pull Request
Fire up the PR engine, we're going global
Twitter
Jerry Snover
PowerShell registry
Feedback! YAY ... FEEDBACK!
Uh...
Wait...I did what wrong?
Naming: No plurals
What about security?
What about signing the modules?
Get ready for some *serious* constructive criticism. Don't be thinned-skinned; put on the fire suit and get ready. Take EVERYTHING as a POSITIVE intention.
I TOLD YOU This is a public project!
YOU don't own this; it's a *public* project. It's open to public discussion and criticism and...
...public bug reporting, and...
...public HELP! (yay)
"We accept Pull Requests"
Help is on the way
People will start to take an interest.
It may start as emails, which YOU need to turn into Issues.
Encourage folks to CREATE ISSUES.
Don't forget where you need help: NOT just code ... documentation ... tests ... sample code.
Well-intentioned people may show interest but never show up to help.
The lull
Nothing. Crickets.
This is when you bear down and start The Work. You write code, you write documentation, you write sample code, you keep publicizing the effort and asking for help.
DO. NOT. QUIT.
Licensing?
LICENSING!
Apache 2.0 License seems to be the most liberal
Regaining lost momemtum
I.e. now it's work
Moving forward...
Does it have an end point, or does it constantly evolve?
1 / 73
OMG How Do I Start An Open Source Project?
Steps, missteps, and tips
Created by Don Schenck / @DonSchenck