My plugins roadmap

Started by Hervé, September 27, 2019, 15:22:42 PM

Previous topic - Next topic

Hervé

Hi,

As I've been requested, here is my current roadmap for all my Archi plugins. The lines in bold are my current priority.

All plugins
   Logger
      - Replace the helper methods' name by the calling methods' name
      - Add the ability to show the logs directly from Archi
      - Verify if the log file has been created (today the logger do not raise an exception if it cannot create/write to the log file)
      - Add ${date}, ${time}, ... variables to the log file name
      - Add an option to continue the existing log file or replace it when the plugin starts
   Plugins installation
      - Adapt the installation process to the new one introduced in Archi 4.5
      - Adapt the auto update process to the new one introduced in Archi 4.5
      - Move the JAR file from the source folder to Github "release"
      - Add a compatibility information (version x of the plugin is/is not compatible with Archi version y)
   GUI
      - Reduce the height of some windows that they fit on laptop displays
      - Fix GUI objects placement (check all windows on standard size and 4K displays on Windows, Linux and MAC)
      - Open windows on the same screen than Archi in case of multi-display computers
      - Center popups on the screen (must rewrite some SWT classes to achieve that)
   Archi compatibility
      - Adapt plugins to Archi 4.5
      - Adapt plugins to Archi 4.6
      - Use new "features" introduced with Archi 4.6
   Increase the code fiability
      - Add automated tests for all the major classes and methods
   
