Contributing to Trisquel Tutorial
Hi everyone. I'm a beginner with GNU/Linux, but I am interested in writing atutorial on how to contribute to various aspects of the project. Right now it seems the initial barrier is quite high and DIY. I udnerstand this may be for a reason, but I do believe that there are people who could benefit from a "primer" on getting started with contributing. I have a technical and creative background so I feel suited to the task. i just may need to have a conversation with some of you so I can get things started. How does this sound to everyone?
I see I have one +1 on my post so I suppose someone is reading.
My first question, should I teach how to contribute via Gitlab or Github?
Gitlab link:
https://devel.trisquel.info/explore
Github link:
https://github.com/trisquelgnulinux/trisquel-packages/tree/master/8.0
It is better to use Gitlab.
OK, so once logged into the gitlab page, do I need to generate an SSH key to contribute? can we use HTTPS? and then what?
Well, I'd vote for Savannah instead of GitLab or GitHub. :)
--
- [[https://libreplanet.org/wiki/User:Adfeno]]
- Palestrante e consultor sobre /software/ livre (não confundir com
gratis).
- "WhatsApp"? Ele não é livre, por isso não uso. Iguais a ele prefiro
GNU Ring, ou Tox. Quer outras formas de contato? Adicione o vCard
que está no endereço acima aos teus contatos.
- Pretende me enviar arquivos .doc, .ppt, .cdr, ou .mp3? OK, eu
aceito, mas não repasso. Entrego apenas em formatos favoráveis ao
/software/ livre. Favor entrar em contato em caso de dúvida.
More than anything I want this tutorial to be accessible to anyone inside and outside of the GNU community. I will make a Savannah section, probably will have Github too. I think its OK to use non-free software to create free software.
Well, GNU Savannah accepts projects with Git, Svn, Bazaar, Mercurial,
and any other I don't know about. :)
Also, different from GitHub, Savannah's Git (and probably Trisquel
GitLab's Git) removes the whole concept of having to fork in order to
contribute, and then having to use some buttom in order to request a
merge, because it encourages direct patches/contributions.
I do have to note that your first question seemed as to be referring
that the guide would be put on either GitLab or GitHub. So this is why
I'm suggesting Savannah as a place to put the guide in, unless of course
we can create a repository in Trisquel's GitLab.
Or better than a repository: Use the existing Trisquel wiki. :)
My intent is to have this eventually be a wiki on this site. My issue wit hSavannah is the interface is hideous, as is usually the issue with GNU software. Professionally, I am an artist and designer. the popularity of Github I believe has largely to do with a very nice and sleek interface (that just works). In due time I hope I can help GNU things look and feel better.
Unfortunately, I feel we need to make FLOSS more attractive to the average sleeping person who unknowingly is giving up all their freedoms. I hope that if I can make Trisquel more accessible, then things can improve.
Well, I'm sorry to say that, but GitHub --- one of various Git service
providers --- is graded F (worse) in terms of alignment with free/libre
software. "Open source" proponents, in the contrary, like it very much.
For GitHub's grade, see
[[https://www.gnu.org/software/repo-criteria-evaluation.html#GitHub]].
One alternative is to use the Trisquel wiki, or to use Trisquel's GitLab
(which is in the right side of the Trisquel website, "Code" link).
I know :) I think its OK to use non-free software/methods to work on and create free software. The point is to transition the masses to prefer free software/ methods. I like a pragmatic approach.
Yeah, GitLab is anti-competitive. They killed Gitorious!!!
Contributing to Trisquel Development
1) Go to https://devel.trisquel.info/explore and create an account by clicking "Sign In". If you don't already have an account fill out the text fields under "New user? Create an account". If you already have an account login by filling out your login info under "Existing user? Sign in"
2) Once logged in click on "trisquel / package-helpers" in the main body of the web page. You may see a message at the top of the screen that says "You won't be able to pull or push project code via SSH until you add an SSH key to your profile"
3) To create this SSH key...
To simplify you have to fork the Trisquel repo/packages in order to push & merge your package(s) or the one(s) you have chosen to update/modify.ie you make a local copy, make the changes, (pull) then push (upstream)[merge request]
Salman has made a good Tutorial about this here :
Trisquel Developer's Cookbook.
https://trisqueldev.salcomputing.com/package-helpers/
https://trisqueldev.salcomputing.com/basics-of-git/
https://trisquel.info/en/wiki/how-help
https://devel.trisquel.info/trisquel/package-helpers/blob/belenos/CONTRIBUTING.md
Thanks!. I will try to follow along these lines and see where I get stuck. I want the barrier to entry to get so low that even if someone doesnt know how to code they can help with anything they feel capable to do, such as documentation, translations, icons, etc.
and here's the source code: https://framagit.org/salman/trisqueldev feel free to fork it.
Thank you Salman ;-)
Your Trisquel developper Cookbook is very usefull and insightfull for those wishing to understand better on how all the process works
some more, usefull info
https://about.gitlab.com/2014/09/29/gitlab-flow/
I still have many fundamental questions that are not addressed after having a look at the Trisquel Cookbook. Lots of "why questions" like, why is contributing to Trisquel done through a package-helper? How does teh submission process work, etc. I hope to address this with my tutorial.
I have to say, for whatever reason in my life I always encounter these situations where I want to know something and it is very difficult to find the answer even for simple questions. For example, I asked 10 years ago which is a good programming langauge to start with and basically lead to a massive dissagreement. Today I would say javascript because its everywhere and lots of resources are available to learn from and is very similar to other languages. You wont learn everything but youll learn how to program.
Anyway, I want this information I want to compile to help Trisquel be abundantly available and easy to digest for everyone who loves Libre software.
"why is contributing to Trisquel done through a package-helper?"
Because automation is good. Packages from Ubuntu need modifying. Would you rather keep making those changes to that same package over and over (i.e., every time it gets updated in Ubuntu due to, say, security fixes or whatever) or would you rather work on a program one time that is capable of making those changes for you? The only work that needs doing in the future is to fix the Helper if/when it needs it. This is less work in the long run. Automation for the win! :)
I love automation! I know its a newb question, but I am not purely a developer. I have some experience with coding stuff in extendscript, javascript, python and C++. Mostly toy programs. Because I don't know the structure of a distro or how to process its packages, and barely know exactly what a package is (in a way that woudl allow me to create one), I have lots of "basic" questions such as this that a newcomer would have to discover/ ask about.
So, you mean to say the package helpers, block and allow certain packages from being included in the trisquel repositories? Are their any examples of what a package helper looks like? I think I just need to see an example with context.
This is the easiest type of a package helper: https://devel.trisquel.info/trisquel/package-helpers/blob/flidas/helpers/make-p7zip
read it and if you had any question ask. (but in a separate topic)
all package helpers are here: https://devel.trisquel.info/trisquel/package-helpers/tree/flidas/helpers
"So, you mean to say the package helpers, block and allow certain packages from being included in the trisquel repositories? "
Not exactly. There is another thing called ubuntu-purge that's used to blacklist things:
https://devel.trisquel.info/trisquel/ubuntu-purge Helpers are used used when packages need to be modified for one reason for another. If a package does not need any modifications at all then I don't think it would need a helper.
All of the package helpers live in https://devel.trisquel.info/trisquel/package-helpers
Click on Files on the left side and you can start looking around. In the one called make-linux for example it's applying some patches, running the Linux-libre deblob script, changing the name from Ubuntu to Trisquel, etc.
Or if you want to look at the one for Liferea it adds in some RSS feeds that don't exist in Ubuntu, like the RSS feed the Free Software Foundation and for the Trisquel forums.
https://devel.trisquel.info/trisquel/package-helpers/blob/belenos/helpers/make-liferea
That was done because someone -- somewhere -- thought that it would be good if Trisquel's copy of Liferea came with those RSS feeds by default. And so, a package helper would have been needed to change the package coming from Ubuntu.
*pats self on back to be willing to answer the "stupid" questions* ;)