If not already, register on Github. It's a place where all open-source lives and breathes. For free!
Then create a repository with New Repository button.
- name should be explicit
- noun... well pretty same rules as for class naming
- if you wrap or extend some other service/package, prefix with it
- it's like headline – everyone should have clue what it does without peaking on readme
- don't be cool... you already are!
Nice theory. What about some examples?
- good names: Datagrid, ImageResizer, DoctrineFilters
- bad names: TomasPackage, DoctrineExtras, Translate
That's all you need now. Hit "Create repository" and you are done!
Now we practise first few git lines.
Move to the directory, where you want to host your package locally.
Open command line or Terminal in PHPStorm. Actually the PHPStorm way will open terminal already in right place. So you don't have to browse directories via
And call these commands there.
Do you know git?
Just follow commands, that appeared on your Github repository and skip to next headline.
echo "# OpenSourcePackageDemo" >> README.md git init git add README.md git commit -m "first commit" git remote add origin [email protected]:TomasVotruba/OpenSourcePackageDemo.git git push -u origin master
These commits can be divided into 2 groups:
- to setup repository, just once
- to add some code, use repeatedly
Create an empty repository git repository
Add ONLINE address where we want publish your code
git remote add origin [email protected]:TomasVotruba/OpenSourcePackageDemo.git
Create a file README.md and add "Unziping Package" in it (this is just command line for geeks, I do this manually in my PHPStorm of course)
echo "Unziping Package" >> README.md
Tell git to NOTICE this file to be added later
git add README.md
Group all NOTICED files to single COMMIT (group of changes)
git commit -m "first commit"
Send ALL COMMITS online. Now your local system and Github repository are synced 1:1
git push -u origin master
Just feel the smell of success.
Some of them I've already mentioned. Other will follow in next 2 articles.
Before creating next package, just go trough it to remind yourself what is most relevant.
What have you learned today?
- That OS stands for open-source. You can also find OSS as for open-source software.
- How to create proper OS repository.
- How to add few lines there with git.
- How does package skeleton make your work much easier.
- What are repository meta files.
- How and why to use badges.
Did you came across some error or wtf? Is it boring, too long or too vague? Just write me a comment. I want to make this series bulletproof and as much as helpful as possible.
You will help thousands of others if you help me to fix one issue.
- How to write open-source in PHP 2: Rise value of your package with help of skeleton
- How to Decouple Monolith like a Boss with Composer Local Packages
- How to write Open-Source in PHP 3: Deprecating Code
- How Monolithic Repository in Open Source saved my Laziness
- How to Deprecate PHP Package Without Leaving Anyone Behind