Updating an outdated technology stack and feature timeline

Hi all!

I am a German software engineer and a fan of free and open source software, unfortunately with poor French skills.

I stumbled across framaforms/yakforms and think it’s a nice tool. So thanks to Pyg, Framasoft and all contributors.

From my point of view yakforms currently lacks the following issues - and a lot of potential from my point of view:

  1. Unclear documentation
    There’s the website https://framaforms.org/* (French, English?), there’s the git repository https://framagit.org/yakforms/yakforms and its wiki (https://framagit.org/yakforms/yakforms/-/wikis/home; unfortunately a lot of broken links), there’s https://docs.yakforms.org/, there’s Framacolibri (https://framacolibri. org/c/yakforms/54) and probably some other places, too. What information can be found where - which place is the most up-to-date? E.g. about installation?

  2. An outdated technology stack
    yakforms is based on Drupal 7. The current version seems to be Drupal 10 (released in November 2022). Drupal 9’s end-of-life has been announced for November 2023. Often there’s no backwards compatibility between - not even between major version. Drupal is based on PHP which itself has its development lifecycle (https://www.php.net/supported-versions.php). Yakforms currently only supports PostgreSQL - and not MySQL/MariaDB (probably for good reasons; there was an explanation I currently canot find again; iirc it was referenced in the installation context).
    This not only brings security issues with itself but also makes it quite difficult to set up new instances. I am unfamiliar with Drupal (yet) - would it be better to migrate to Drupal 9 or Drupal 10?

  3. Lack of internationalization support
    yakforms could have a bigger user base if it properly supported other languages.
    An issue has been opened here: https://framagit.org/yakforms/yakforms/-/issues/34
    There’s this « Weblate repository »: https://weblate.framasoft.org/engage/framaforms/
    There’s also this wiki page: https://framagit.org/yakforms/yakforms/-/wikis/Changing-an-instance-language
    framaforms.org seems to be in French, expect some pages can be translated into English. I got a working local installation of yakforms that defaulted to English, but I’d need some guidance how to switch to German. Is it possible to switch language per user or « only » per instance?

  4. Unhandled issues
    There’s currently 61 open issues here: https://framagit.org/yakforms/yakforms/-/issues - most of which have not been commented at all.

It seems that there’s no active community that maintains yakforms - correct me if I am wrong.

If there was a wish list to change this, what would be the most important things to make yakforms work for you (probably a different audience)? What would be the features you would work on? Can you estimate how much work it would be to migrate to a new Drupal version and to implement i18n?

Why do I ask this?
In Germany there’s the Prototype Fund that supports Public Interest Tech (https://prototypefund.de/). It’s a project from Open Knowledge Foundation Deutschland e.V. (https://okfn.de/; maybe comparable to Framasoft) and I think about applying for a project that would allow to work (paid) on yakforms. The application needs to be quite specific about milestones - so time estimations for planned work and from my opinion it makes sense to synchronize and harmonize an application with you/ the community here.

Kind regards
Mäh

*PS: I had to break links as a new user as I am only allowed to post 2 links (anti-spam).


Edit: I’ve tried to ddev (Get Started with DDEV - DDEV Docs) to set-up a local test instance (with PHP 7.3, Drupal 7 and PostgreSQL 9). Maybe that is helpful for somebody else:

ddev config --php-version 7.3 --project-type drupal7 --database postgres:9

4 « J'aime »

Hi @maehw
What a (great) post!

I’ll try to answer most of your questions.

  1. Unclear documentation

Totally (and sadly) true

What information can be found where - which place is the most up-to-date? E.g. about installation?

The best starting point is https://yakforms.org/
For installation, it will be Yakforms | Install

The gitlab repo Yakforms / Yakforms · GitLab is mostly for code, and code issues (but as there’s no active dev, it’s mostly silent).

Framacolibri is for usage issues (in french or english) and community questions (like yours). So it could be technically oriented sometimes.

  1. An outdated technology stack

Totally (and sadly) true :-/

As you might have understood: I developed Framaforms in 2016 (it was spread over several months, but in reality, there are no more than 15 days of full time work). Then we let the service run without touching it much until 2020.
It was then @thelem (Théo) who, as an intern and then on a fixed-term contract, brought

  • many corrections of « small bugs ».
  • the cleanup of some features (a dashboard, configuration screens, etc.), especially through the drupal module « Yakforms » sites/all/modules/yakforms · develop · Yakforms / Yakforms · GitLab which went from 100 lines of code to more than 1000.
  • the technical documentation
  • add some internationnalization features
  • the yakforms.org website (to stop the confusion between « framaforms.org the service » and « framaforms the free software to install »)
  • the facilitation of the installation of Yakforms

But Theo left Framasoft (on good terms, he just wanted to stop coding after pandemic), and since then, yes: the code is … floating. Aimlessly. And with no real future a priori

Except that, I was contacted a few months ago by an organization (the CEM - https://www.le-cem.com : "The CEM is a center dedicated to contemporary music composed of a school, a professional training center, rehearsal studios, a concert hall, a bar and various conviviality spaces. "). They want to use a « more modern » version of Yakform for their training center.

It is @Medic who is a young dev (intern) at the CEM and in charge, in particular, of migrating the form_builder module Form Builder | Drupal.org which is a central module of Yakforms (it allows the drag and drop of form elements, which makes Yakforms accessible to ordinary users. Without this module, creating a form requires much more clicks).
Unfortunately, this module (vaguely active: Commits · moreonion/form_builder · GitHub ) does not exist in Drupal 8/9/10 (only Drupal 7).

  1. Lack of internationalization support

Totally (but not sadly) true.

It is on purpose that Framaforms.org is french oriented.
We host 296 147 forms (+ 15 168 per month) and if it was in english, the database would probably collapse :sweat:

Is it possible to switch language per user or « only » per instance?

Yes! it is possible to translate yakforms in another language : Changing an instance language · Wiki · Yakforms / Yakforms · GitLab

Unhandled issues

Totally (and sadly) true!

Well, the reason is simple: we (framasoft) simply do NOT have resources available to take care of the development.
Between 2016 and now, the association has grown a lot, and I don’t have time to do any more development or technical support (I am co-director of Framasoft, which implies many other missions). And as we made the choice not to grow anymore, we couldn’t keep @thelem, nor hire other developers on Framaforms.
Hence Framaforms (the software) became Yakforms, and « returned » to the community.

This explains the silence on Github (and partly here, even if I take the opportunity to thank @PaliPalo for his volunteer support that I admire a lot <3 )

I think about applying for a project that would allow to work (paid) on yakforms. The application needs to be quite specific about milestones - so time estimations for planned work and from my opinion it makes sense to synchronize and harmonize an application with you/ the community here.

That would be great!
I’m very very enthusastic about this! :partying_face:

My time is unfortunately very very limited :frowning:
And I haven’t touched the Framaforms/Yakforms code since 2019.

So my ability to help will be very very limited. But I would love to see Yakforms continue to have a life (including outside Framasoft)
And if I had to recommend your work to Prototype Fund on behalf of Framasoft to help you get the grant and you can be paid independently on it, I will gladly do it.

As I said, the main pitfall today is getting out of Drupal 7, and the blocking point seems to me to be form_builder.
So, maybe @medic could tell us where she is in her work ? (reminder, she’s in internship and it’s one of her first « concrete » project and it’s not a small one).

If you have other questions, I will try to answer them according to my availability.

4 « J'aime »

If being cross-border may help the chances to get the grant, I think there’s a good bunch of people here in Italy that would be interested in giving a hand.
For instance I know a group that is working on building a single sign-on stack of NextCloud/Moodle/Chameleo/Mail/WebMail/LibreOffice Online to help Italian schools get out of the voluntarily servitude to Google. Framaforms will very likely be the next tool they’ll need to stop using Google Forms.

1 « J'aime »

Yes, I already had a thought like yours. Unfortunately, Framaforms/Yakforms is based upon Drupal/Webform (at least). As far as I know, the API is different from NextCloud one. Thus, Webform should « conform » to NextCloud framework or an Webform alternative shall already exist. Then, Yakforms might be adapted (redesigned) to interact with this new « NextCloud WebForm »

Hi ! I’m the developer previously mentioned :slight_smile: and indeed i’m working on it, maybe a little bit slowly… Because I didn’t know the techs and I had to learn them, but now i’m developing the new module ! It’s in progress and I promise to do my best !