Database plugin (https://github.com/archi-contribs/database-plugin/tree/master/v2)
   - Increase friability in case of simultaneous multi-users access
   - Fix the model comparison from a database when the model has been opened from an archimate file and not imported from a database
   - Write some configuration options from the plugin's properties file into the database (that all users share the same options)
   - Encrypt the password in the properties file
   - Add an option to make objects name unique in the database (same name would then mean that this is the same object)
   - Remember the database used to import a model to export it to the same database by default
   - Manage credentials (define access rights : who can create / read / write objects)
   - Create admin procedures
      - Delete a model from the database
      - Delete a specific version of a model
      - Rename a model
      - Merge elements i.e.. remove duplicates (when two elements exist where only one should exist
      - Check database integrity
      - Add indexes (might be useful when the database grows a lot)
      - Copy data from a database to another one (for migration purpose for example)
      - ...

   - Rewrite the conflict management to make it more sexy
   - Allow to recursively import components (using depth limit)
   - Show view screenshots on the history window
   - Create a window showing detailed statistic about the model
   - Allow to replace a relationship by another one, even from another class (with validity verification), keeping its graphical shapes
   - Allow to replace an element by another one, even of a different class (but check the existing to/from relationships validity), keeping its graphical shapes
   - Add mode JDBC drivers (mogdb, odbc, ...)
   - Allow to duplicate a model (copy and change ID of new model)
   - Add a progressbar during the comparison of a model from a database at this may take some time
   - When models are auto-loaded in Archi at startup, show a popup that alerts the user that a newer version may exist in one of the database
   - ... Or even check in the databases if the model already exists in one of the databases
   - Replace Java Exception class by a specific DBException class
   - Add an option to automatically re-open the views that were opened when the model was exported to the database

Form plugin (https://github.com/archi-contribs/form-plugin)
   - Add an option to continue in case of error (by default, errors raise exceptions that completely stop the form)
   - Add a 'filter" condition that allow to show or hide GUI controls (if the condition is met, the control is shown, else it is hidden)
   - Add special lines that calculates the sum or the average of column values

ServiceNow plugin (https://github.com/archi-contribs/snow-import-plugin)
   - Complete rewrite of the plugin to add a GUI able to parse the ServiceNow Cis
   - Add a GUI to generate the configuration file
   - Change Json library to have more detailed error messages in case of parsing error
   - Add the ability to retrieve applications and business services
   - Validate the relationships using Archimate rules before creating them
   - Add an option to continue to parse the ServiceNow result in case of an error (today, any error stops the parser)
   - Add a cancel button to stop the plugin (in case the process takes too long)
   - Add an option to test a configuration file
   - Add an option to run the import in the background
   - Allow to create ServiceNow CIs from Archi
   - Allow to update ServiceNow CIs properties from Archi

Specialization plugin (https://github.com/archi-contribs/specialization-plugin)
   - Finish the version 2 of the plugin (using Archi 4.6 features should ease a lot)
   - Allow copy / paste of configuration between two models
   - Add import configuration from / export configuration to a file functionality
   
Script plugin (https://github.com/archi-contribs/script-plugin)
   - Remove it as it can be easily replaced by jArchi
   - ... or make it a real script language (that has really to be simpler than jArchi, else there will be no use)

Server plugin
   - I've always been dreaming about a client/server version of Archi where Archi would be running on a server with multiple architects connected to the same model at the same time (ideally through an https connection, using a web explorer), with real time interaction between them.
   - Unfortunately, I haven't been able to create such plugin so far
   - And I may never be able to do it alone, but I do not give up and keep hope that it may exist at some point ;D


I hope I haven't forgotten anything  ;D

At the beginning, I wrote my plugins for my own use and released them to the community as open source, that other interested people would be able to use them. But I received a lot of requests (or requirements, whatever) that are going far beyond my own need.  So as you can see, I have plenty of work to do ... but not so much time so I won"t be able deliver very quickly I'm afraid.

Best regards
Hervé

Phil Beauvoir

That's a lot of work for one person in their spare time.  :o

You should set up a GitHub Sponsorship so that people who use your plug-ins in organizations can show their appreciation:  ;)

https://github.blog/2019-05-23-announcing-github-sponsors-a-new-way-to-contribute-to-open-source/
If you value and use Archi, please consider making a donation!
Ask your ArchiMate related questions to the ArchiMate Community's Discussion Board.

Manj75

This is fantastic and thanks for putting it together.

I am using your ServiceNow and Generate View JScript and can only see the usage ramp up in the Architecture team I manage.  You should indeed setup a sponsorship - your work is much appreciated.

Thanks,
Manjit

Hervé

Thanks for your encouragement  ;D

Chris Usher

Hi Hervé,

I use your database and specialization plugins, I find them a real help.

I am using the database plugin v2.2.12 and find the "Replace" feature does nothing other than write to log.  Is that intentional, or has some code been missed out of the latest version?  If this feature is not yet finished, do you have any plans on your roadmap to introduce it?  It would save a lot of manual fixing of models if such a feature existed.

Thanks

Hervé

Hi Chris,

This is not really on purpose, it is just that I lacked time. I'll put it on top of my tasklist.

Best regards
Hervé

Chris Usher

Thank you Hervé. Your work is much appreciated.

rchevallier

thanks Hervé

"Add an option to make objects name unique in the database (same name would then mean that this is the same object)"
--> I suggest you make the combo (object type, object name) unique and not just the name

Hervé

Hi,

In fact, that was the plan (I must admin the lines are not very detailed).

Please note that for personal reasons I've got less time to spend on my plugins than I wish. So I cannot work on this roadmap at the moment but I hope I'll be able to do it again in few months.

Best regards
Hervé

Alberto

Hi Herve,
Your list of contributions to Archi is impressive. You deserve an honorary spot in the mast  ;D

Some time ago you had shared a View Generator based on jArchi, but I don't think this ever got published on GitHub.  Do you have any plans for it or was that effort abandoned? 

Hervé

Hi Alberto,

My apologies for this very late answer, I unfortunately doesn't have much time at the moment. Thanks a lot for your kind words.

I failed to improve my script to a way that looks good. In addition, Graphlib is quite limited regarding Archimate (specifically, it doesn't manage inclusions, nor relationships to other relationships). I started to search for other libraries but did not find any that was producing good looking views so I stopped.

You will find the jArchi scripts in the following post (https://forum.archimatetool.com/index.php?topic=639), it hasn't changed since.

Best regards
Hervé