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
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.
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.
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.
“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.
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…
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’)
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.
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.
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.
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.
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
I must be honest I started with formagick, after that all is easier
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 :’(
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.
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