Community SPRINT

community
development

(Rob Bosch) #1

The past year we have seen some great examples of community intitiatives to create new modules. Ofcourse there is the huge list of @stephdl and @mrmarkuz in our wiki but also several other intitiatives. For example the Howto Install FOG Server started by @fausp, Howto install Calibre Content server by @dnutan and Acme-dns on NS by @danb35
These are just examples of great initiatives. There are MANY more in our fourms.

Now my idea: a lot of these initiatives stop when there is a complete howto. There are still many great applications that are a great addition to NethServer funtionality, but lack a 1-command or 1-click install. My proposal is to try and gather as many community members that work on these applications to get them to a state that they can be added to NethServer-Nethforge repository. That way, they also have this great 1-click install from the webadmin interface.

To make this possible we need to pick period of time, when community developers can do an interactive session. During such a SPRINT maybe we can support a permanent video support channel with the option to share screens so multiple devs can work on the same module.
I know the most productive way would be to have this in a real life session, (for instance at a community congress or at something like FOSDEM) but I also understand that this is very hard to accomplish. So the second best thing that I can think of, is an online session.

If some of the Nethesis devs can be available for feedback too during such an event, we actually could get a huge progress on this.

What do you think? Would this be an option to try? Anyone willing to help setting this up? Some points to consider?

If you want to participate with this initiative, please add your name here:
@robb


We Are NethServer - Community Overview - Sep 18
(James Nesbitt) #2

Hi @robb,

I know that I haven’t developed any modules, but I think this is a great idea - I hope that there is a lot of support for it and those who have made modules are able to get together to help have it integrated into a 1-Click Install.

Not sure what I could help with, but do let me know if there is anything I can help with. I’ll also keep track of this thread and will chime in when there is something I could possibly help with.


(Mark Verlinde) #3

Some thought on this: IMHO

The problem is not the development of packages; to beta state at least. Then the testing of all possible configuration, environments and so no starts. We , or I, do not have a automated test environment so for me 1 hour development is at least 2 hours testing. Note you have to install a package a dozen times to loop true different configurations. And after this your are still not sure if it’s oke, due to the single environment you are testing in.

Second is the maintenance of packages, again a lot of testing.

To wrap up, i like the Idea. :grinning:

Be active in giving feed back of those valuable howto’s. The starting point of a package development is two steps ahead, the configuration is tested/reviewed in different environments.

Without active support of the community in testing, we end up with a lot of broken packages.

just my 2’ct


(Rob Bosch) #4

I believe this is very high on @davidep’s wishlist. Any update on this?


(Dan) #5

“Sprint” sounds like “agile development”, which left a pretty rotten taste in my mouth the last time I dealt with it. But there are a few issues keeping my acme-dns module from going much further:

  • Testing. I know it works for me, but I don’t know if anyone else has even installed it, much less how well it’s working in the field.
  • Server manager integration. I’d be starting from square 1 on this, and to do it right would need a degree of interactivity.
  • The acme-dns RPM itself really should be built from source, rather than using the developer’s pre-compiled binary–but I don’t know enough about Go and packaging to make that happen.

Automx seems to be in a mostly-workable state (though someone who knows more Python than I is going to need to track down why LDAP is failing) --at least, as far as I can tell. Again, I’ve had no feedback from others who have used it.


(Rob Bosch) #6

I just thought of SPRINT as an event where multiple devs work together on nethserver modules. For instance a day or a week(end). If we can manage to have some additional tools so communitcation can be more direct, I think we can effectively do a lot of work.
If you have a better name than “SPRINT” please say so, and I will change it on the spot… :wink:
Especially your points 2 and 3 are great options for the dev event.
I think the biggest win would be learning from more experienced developers so at the end we get more skilled developers in our community.

And about your first point: we could organize a “testathon” and try to test with as many members as possible as many as (new)modules… (and get that testing software so modules can get ‘autotested’)


(Stéphane de Labrusse) #7

I like the idea, I am always available to share what I know or to help, but indeed the hardness part is the free time that I am/we are always running after.

I know this week Nethesis is closed, lets see the inputs of others developers


OpenVPN and shorewall admins
(Giacomo Sanchietti) #8

I didn’t ask to other, but I’m available for it.
Maybe I’d prefer a chat as tool.

I agree with @mark_nl: the most expensive part is testing and maintenance (also think to major/minor version changes).

I’m afraid it’s not on top of the todo list. Honestly, it has been removed from the medium-term list: too much effort to implement it, for now.

As good practice, we try to always have a couple of dev on the same package.
This is done to ensure the code review and testing.


(Rob Bosch) #9

That is too bad to hear. It’s not only important to have such a tool for the ‘employed’ devs, but also for all those community devs that try to get community modules done. IMO it would be a HUGE asset to the NethServer project if there would be a test environment for modules.
I think all major distributions have such a tool and IMHO NethServer should have one too.


(Giacomo Sanchietti) #10

Nethserver already has it: the community!
So far, we are doing a really good job. For now, the resources to implement an automatic testing suits doesn’t worth the outcomes.

