Skip to content

[Corporate Sponsor needed] Refactor to modern standards #303

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
splitbrain opened this issue Jan 24, 2022 · 6 comments
Open

[Corporate Sponsor needed] Refactor to modern standards #303

splitbrain opened this issue Jan 24, 2022 · 6 comments

Comments

@splitbrain
Copy link
Owner

splitbrain commented Jan 24, 2022

This plugin was originally written by me to handle simple mail forms only. During a research project in 2011 the plugin was enhanced to add the template mode. This was part of my day job at CosmoCode. Since then the plugin has been extended and modified a lot to fit individual customer requirements and special use cases. It has become one of the most important plugins in corporate contexts.

Unfortunately its age and history shows in the code. The plugin has many problems:

  • low test coverage
  • outdated coding style
  • overly complex methods
  • still uses the deprecated form mechanism (which will go away in the future)
  • grown architecture that makes it hard to extend the plugin
  • lacking documentation

In other words, this plugin needs some serious refactoring to make it future proof.

I estimate that a refactoring of the plugin (not adding any significant new features) will take about a week (40h) of work. I personally can not invest that much time into it.

So if your business relies on this plugin, please consider hiring CosmoCode to do this (or join the DokuWiki Business Plugin Partner Program).

@splitbrain splitbrain pinned this issue Jan 24, 2022
@dregad

This comment was marked as off-topic.

@iainhallam
Copy link

Could we crowdfund the refactor? How much do you think it would cost, @splitbrain?

@splitbrain
Copy link
Owner Author

splitbrain commented Jun 23, 2022

Cost would be about 5200 EUR. For hiring CosmoCode a single client is needed. Of course that client could crowdfund...

Edit: fixed the amount - I'm bad at math ;-)

@dregad

This comment was marked as outdated.

@listerr

This comment was marked as off-topic.

splitbrain added a commit that referenced this issue Apr 20, 2023
This just barely makes the tests run through again. The tests just like
the rest of the plugin are in dire need of a major refactoring.

See #303 for more info
@splitbrain
Copy link
Owner Author

For everyone interested in crowd funding this: an alternative would be to have your company join the DokuWiki Business Plugin Partner Program.

splitbrain added a commit to cosmocode/dokuwiki-plugin-struct that referenced this issue May 22, 2025
This partly reverts and augments 131fd50

The validator call is needed to transform the given value into to proper
format (eg. an array for multivalues or an array of array for multi-page
values). This has to be done after applying place holders.

This might also fix #729

It might also break other usecase so it needs more real world testing.
Overall the bureaucracy handling is a mess, because bureaucracy is a
mess. Until splitbrain/dokuwiki-plugin-bureaucracy#303 has been
addressed, there is no good way to fix this.
splitbrain added a commit to cosmocode/dokuwiki-plugin-struct that referenced this issue May 22, 2025
This partly reverts and augments 131fd50

The validator call is needed to transform the given value into to proper
format (eg. an array for multivalues or an array of array for multi-page
values). This has to be done after applying place holders.

This might also fix #729

It might also break other usecase so it needs more real world testing.
Overall the bureaucracy handling is a mess, because bureaucracy is a
mess. Until splitbrain/dokuwiki-plugin-bureaucracy#303 has been
addressed, there is no good way to fix this.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants