Subject: The mailing list for listmasters using Sympa
List archive
- From: David Verdin <address@concealed>
- To: address@concealed, address@concealed, address@concealed
- Subject: [sympa-users] 2018 hackathon report
- Date: Wed, 6 Jun 2018 17:09:46 +0200
Dear all, At long last, here is the hackathon report. Enjoy! Disclaimer: This document expresses the views of
the 2018 hackathon attendees. Consider all the points
described as request for comments. This document should
be the only reference for further discussions about the
topics tackled during that hackathon. Link to the web
version:
https://github.com/sympa-community/dotorg/blob/master/2018-Hackathon-report.md Another disclaimer: I tried to have strictly separated sections in this report to ease further discussion; That means that you need to read the full report before reacting: some topics are related (for example, technology choice and decision making) and they are located in different sections. 2018 Sympa Hackathon reportThe 2018 Sympa hackathon was held in Strasbourg, France, from 22 to 24 of May. It was organized by Marc Chantreux, from RENATER, and hosted by the Strasbourg university. AttendeesHere is the list of the attendees and their main areas of expertise (in last name - or handle - alphabetical order).
Other people also came and went during the three days, stopping by for a short discussion and then leaving, but the list above contains those who remained most of the three days. PreambleThe main problem in Sympa development is that, considering the large opportunities of evolution that awaits the software, it is very hard to know where to start working on it; and considering the heterogeneity of the community, it is very hard to know how to work. Don't get me wrong: most people know exactly how and where they should start. Problem is: their personal point of view is, at best, only partially shared by other. Consequently, amongst the three days of the hackathon, the first two were merely dedicated to discussions and the last one to actual coding experimentations. The good news is that we achieved to agree on several points which could be very promising starts and, hopefully, lead to make actual progress in Sympa 7.0 development and in community involvement. Here is the list of points discussed and the agreements we reached. Desirable future application design
Sympa 7.0 target and methods of developmentTargetAs we will not have the perfect Sympa right now, we should set some goals. A reasonable aim for Sympa 7.0 would be:
Below is a proposed methodology:
Work on new technologies implementationWrite a Dancer2+DBIC proof of concept. Racke volunteers to work on it. The REST API would run on Dancer2 and directly query the database through DBIC. This would create a good base for future Sympa with actually running code. Code refactoringImportant: this section exposes a general approach to handle refactoring. The details of the CPAN modules implied and the coding style are in next section. The best way to have a backward-compatible Sympa 7 is to start from existing code and refactor it. This would be done by following these steps:
A proposed tagging system to track refactoring:Warning: This section contains ideas developed by Olivier and David while in the train back home. They were not discussed in such terms with the other. This is the suggested approach to track refactoring progress. We could track changes through comments in the Perl code. These comments would have the following structure
with:
Example:
That way, anyone could know how far we are by simply reading the module. In addition, Travis CI could parse these tags and create a report about refactoring progress. We even could add a progression tracker to the main Sympa web site. Coding practicesThe aim of the discussion was to find a way to get rid of the infrastructure code. That's the part of the code that handles language mechanics instead of focusing on application logic. For example, the "bless" command used to cast anything into an object could be easily replaced by Moo. We agreed on adding dependencies to a boilerplate module (Sympatic), thus facilitating the application of these practices anywhere in the Sympa code. What we agreed onAll these modules allow to drastically decrease the number of Sympa code lines without changing anything in the application logic. It would make the code more readable and less error-prone. Baring any strong opposition from the community,
developers should use it when working on Sympa (don't
forget to add those modules in the
What we did not agree on
Pseudo-cyclomatic complexity removal. That means, replacing this:
With this:
Some people liked the brevity of the code. Other preferred the explicit structure. No consensus either on this topic. What is left aside for now
Coding styleLuc started working on a coding style. Everything is summed up in this issue. CommunityLuc stressed out the fact that, currently, self organization of the community is weak and that newcomers have difficulties to know where to start. We won't achieve anything without a good coordination. Here are a few things that were approved by the hackathon attendees. Semantic versioningHere is the semantic versioning pattern, adopted by a large number of softwares:
Example:
The current way of Sympa versioning is atypical and prone to instill confusion to users. Non reversible and unstabilizing changes are introduced to the only active branch. Consequently, people upgrading Sympa can have broken features when they should expect only bug fixes. Changing the way we version is possible right now (replacing the 6.2.33 with 6.3.0 for example). It is just a matter of communication:
Single entry point for SympaFor clarity purpose, we need a single entry point for people willing to get information about Sympa. The best tool for this seems to be the sympa.org web site. However, we need to allow community members to easily improve content of this web site. The tactics adopted by Soji to reorganize the Sympa manual can be reproduced for the rest of the site: have content sources on github, so that anyone willing to improve it can do it using pull requests. We suggest to use two repositories: the current sympa-community.github.io for manual, and another one for the rest of the site. The manual is quite specific and Soji already did a lot of work on it. That leads to the following actions:
All data stored in Github are Markdown. Marc Chantreux was mandated by the attendees to produce a first web site using these data. He works with Pandoc to generate web pages from Markdown. He's following this workflow:
All website-related data (both from dotorg and sympa-community.github.io repositories) will be displayed on this website. The good point of this approach is to make web content independent from hosting. If the current hosting structure (RENATER) became deficient, community would still retain the data and would easily move to another hosting service. Any concern related to Sympa web site - and tools - hosting should be discussed on a Github issue in the web site project. Decision makingA simple decision-making process is as follows:
In order to implement that process:
Advantage: no more dying threads on ML that are forgotten because other threads came in your email folder Ease newcomers enrolment
Have a roadmapUse milestones in Github to help tracking what is expected to be found in next Sympa releases. Deprecations should be announced soon to help people prepare for it. And possibly discuss these deprecations. Make a Sympa conferenceWe made a lot during last year to make Sympa developers work together. It's good but, that said, other parts of the population should benefit from community cohesion. Organizing a Sympa conference would be a very great opportunity to gather the different kind of people from the community (administrators, translators, packagers, end users, etc.). The idea would be to have that kind of events:
We could start with something small, at more or less zero cost, hosted by a university for free. -- "Mieux vaut viser la perfection et la rater que viser la médiocrité et l'atteindre." - Francis Blanche |
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature
- [sympa-users] 2018 hackathon report, David Verdin, 06/06/2018
Archive powered by MHonArc 2.6.19+.