Hi, my name is Sindhu
and I'm gonna talk about
"Newcomer experience in Debian packaging"
"Who? Where? Why?"
From 2006 to 2009
were my first few years using
GNU/Linux systems and
I was majorly just distro hopping
kind of get the latest desktop and ??? everyone of them
and when I couldn't find the latest
packages I would install
things from the testing repositories
and it didn't make much of a difference, you know?
I would have the latest packages
and I soon learnt that testing and
devel package repositories where
really testing and that would be unstable and
break my system.
So I went back to fix my system
and for the next three years
this is what I was doing
you know... ???
Later I was looking for a career change
and a friend came along to teach me how to make a patch
this is about the time when Outreach Program for Women
was announced and
I became a Documentation Intern for GNOME
and I also went on to Google Summer of Code internship
with Gnome I contributed code to gitg project
and I'm now a mentor for Documentation interns
at the Outreach Program.
"What?"
My first failed attempt at packaging
was when I tried to package a
a ??? called cnetworkmanager
which is a command line
application to access network manager
and looking at the ??? documentation then
pretty overwhelming and
in retrospect I think that
I abandoned my efforts quickly
because I wasn't experienced in using GNU/Linux systems
and because there was a lot of documentation, truly.
My second failed attempt was as recent as last year
and I just wanted to package something for Fedora
and looking at the specs files and so many things to
do about it, I was quick to just dismiss it.
Other commitments came along
but this was a ???
"So then?"
My first job ??? two years
when I was contributing to GNOME, was
not just about learning for myself
but also teaching other newcomers
and helping people get into the community
Soon I was speaking to many newcomers on mailing lists
and in person teaching at local colleges
and events on how to contribute to GNOME
and subliminally
you know, you tend to summarise in your head
telling the same things to many different people
It's just really four steps to
start, to really start contributing to any project.
And that would be to go to the official website and
read the pages about how to help Project X
or "Get Involved" or "Help us" pages
and next step would be to set up the developement environment
and do your ground work
and find a willing mentor
who will be able to take you from there.
So, where's Debian in the picture?
"Enter Debian"
I have used Ubuntu extensively
and I knew my way around apt-get
but this is all I knew about Debian
and Debian based distributions
but learning about Debian MiniConf
made me realise that this is my opportunity to
change the memories I had about failing
something and it would be a great way to get a headstart
in such vibrant community
and start packaging.
"Choosing your tools"
Choosing your tools.
My first step to contributing to
Debian would be to get Debian!
I was an Arch Linux user and
there are a couple of things to keep in mind when you
try to contribute to a distribution.
For example, the time it takes to set up
and the time it takes to
transfer your work over this new distribution
and the disk space it would require
and whether or not your device...
...you can set up this distribution easily on your device
Not to mention the bandwidth required for
the Internet bandwidth required for
downloading and upgrading packages.
In GNOME, to make this transition easier
to have this quickstart with newcomers, we have
a virtual machine image preloaded
with our build system, so they can try it out and setup
they don't have to setup stuff from scratch
and when they're confident they can go set it up on disk
Debian didn't offer me any
such - you know - instant noodle like
VM image but, it wasn't hard to set up
so I went about using another fast project called Vagrant
and I made a Debian box
which I pre-filled with packaging tools
???
I also learned about another project called Docker
which is an even more elegant solution
to have newcomers try out different environments in a GNU/Linux system.
So what happened after this?
"So..."
My first experience when I was contributing to GNOME
was trying to understand how ???
and after learning how to make a patch I realized
the meaning of the word "upstream", you know,
realizing concepts about stable and unstable stages
releases, and what kind of ???
and all this information was pieced together
over time of reading GNOME wiki pages
including the content of GNOME Love,
and interacting with my mentor
and also from this knowledge I had
from previously distro hopping
I also made a upstream release myself
and become the maintainer of
one of the projects I was contributing
a user documentation tool.
So, doing all of this peripheral work
made me a nice picture, a visualization in my head
of how software development in facts takes place.
So when I started with Debian
I navigated to the Debian website
read the introductory page about packaging
I went to the Developer's Corner
and the landing page for Documentation
and I clicked on everything that was related to packagin.
Since I knew that GNOME had a wiki
it was likely that Debian also maintained a wiki
and there was also a really helpful Teams page
which made me realize
how Debian is separated in terms of
division of labour
And I started doing all the things
that were required for packaging
and I kind of get stuck.
"Hello, I am..."
In my excitement of wanting to generate a deb file
and at this point thinking that this was
all that was to packaging
I went through #debian-devel, #debian-gnome, #debian-mentors
and #debian-women
to told them that I was stuck because
my deb file was empty
and lot of them suggested in good intentions
they suggested do this, do that but
nothing made sense because...
I had no idea what they were talking about
So even though I was talking in English
I was not able to communicate
and it was quite frustrating because
they did not know where I was coming from.
So I went back to
#debian-bcn2014 and Ana
who first helped me put together
my talk for this conference
said "calm down and
I'm gonna lead you through the steps"
and she went by this ideology of learn
to package first, and then making the package
so this was fine
this suited me fine because that's the way I learnt.
I guess the most important thing that
we can take away from this episode
is to be a good mentor, you have to
assume a very little baseline
knowledge with the person ???
be clear with instructions
and don't expect them to have
done XYZ
because they may not
know about it, but they may know ABC
Ask if they have done XYZ
and - you know - take it from there.
So, what exactly did I do?
"Actual work"
I'm currently packaging GNOME Code Assistance
and Gedit Code Assistance modules
for GNOME.
The former gives code assistance services for GNOME
Basically if you have an IDE
or any text editor
in GNOME that you want to
putting syntax error checking features
for a particular language,
then this is the package that does it.
While the latter is a package
that emits the dbus signal
in Gedit text editor
back to GNOME Code Assistance
so when the correct backend is enabled
this two packages interact with each other
to give syntax validation features
So far these are the things I've done
I've gotten past in generating
a working deb file
but it can be improved
and I really understood
what dependencies meant.
And that how autotools work
and I started seen
I really started paying attention
and ??? how autotools
are related to configuration files
and I also patched our own build system called jhbuild
to build these two modules in GNOME
My next immediate concerns
are getting the upstream author to
bring it to a...
usable position, because it works for some people
and for some it doesn't: it works for the upstream author
it works for him...
and Ana suggested that I
update a package
that it is in QA and I think
that's a small contribution
for me to start from and then she
sponsor it, so that's my next task.
I want to document it
for end users
So one of the bugs that ??? against all of these packages are
that there is no user documention so nobody knows
how to use it, it's all magic
So, packaging has also made
these things my priority
and I have few ideas
that come from GNOME love
A few ideas I feel
Debian can benefit
and to have a greater newcomers engage in the community
or having the concept of GNOME Love like
in packaging
For example, tagging packages
that are orphaned or are in QA
that can be updated by anyone and this would make a great
beginner contribution
Specifically having a tutorial to do this
would be nice
And wiki pages about
packaging that could reutilize videos
and BoF sessions from previous Debian conferences
For example there was a wiki page about
Debtags, which uses a 2007 video to
talk about what Debtags is, and what it does
and there are some great videos
I found in the archives of Debian conferences
the first one is "Documentation in Debian"
another one is "How contribute and get involved"
and there's another great video about how other FLOSS communities mentor
and the last idea is
it's some ??? an idea is something ???
Vincent Untz conducted
an interesting session in FOSDEM 2010
where they discussed what would be a good move
to make life of packagers downstream easier
So from the point of view of GNOME
what should we be doing in order to make their life easier
A reverse session
??? developers on how to say in Debian
packaging and you know, make them interact
and learn how packaging...
how upstream changes affect packaging
and what they can or cannot do
to make our life easier would be great
And a newcomers IRC channel or mailing list specifically
for dealing with newcomers
issues would be great
and even local packaging workshops,
BoFs, and parties
if this hasn't already been done it would be nice.
And all the links to the resources I'm talking about
are there in my blogpost
you can go it's sindhus.bitbucket.org
I'd like to thank Tassia and Ana for having
giving me this opportunity to present remotely, thank you very much!
"Thank you"
Thank you for listening so far
and I hope I've given some interesting insights on how
we make newcomers experience
easy in GNOME and I hope
to stick around in the Debian community and meet
you all in the next Debian conference
Thank you so much Tassia and Ana
for helping me put this together
and I hope to see you soon!
"Thank you"
Thank you so much for listening this far
it's a shame I cannot be there
in person to say this
Thank you Tassia and Ana for
helping me put this together
I hope to stay involved in Debian
in the packaging scene, contributing to it
and all the things that I've spoken about
in this talk is available on my blog
it's sindhus.bitbucket.org
So if you have any feedback, please do email me
it will be good to hear from you
I hope you guys enjoy your time at this conference, thank you bye bye!