Skip to content
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

[6.2][#1548] Install plugins from remote repository #226

Open
wants to merge 10 commits into
base: master
Choose a base branch
from

Conversation

miurahr
Copy link
Member

@miurahr miurahr commented Apr 10, 2022

Pull request type

Please check the type of change your PR introduces:

  • Bug fix
  • Feature
  • Documentation
  • Build and release changes
  • Other (describe below)

Which ticket is resolved?

What does this PR change?

  • Change Preference->plugins UI to 2 pains, left side is a list of plugins, right side is a detail text box.
  • Add plugin download thread
  • Update PluginInformation to handle remote URL and SHA256
  • Download remote database and construct plugin list as preference->plugin UI table.

Other information

Plugin database is created as https://github.com/omegat-org/omegat-plugins/

@amake

This comment was marked as outdated.

@miurahr miurahr force-pushed the topic/miurahr/plugins/remote-plugin-management branch from 9236353 to 2e65928 Compare April 13, 2022 09:09
@miurahr miurahr changed the title [#1548] Install plugins from remote repository [WIP][#1548] Install plugins from remote repository Aug 13, 2022
@miurahr miurahr modified the milestone: 6.1.0 (Require Java 11) Aug 21, 2022
@brandelune
Copy link

Is there a reason why we don't have a milestone anymore?

@miurahr
Copy link
Member Author

miurahr commented Dec 7, 2022

We need to have a discussion how to manage 3rd party plugin registry in core team or community, how to be a database format of 3rd party plugins, how to accept an addition/modification/removal request, how to decide accept or decline, how to remove an item from the list, etc....

@brandelune
Copy link

Sure, but we can have that feature included in the code, and then start the discussion based on the feature requirements, don't you think so?

Is that what is keeping you from "targeting" 6.1?

- PluginInstaller: make it as singleton instance
- Download remote plugin list when requested and keep it during session.

Signed-off-by: Hiroshi Miura <miurahr@linux.com>
@miurahr miurahr force-pushed the topic/miurahr/plugins/remote-plugin-management branch from 6249163 to 135352e Compare December 9, 2022 02:22
@miurahr miurahr added this to the 6.1.0 (Require Java 11) milestone Dec 9, 2022
@miurahr miurahr force-pushed the topic/miurahr/plugins/remote-plugin-management branch from 135352e to 4f5e2b3 Compare December 9, 2022 02:27
@miurahr
Copy link
Member Author

miurahr commented Dec 9, 2022

Sure, but we can have that feature included in the code, and then start the discussion based on the feature requirements, don't you think so?

There is no consensus with you and core team to have an obligation of maintains certified plugin database on the web.
There is also no discussion how we should have a database data format and its work flows.

Once the code included, above is forced to you with the assumptions of the code.

OK, PLEASE maintain the database by @brandelune !? Is it what you want?

@amake said

This gets us into an entirely new area for the project (hosting a directory of plugins) so I want to take a thorough look before we commit to it.

@miurahr

This comment was marked as outdated.

@miurahr

This comment was marked as resolved.

@miurahr
Copy link
Member Author

miurahr commented Dec 9, 2022

Because we publish Current OmegaT versions on OmegaT web,
https://omegat.sourceforge.io/Version-latest.properties, it may be possible to publish plugin list like https://omegat.sourceforge.io/plugins-latest.xml

@brandelune
Copy link

Ok, let's have this discussion on the list.

https://sourceforge.net/p/omegat/mailman/message/37746064/

…ment

# Conflicts:
#	src/org/omegat/Bundle.properties
#	src/org/omegat/gui/preferences/view/PluginsPreferencesController.java
#	src/org/omegat/util/OConsts.java
use remote plugin database as json format.

Signed-off-by: Hiroshi Miura <miurahr@linux.com>
Update plugins.json download url.

Signed-off-by: Hiroshi Miura <miurahr@linux.com>
Signed-off-by: Hiroshi Miura <miurahr@linux.com>
@miurahr miurahr changed the title [WIP][#1548] Install plugins from remote repository [#1548] Install plugins from remote repository May 4, 2023
@miurahr miurahr marked this pull request as ready for review May 4, 2023 04:51
Signed-off-by: Hiroshi Miura <miurahr@linux.com>
@miurahr
Copy link
Member Author

miurahr commented May 4, 2023

Now we have a JSON style database.

Also allow localization of plugin category in the table.

Signed-off-by: Hiroshi Miura <miurahr@linux.com>
Signed-off-by: Hiroshi Miura <miurahr@linux.com>
@miurahr
Copy link
Member Author

miurahr commented May 4, 2023

Improve "preferences > plugins" UI and localize type and status column.

Signed-off-by: Hiroshi Miura <miurahr@linux.com>
@miurahr
Copy link
Member Author

miurahr commented May 15, 2023

OkAPI filters plugin for OmegaT 1.13-1.45.0 is released with support for new Plugin configuration UI.
image

It looks better for management.

@miurahr miurahr changed the title [#1548] Install plugins from remote repository [6.2][#1548] Install plugins from remote repository May 27, 2023
@miurahr miurahr requested a review from Kazephil May 27, 2023 14:42
@miurahr
Copy link
Member Author

miurahr commented Jul 11, 2023

Are there any good way to check downloaded jar file is not malformed using signature file jar.asc?
In current proposed procedure ask plugin developer to register their GnuPG/OpenPGP public key in GitHub account.
Is it possible for OmegaT to detect signer account and download a public key?

@miurahr
Copy link
Member Author

miurahr commented Aug 25, 2023

Now "description" field is not localized. There is no specification how to define localized description in MANIFEST.
Does anyone have idea how to realize it?

PREFS_PLUGINS_COL_CATEGORY=Category
PREFS_PLUGINS_COL_NAME=Name
PREFS_PLUGINS_COL_VERSION=Version
PREFS_PLUGINS_UPGRADE=Upgrade
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think update is better than upgrade:

  • PREFS_PLUGIN_UPDATE=Update

PREFS_PLUGINS_INSTALL=Install

PLUGIN_STATUS_BUNDLED=Bundled
PLUGIN_STATUS_UPGRADABLE=Upgradable
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Following from the above:

  • PLUGIN_STATUS_UPDATABLE=Update available

Updatable is better for the key name, but "update available" is more natural for users.

@Kazephil
Copy link
Contributor

Kazephil commented Oct 9, 2023

Now "description" field is not localized. There is no specification how to define localized description in MANIFEST. Does anyone have idea how to realize it?

That might be a good question for the development list. I unfortunately don't know much about MANIFEST files, so I can't make any relevant suggestions.

@Kazephil
Copy link
Contributor

Kazephil commented Oct 9, 2023

A more general comment: this looks much better than the current plugin UI.

One question, though. How is the initial order of the plugins shown determined? It seems completely random, but it would probably be more user friendly to sort them by either category or name at first, until the user changes the sort order.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants