Archive pour la catégorie ‘Discussions-en

Discussing with S.P. Zeidler, spz@, admins, pkgsrc-releng

par GuiGui2 » Il y a un commentaire. Cliquez pour commenter.

Here we go again. Third edition of the discussing with a NetBSD developer serie.

Today, we had the chance to talk to S.P. Zeidler, admin and member of pkgsrc-

releng.

NetBSDfr: For the readers who don’t know you, can you shortly
introduce yourself ?

spz: Hi, I’m S.P.Zeidler, called name Petra, also answers to spz or
stargazer or Ophiuchi. I’m a member of the NetBSD admins team and of
pkgsrc-releng. My archs are amiga, sparc64, amd64 and i386.
In other news, I’m Bavarian, mid-fortyish, female, married, 2 cats,
no kids.

NetBSDfr: Why did you choose to run NetBSD ? How long have
you been using it ?

spz: It was the first free Unixoid system that ran on my Amiga,
serpens, which has been running NetBSD since February 1995, i.e.
since NetBSD 1.0.

NetBSDfr: How did you become a NetBSD developer ?

spz: When the admins team was looking for more help, I got asked and
didn’t run away fast enough

NetBSDfr: Do you have an idea of the time you spend working
on the NetBSD project daily, weekly, monthly ?

spz: Half an hour daily at least, but depending on things to do;
running up 20 hours over the course of a weekend happens quite easily.
Both admins and pkgsrc-releng are demand driven, you get requests and
you handle them, security updates to servers need to be done as
vulnerabilities become known, etc etc. I don’t do much programming,
if I commit something that’s usually a bug fix where I sufficiently
hated the bug to unpack the zapper myself instead of just whining
about it.

NetBSDfr: What is the job of a NetBSD admin ? How many
admins are there ? How do you work alltogether ? How do you share the
tasks you have to do ?

spz: In the abstract, keeping the servers of The NetBSD Foundation
secure, up, and doing useful work. At a closer view, it’s plain old
system administration with administration of services like eg mail
thrown in.
There are currently 5 admins on admins rotation, which means doing a
week of looking after user requests in turn, plus 6 more who do
specialized tasks like site visits or do emergency repairs if a
server or service acts up (like eg putting a stop to a mail loop).
We have a ticketing system (RT) that user requests go into; whoever
takes a ticket is responsible for resolving it.
For non-user requests, eg mail setup and mail-filtering is done by
soda@, and tls@ is looking after hardware; I handle OS and package
installation and upgrades.

NetBSDfr: What is the hardware infrastructure of the NetBSD
project, in terms of hardware and software ? Where are they located
?