Also you should consider another thing: if we put in place a testing suite, all contributions must pass all tests.
As you see, for now is still hard to gather simple contributions. If you add automated testing, the entry barrier will be much much higher.

I really like the idea of an automated test suite, but we are talking about months of development and a lot of money to running the infrastructure.


(Rob Bosch) #11

Fair enough.
Then let’s go by the phrase of a very famous Dutch soccer player (Johan Cruyff):
Every disadvantage has it’s advantage: by not having an automated test suite, more work needs to be done by hand which means, more members get the opportunity to get hands-on experience with creating and testing modules.


(Alessio Fattorini) #12

Love the idea. Just a few questions

  • Which kind of topics devs should cover?
  • who is willing to participate?
  • webinar (like a live on YouTube) or hangout?

I’d like to organize the NethServer Conference at the next Fosdem meeting. Development workshops would be great!


(Stéphane de Labrusse) #13

Just an idea, but a closed forum for dev (why not on discourse) or an instant messaging on mattermost/hangout/… could be nice.

I would like something restricted to few people that you can help rather to answer to many people. Of course the goal is to bring/help people to code, so the goal is to integrate more and more people


(Rob Bosch) #14

I think the 2 biggest “mysteries” of creating modules for NethServer are te e-smith layer and the specfile for the module/rpm. The e-smith layer is quite well documented in the dev manual The Spec file defines more or less what commands are run by RPM. I think the spec file should be high on the list for support. Maybe some basic explanation how the spec file is structured and how it must be used with NethServer modules.

I sure will help out! And I think many others also are interested. Maybe anyone interested can explicitly say so here? Then we can make a list of members that want to help and learn about creating NethServer modules.

During the event I think we should have a reasonably direct contact with all participants. I don’t know if a constant video stream will be effective or efficient. Maybe a chat channel would be better (on mattermost/telegram/IRC)
It might be nice to prepare a short webinar at the start of the event where the specfile is explained by experienced developer(s)? At the end of the webinar every participant will assign for a certain module. It would be great if 2 learner / inexperienced ‘devs’ would team up with 1 experienced dev. Would that work?

Before the event starts we should have a fair idea who is going to participate and on what modules we are all going to work. We can choose several applications/features to work on.
So we need a list of participants and proposed modules to implement.
The objective would be to have one or more working modules for NethServer at the end of the event…

Again, I am just brainstorming here, please add and comment.


(Nitram Oneito) #15

I would be interested in the whole Thing


(Stéphane de Labrusse) #16

ok let’s go :slight_smile:

already done, but probably it should be updated or enhanced. I did also some others documentations (I am not the author of all)

What I can say is the spec file is a low level of understanding, set permissions and put files at the right place…it is all …One time I even built a rpm without the srpm, taking a spec file from another rpm…
I say this because the spec file is not the barrier from my point of mind, NS sticks on the fedora build line, it is something well documented that you can find elsewhere on the internet.

What needs to be well understood is more from my point of view the the topology of a module (the createlink is used to expand templates, launch services, trigger actions following an event) and also the file architecture of a rpm

This was for me something high once upon a time…but…but…but something harder is the GUI

This is what I learned really at the end of the learning curve…nethgui is an interesting beast, made in the mind of @davidep, some people hates it, I learned to love it. It is powerful, easy, scalable but undocumented :slight_smile:

I must be honest I started with formagick, after that all is easier :slight_smile:

Of course all above should be a course, a documentation, a howto, a support for others developers but at the end, when a dev is debuging, writing documentation, speaking on discourse, he is not coding :’(


(Rob Bosch) #17

@oneitonitram: great to have your support here!

Thanks @stephdl for the comment. If we take into consideration that the 2 main goals are:

  • getting more nethserver modules
  • get more active developers

Focussing on the 2nd goal, the creation of a module should be explained in a language a non-devver also understands. If we can manage to make some kind of recipe, step-by-step howto that could fit a large part of (web)applications, then we could have a great way to get more members familiar with creating NethServer modules.
Especially the general php/mysql based webapplications should be possible to fit into such a howto. Or am I very far off now?

I WIKIFIED the topic. If you want to participate, please add your name at the bottom of the first post.


(Stéphane de Labrusse) #18

In fact this is the simplest starting point for a new developer, a web application is simple, create a mysql database, make a apache conf, make the web application configuration (adjust mysql settings for example). Something better is to take a web application from EPEL (you won’t care about update, others will work for you) and just do the work to do all configurations needed

It is a really good training.

Of course you/I will spent hours to make it workable :smiley:


(Mark Verlinde) #19

May I add a third goal:

  • get more dedicated testers for specific modules

Really: you can’t imagine how delighted I am @danb35 takes a look at a nethserver-module I try to make.


(Dan) #20

Aw, shucks. :blush: I’m just interested in self-hosting such code as I do, rather than relying on GitHub. And Phabricator looks like it might be a bit more heavyweight than I’d have a real use for.