spz: We currently have two main sites, at ISC in Redwood City where
the public servers are, and at Columbia University in New York where
the TNF owned build cluster is. There is one lonely box in Sweden,
hosted by the Luleå Academic Computer Society, which provides data
backup services.
The servers are a comparably boring bunch of rackmount servers (no
fun retro archs at all, unless you count i386 , the newer ones
amd64 arch and the older ones i386, and they run NetBSD-4 or NetBSD-5
at present, seeing that I am currently installing new servers instead
of upgrading the remaining NetBSD-4 machines.
blog.NetBSD.org is a TNF system as of earlier today, and there will
be a new ftp and due to reshuffling, new www and mail servers
eventually too.
Thanks to everybody who donated funds and made the new machines
possible, and of course also thanks to the organisations that host
them.

NetBSDfr: As part of the pkgsrc-releng team, can you tell us
more about the way pkgsrc releases are organised ? How is a release
tested / validated ?

spz: Unlike releng for the OS, the pkgsrc-releng team does not
actually create the releases, it just maintains them. Pkgsrc releases
are done roughly quarterly, give and take a week, and get ‘cut’ after
one to two weeks of freeze period during which build and security
issues of packages get fixed while the pkgsrc infrastructure itself
is static. Build issues get found by the bulk builders, packages not
working right get found by community input (if not by their maintainers,
who usually use their packages themselves).
The main advantage of a maintained stable branch is that security issues
get point fixes, ie you get to replace just the affected package and
the rest stays at same version, which makes eg configuration
incompatibilities a lot less likely. For production servers, using the
stable branch of pkgsrc is definitely a good idea.

NetBSDfr: You told us there were no fun retro arch in the machines
administered by the project. I’m wondering then how are pkgsrc
releases built (if they are) for those retro archs ? Are the pkgsrc
releases cross-compiled ? Provided by third-parties ? Not built ?
Does it work the same way for NetBSD releases by themselves ? Are all
the « fun retro » archs versions cross-compiled ?

spz: NetBSD proper can be cross compiled, the framework exists, and
it’s being used to provide binaries for all archs (see ftp.netbsd.orgs
/pub/NetBSD-daily, we don’t just build formal releases .

pkgsrc has a few packages that have a cross compilation framework, but
most don’t, and there are several packages with a lot of dependants
for which creating such a framework would mean ripping out the entire
build system the package brings itself and redoing it, and redoing it
for every new version that comes out after it, unless one gets buy-in
by the people who create and maintain the software being packaged
itself.
One of the headache packages in that space is perl, and it’s interesting
to see that there is now interest in a fully cross-compilable perl in
the perl community itself.
So how do binary packages materialize? Developers who have the hardware
bulk-build packages and upload them. You can read about the build
reports on the mailing list pkgsrc-bulk.

NetBSDfr : In your professional environment, do you work with
NetBSD ? How do you think we should promote NetBSD for wider use
within companies ?

spz: At my present job I don’t work with NetBSB (yet); I’m currently
not responsible for internal IT and the customers have existing servers
to take care of, where a ninja change of OS is not entirely practical,
if occasionally very much desired. :-7 There is lately some pkgsrc, at
least.
In my experience, NetBSD gets used in general IT in companies where
the sysadmins knew NetBSD previously and appreciated it as a
« install – configure – runs » system of minimum ick factor.
The more people know and appreciate NetBSD, and the more practical
its use on production servers, the more use of that kind it will
see. Of course, many companies use NetBSD and have no idea that they
do so, since it’s part of some « solution device » they use; these tend
to be boring from my point of view though, since they tend to be
rather black-box like. The makers of these devices will likely
differ.

NetBSDfr: As a conclusion, can you tell us how you forecast NetBSD
future ?

spz: That’s a hard one, especially as it depends a lot on ‘chaotic’
nature events of, eg, one developer pulling something out of their
hat that proves to be a must have feature for an entire new class of
device, or others banding together to make a form of use that is now
possible but tedious to set up a snap drop-in; and in the long run,
the question where computing is going is also unclear.

I can tell you what I am hoping for, and that is for a NetBSD that is
small enough to allow the insertion of daring new ideas in -current,
and large enough to mature -current into a rock solid release track
system periodically; a project that generates ideas that may spread
into the common pool and isn’t just a me-too with slightly different
wallpaper. That is why I’m spending my time on doing infrastructure,
at least.
Oh, and I want cool ARM based netbooks with ridiculously long battery
lifetime running NetBSD available soonish. The guilty parties will
hopefully get a move on

Discussing with Adam Hamsik, haad@

par GuiGui2 » Il y a un commentaire. Cliquez pour commenter.

After a first interview with NetBSD-5.0 release engineer Soren Jacobsen, it is now Adam Hamsik turn to be interviewed by NetBSDfr.

Adam is known for his work on porting LVM tools to NetBSD last year, as well as porting ZFS as part of this year’s Google Summer of Code.

NetBSDfr: First of all, thanks for taking the time to answer.

haad: No problem! I think that your effort is great.

NetBSDfr: For the readers who don’t know you, can you shortly introduce yourself ?

haad: My name is Adam Hamsik, I’m 24 years old. I have finished
Computer science in Slovak Technical University last month.
I’m NetBSD developer since around 2 years. My first bigger project was
NetBSD LVM implementation on which I have worked during previous
Google Summer of Code.

NetBSDfr: Why did you choose to run NetBSD ? How long have you been using it ?

haad: I’ve been using NetBSD for around 4 years. I started with NetBSD
2.0. I tried several linuxes and FreeBSD but any of them truly fit my
needs. During one dinner with my old friend he suggested to me that I
should try to use NetBSD, because it is pretty good operating system. I
tried to use it and found that it is best os for what I need. It is cleanly
designed and it is almost Unix.

NetBSDfr: Do you have an idea of the time you spend working on the NetBSD project
daily, weekly, monthly ?

haad: These days during GSOC 2009, I’m working on ZFS port project
for 4-8 hours per day, sometimes even more. As any other volunteer
developer I’m often interrupted with real world thinks, but I’m trying to
do as much as I can during this Summer.

NetBSDfr: Your work for the project is mainly in
maintaining your former GSoC work, or are you involved on other parts
of the code ?

haad: I did several smaller patches to base system, proplib, but main
part of my work is my former and current GSOC work.
Last year I did LVM port for NetBSD and get linux LVM tools working with
our device-mapper driver. For those readers who do not know what is
LVM, LVM is Logical Volume Manager which allows to manage disk
space in a pretty simple way.
This year Summer of Code I’m working on NetBSD ZFS port and I have
to say that with great help of Andrew Doran we already did pretty good
job. Yesterday – Note: the 20th of June, 2009 – I was able to mount (only
mount call is supported;) ZFS dataset, create/manage zpools and zvols.

NetBSDfr: How did you become a NetBSD developer ? following GSoC I assume ?

haad: I became a developer after some time where I tried to find some
project for me. I was asked by Bill Stouder-Studenmund if I want to
become a developer. Later I started my work on LVM port which later
became my GSOC project for 2008.

You started LVM port before GSoC 2008 ?

haad: I had some big part of device-mapper driver written before GSOC
started.

NetBSDfr: How long did it take to port LVM to NetBSD, overall ?

haad: It is still not finished but around 1.5 year.

NetBSDfr: I’m wondering how you learn about NetBSD
internals ? On your own ? At school ?
 

haad: I have to say that I’m still NetBSD internals newbie I know parts
of kernel on which I was working e.g. device-drivers, device-mapper.
During my work I met several great developers with enough patience
to guide me through kernel internals and help me with my problems. I
learnt the rest on my own . I have to say that there are still places in
kernel about which I do not know anything e.g. low level stuff, real
device-drivers, acpi, uvm etc.. but I already learnt pretty much about
locking, vfs and filesystems.

NetBSDfr: Can you give more details about the Google
Summer of Code ? How are students nominated ? What are the success
criteria, if any ? Do all students get committer access ?

haad: GSOC is program managed by Google where Google pays
students to work on Open Source projects like NetBSD. Anyone who is a
student can write application and submit it during application submit
timeline. Applications are later reviewed by NetBSD mentors (people
who guide students through whole GSoC on project side) and defined
number of project applications are chosen by some criteria.
Not every student get commit access but many of our successful
students over past few year got them. GSoC is better described at

http://code.google.com/soc/

NetBSDfr: What are the evaluation criterion ? Usability?
Portability of the code ?

haad: Every student should define their GSoC application must have,
nice to have things. Students are evaluated by their mentors.
You need to show your mentor that you are working on your project
and get at least something done. If you find during Summer that your
deliverables are to huge, you can scale them down, but you must work
on it There are no exact criteria for project evaluation.

NetBSDfr: How are you working with ad@, your mentor
on the ZFS port project? Is he reviewing your code regurlarly ? Are you
requesting the reviews ?

haad: We have meetings once a week on Skype/VOIP where we discuss
any big issues. During the week I can regularly talk with him on irc.
When I do some bigger change, I ask Andrew for a review.

NetBSDfr: I was about to ask for a status on ZFS. You
gave part of the answer earlier in this interview. Do you think you’ll
reach the goals you’ve set for ZFS in NetBSD by the end of this year’s
GSoC ?

haad: I have to say that I’m not sure still. ZFS is huge it will take
much more than GSoC to get it working but I think that we can get basic
part of ZFS working at the end of GSoC. I will do my best to reach our
goals

NetBSDfr: As a conclusion, can you tell us how you
imagine the future of NetBSD?

haad: I think that we did huge step with NetBSD 5.0. Andrew Doran did
awesome job on 5.0. Many parts of NetBSD kernel are multi-thread safe
these days. On multicore/SMP machines we have very good
performance in many types of system workload.
There is also another part of NetBSD and it it is portabiliy to embedded
devices, there are so many small devices which are running NetBSD
and nobody knows it. We need to work hard to get Flash filesystem and
many other embedded device stuff done to attract new developers to
work and port NetBSD to new machines.

NetBSDfr: Well, I think I’ve run out of questions. Thanks
a million for your time Adam

haad: np

Rendez-vous in a few weeks for the next interview. In the meantime, any idea of developer to interview, or questions you’d like to ask, are more than welcome.

Edit: Is it a coincidence ? The day this interview is published, Adam posted a status of ZFS port on the NetBSD blog.

Edit 2: Mark Weinem has asked Adam 4 more questions in the comments of the blog.

Discussing with….

par GuiGui2 » 2 commentaire ajouté. Cliquez pour commenter.

For a reason I’m sure you’ll see obvious when you’ve read this article, it will be written in English as well as in French.

A couple of weeks ago, iMil and I threw on the IRC channel the idea of interviewing NetBSD developers through our website, NetBSDfr, to promote the NetBSD project, and to make their work known to the widest possible audience (humbly). After a short brainstorming, a first name came out.

Today, we are discussing with Soren Jacobsen, snj@.

NetBSDfr: First of all, let me thank you for this interview. We plan to run
several interviews of NetBSD developers, I think one every one or 2
months or so. You’ve been chosen as the first one. Thanks for accepting
to answer our questions.

snj: Thanks for asking me, and thanks for your efforts to strengthen the
community. It’s great to see efforts like this.

Sorry it took so long to get back to you. I wanted to take some time to
think over my answers. Please let me know if you think anything needs
clarification.

NetBSDfr: For the readers who don’t know you, can you shortly introduce
yourself ?


snj: My name is Soren Jacobsen and I am a NetBSD developer and
release engineer. I’ve been part of releng since late 2005, and was the
lead release engineer for the 5.0 release.

NetBSDfr: Why did you choose to run NetBSD ? How long have you been
using it ?

snj: My first experience with NetBSD was 1.5.3, which I guess was
around the second half of 2002. Compared to a lot of people, I was a bit
late to the party. At the time, I was frustrated with Linux in a number of
ways, and NetBSD was a solid operating system with a philosophy that
made sense to me. There wasn’t any one particular thing about
NetBSD that grabbed my attention. It was more that there was nothing
that bothered me. It just seemed right.

NetBSDfr: Do you have an idea of the time you spend working on the
NetBSD project daily, weekly, monthly ?


snj: Like most volunteers, the amount I’m able to spend on NetBSD
depends on real life and my motivation level. A year ago, at most I was
doing 8 hours a week. More recently, 8 hours a day wasn’t uncommon.
The week leading up to the release was especially hectic; I put in a
couple 16 hour days there.

NetBSDfr: How did you become a NetBSD developer ?

snj: When I started using NetBSD full time as my primary operating
system, I became heavily dependent on pkgsrc, our framework for
third-party packages. There were a number of packages I wanted to
see updated, and I started sending patches against pkgsrc and various
small things in the base system. At the end of 2003, I was offered an
account, and became a developer in January of 2004.

To anyone out there who is interested in helping the project: pkgsrc
is a great way to get involved. There are so many packages out there,
and only a finite number of developers to import and maintain them.
Consider submitting PRs against pkgsrc and joining the pkgsrc-wip
project. We can use all the help we can get in this area.

NetBSDfr: How did you become member of NetBSD release engineering
team ?
Are the members of the releng team elected ? chosen among
developers ? Does this require specific skills ?

snj: The release engineering team is rather informal. There is no
election process, and no strictly defined leader of the group, although
people do step up to fill this position. When we feel understaffed, we
put out a call for volunteers, and usually a person or two will join.

Release engineering is not as glorious as a lot of other activities, so we
don’t normally have people begging to join releng.
It’s hard to say about specific skills. Like in most other areas, having
sound judgment and a good sense of perspective is essential. These are
the only strictly required skills. Plenty of others are useful, though:
patience, caution, attention to detail, etc. Pretty basic stuff, for the
most part. Of course, the more technical knowledge, the better, but this
is not as big of a deal as it might seem. I’ll explain below.

NetBSDfr: Can you explain us more in details how does NetBSD release
engineering process work ?

snj: There are two basic tasks:
- Pulling up changes into branches.
- Releasing.

The first one is rather straightforward, and it is something we do
constantly. Developers request that certain changes be pulled up to a
given branch. If we agree that the changes should be pulled up, we commit
them to the branch. To help track the status of a branch, we maintain a
record of every change made to a branch over its lifetime.

Putting together a release is a much more complicated task requiring
coordination with a large number of people. The main task is to decide
the point at which the remaining bugs can safely be ignored. There are
lots of other tasks involved here, of course: managing the build cluster,
pulling up changes, preparing information about the release, testing,
making sure that important fixes find their way to the branch, begging
people to work on certain things, paying very close attention to the
mailing lists, etc.

NetBSDfr: How does the quality assurance process works ? Who decides
to include this or that patch to a branch ? This is also linked I think to
the following question: how does the releng team decide how many
betas, RCs versions are required before declaring a branch is stable ?

snj: No one person can have thorough technical knowledge in all areas
of the source tree. Therefore, it’s sometimes hard for a person (or
small group) to be able to say for sure whether a particular change
should be pulled up to the release branch. This is where one of the
most important qualities of a release engineer comes into place: the
ability to get sound advice from the right people. To some extent, we
trust that developers submitting changes for pullup have carefully
considered the implications of the change. But at the same time, we
try to be very cautious, and being able to effectively consult with other
developers is of vital importance.

We start the release process when we think the tree is in pretty good
shape. At this point, the branch is known as, e.g., 5.0_BETA. At this
point, more users start running the code, and we are constantly watching
for feedback (positive and negative). Intrusive changes are avoided
during all stages of the release process, but they are most acceptable at
this point. The general rule is that the further along in the release
process we are, the more restrictive we are about changes. Unfortunately,
it is impossible to have many hard rules about this. If big nasty bug
comes up, you’re faced with a choice between ignoring the problem or
taking a risk on an intrusive change. Sometimes we take the risk,
sometimes we don’t. This is another case where no one particular person
can have all the answers. To avoid one person making a bad judgment call,
members of releng discuss these issues with each other and with other
developers.

A release candidate, by definition, occurs when it is felt that the tree
is good enough to release. In practice, this rarely happens. There is
almost always a good reason to do at least one more release candidate. In
some respects, they’re more psychological than anything else. I admit I
rushed a couple release candidates out with full knowledge that 5.0 could
not be released without further fixes. But when important last-minute
changes are made, putting out a release candidate is a great way to get
those changes tested. Take 5.0_RC3, for example. At the time, we were
aware of a few show-stopping bugs, but there were significant WAPBL
changes that needed wider testing, so we felt that RC3 was justified.

In the end, deciding when to declare a release stable comes down to
compromise. You have a hard list of requirements that the release must
meet. Beyond that, you just have to get to a point where you feel that
the remaining bugs are outweighed by all the positives in the new release.
This is a hard thing to do, because when you’ve been tracking every
problem raised for months, you tend to be focused on negatives and can
easily forget about all the people who are having wonderful experiences.
Eventually you have to let go and realize that you’ll never have a
bug-free release. When you get to that point, you tag the final release
and hope that you haven’t made a horrible mistake

NetBSDfr: As a conclusion, can you tell us how you imagine the future
of NetBSD?

snj: We’ve made a massive jump with 5.0, and 6.0 should continue this
trend.
NetBSD has been ignored by many people for years, but this is changing.
As for more specific predictions, I think we’re going to see NetBSD usage
increase greatly in the server and embedded worlds. I don’t envision any
radical shifts in direction, but this is not a problem. NetBSD has always
been a great operating system; we just need to get out there and introduce
more people to it.

Rendez-vous in a few weeks for the next interview. In the meantime, any idea of developer to interview, or questions you’d like to ask, are more than welcome.