-
Notifications
You must be signed in to change notification settings - Fork 2
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
Prepare binary plugins text for AGM #1
Comments
Message (still) looks truncated… |
yep, because I haven't finished writing it yet :) |
Previous discussion: http://osgeo-org.1560.x6.nabble.com/QGIS-Developer-Windows-only-version-of-a-QGIS-2-18x-plugin-tt5394159.html#none
|
@qgis/psc please proofread and comment |
What is not really clear from the question is how we want to deal with binary dependencies which are FOSS. For example many third party python modules (that may be used by plugins) use compiled binaries. It is common that they are distributed with plugins and this would essentially prohibit their use. Not sure if that is intended or if only non-FOSS binaries are meant to be excluded? |
@wonder-sk thanks a lot, indeed it would kill wheels as well. I updated the formulation. |
For the voting I would suggest to add some extra context for each question, so that voting members better understand what is being voted - many of them are not developers. Maybe it would be good to name some existing QGIS plugins that would be affected. Also it is worth mentioning the consequences. If any of the questions gets voted YES by the majority, we will have have to remove some plugins and make the life more complicated for users and developers. For example, if we would prohibit Windows-only plugins. Who wins? Not sure really... |
thanks @wonder-sk I'm completely with you. We want to spec out much more the text to make sure that anyone has the full context and implications for each vote. @timlinux, myself and ideally @pcav (as the champion of this vote) will work on it and we'd really like your feedback. |
Thanks for commenting, I'll add some context. Of course, help is appreciated. |
Proposed text with context; very biased currently, please add different views:
|
Hey @pcav I think we need to vote on unbiased texts.
|
I think we need to separate:
|
like the swiss votes, I like it. For example: Vote 1Plugins are allowed to be platform-specific Arguments in favor:Arguments against:The aim of QGIS.org is to freely empower all users; platform-specific plugins limit functionalities to a subset of users. Furthermore, clean coding is usually multiplatform. Vote 2Plugins are allowed to include FOSS binaries Arguments in favor:Arguments against:Distributing binaries along with plugins does not allow us to examine it, and is a serious security risk. Vote 3Plugins are allowed to include proprietary binaries Arguments in favor:Arguments against:Same as above, plus the issue of doubtful licencing. Vote 4Plugins are allowed fetch binaries post installation Arguments in favor:Arguments against:This could raise the same security issues as above. The main difference is that the user can be warned and decide whether the download is acceptable in his context. |
@wonder-sk, @m-kuhn something like this? |
should we change vote 2 to "Plugins are allowed to include FOSS binaries? @pcav what do you think? |
+1 |
Is someone able to provide a list of plugins affected by these decisions as requested by @wonder-sk ? Or a list of plugins that have not been allowed in the past because of these rules? Once we have this list, I can add a couple of lines of advantages that a loose policy will offer for end users, expected effects of a hard policy and a comparison with the situation of some drivers in the osgeo4w installer (oracle, MrSID, ECW, ...). |
I like this approach, it goes exactly in the direction I was suggesting. |
I do not have an easy way to find them. However, these are very exceptional cases. This is one of my arguments against relaxing these rules: adding risks for extremely occasional advantages, if any. |
Even if they are exceptional, it would be good looking at them to know what we discuss. I think politics and rule making should be different to shadow boxing. |
fro windows-only plugins I can only recall one including one specific krigiging alg, implemented as a windows binary. |
What was so bad about this one that we need to ask 4 questions about it? |
IMHO, breaking a quite reasonable rule just for one (possibly) missing option in a well known alg is not justified. |
Draft proposal, updates welcome Plugins are allowed to be platform specificQGIS.org wants to give users the freedom to use QGIS the way they want and to share what they did. By allowing users to share plugins even if they are platform specific, these can be used by others on the same platform. Everyone else has the possibility to take these plugins and adapt them for more platforms. By allowing plugins to be platform specific we also open up the possibility to ship plugins which give access to specific tools like the touch bar, a hardware piece that is only available on mac. Plugins are allowed to include FOSS binariesMany of the tools we use in everyday life are delivered in binary format. QGIS, Python, the operating system and much more are installed from binary packages on most systems. This allows everyone out there to benefit from these applications and libraries without using a compiler. "Plugins are allowed to include proprietary binaries" and "Plugins should not be allowed to fetch (proprietary?) binaries post installation"Plugins are a way to integrate QGIS with custom business logic, external applications and hardware. Some tools are not open source. We want to empower QGIS users to integrate QGIS in the most flexible way possible with the best tools for their workflow. This already applies for data providers, where we integrate with MrSID, Oracle, ECW, Excel files and other proprietary formats and databases. GeneralThe pro committee wants to give users the freedom to use QGIS, their information and their computers the way they want. We are convinced that open source has a very strong backup in the QGIS community and that we can better encourage developers and users to foster open source by leaving them the freedom rather than putting restrictions in place. Note: the above statements do not necessarily reflect my personal opinion! |
I also gave this some thoughts. Clearly we don't want to
On the other hand we don't want to completely forbid them, if there are really good reasons. What if: in general we don't allow both, but if we really need to do it, we organize a voting on the individual exception. The plugin author would have to explain clearly, why it is a good idea to have such a plugin that works only in one OS (like the Mac touchbar thing), or why it is impossible to distribute the plugin without a binary. And such plugins, esp. the ones containing binary software would require extra reviews by more than just one person. I don't know what would be the right group to vote on the exception? Core devs? PSC? Voting members? That way we send out a message that we want the plugin authors to do everything they can to support all platforms and to make all source code available, while still allowing exceptions. Otherwise I fear a bit, like Paolo, that we get flooded by Windows only plugins. We need to have some barrier that prevents plugin authors from thinking - ok, now I can easily ship Windows only plugins. Since I don't care about Mac or Linux I can now save time and do everything Windows only. |
Please let me add some personal thoughts, next to the pro arguments above: I am clearly in favor of allowing platform specific plugins -- with a recommendation to make them cross platform. Who gives us the right to request something else? I think we should be grateful for all the work which is shared. If someone wants more he is free to contribute. And it's not an issue anyway with the current case count of 1. Open source spirit. I am also clearly in favor of plugins containing pre compiled floss binaries. Or we should stop using numpy wheels right now. (I am biased, we develop QGIS Model Baker which post loads a LGPL licensed library called ili2db, shipping this directly in the plugin has been discussed several times.) On the other questions about regulating proprietary binaries for plugins I am undecided. I can live with a regulation to not distribute them through our plugin infrastructure. But I would like to have guidelines on what to do instead. What I don't want is uncertainty with developers "I can't use QGIS for this project because I need to use a proprietary hydrological calculation engine within it". And I don't want people having to use google to find funkylib.dll on spurious websites. |
|
Can I suggest to pose questions rather than statements? I also tweaked the wording from others above in this thread to make the questions more natural and removed spurious or emotive statements. Vote 1: Should platform-specific plugins be hosted in the QGIS plugin repository?Arguments in favor:QGIS.org wants to give users the freedom to use QGIS the way they want and to share what they did. By allowing users to share plugins even if they are operating system specific, these can be used by others on the same operating system. Everyone else has the possibility to take these plugins and adapt them for more platforms. By allowing plugins to be platform-specific we also open up the possibility to ship plugins that give access to specific tools like the touch bar, a hardware piece that is only available on mac. Arguments against:QGIS.org would like to provide as similar as possible experience across all operating systems. Platform-specific plugins limit functionality to a subset of users. Vote 2: Should plugins hosted in the QGIS plugin repository be allowed to include FOSS binaries?Arguments in favor:Some python packages are actually written in C and compiled as python modules. Shipping these as pre-built binaries will allow users of a plugin to use it without using a compiler. Arguments against:Distributing binaries along with a plugin prevents our understanding of what that binary will do on systems where it is deployed, which poses a potential security risk. Vote 3: Should plugins hosted in the QGIS plugin repository be allowed to include proprietary binaries?Arguments in favor:Plugins provide a way to integrate QGIS with custom business logic, external applications and hardware. Some third party tools may not be open source. We want to empower QGIS users to integrate QGIS in the most flexible way possible with the best tools for their workflow. There is already precedence in QGIS core with our data providers, where we integrate with MrSID, Oracle, MSSQL, ECW, Excel files, and other proprietary formats and databases. Agreement with this proposal should not be seen as an end run around the fact that every plugin is required to comply with licensing requirements and inform the user about their rights and duties, this applies for proprietary as well as open-source plugins. Arguments against:Distributing binaries along with a plugin prevents our understanding of what that binary will do on systems where it is deployed, which poses a potential security risk. Proprietary binaries are even more opaque than open-source ones (which at least allow back-referencing the source project to view the code that was ostensibly used to compile the binary). Understanding the licensing implications of proprietary binaries used by plugins requires more work for our plugin reviewers to investigate whether the binary can legally be used in this manner. Vote 4: Should plugins hosted in the QGIS plugin repository be allowed to download binaries onto your computer post-installation?Arguments in favor:For resource management reasons and concerns about providing a good user experience, we limit the size of plugins that can be hosted in the QGIS plugin repository. Allowing post-installation fetching of binaries allows larger resources to be included in a plugin but not uploaded to the plugin store. Allowing post-installation fetching of binaries means that a plugin using binary components does not need to ship binaries for all supported operating systems within the plugin bundle. Rather the operating system specific binary can be retrieved post-installation. Arguments against:There are security concerns about plugins fetching arbitrary code from the internet and running it on our user's computers. Users should be warned before anything downloads to their computer so they can decide whether the download is acceptable in his context or not. |
May I suggest to reformulate:
by
I know we're mixing 2 concepts here: platform dependent and binary linking but I think it helps understanding the topic and avoid people think it's going to be for mac users only |
If we choose to shoot a bullet in our foot (by enforcing strict(er) rules), could we consider:
I think the vote is already complex enough, but I would see it as an additional global question:
|
I think we miss the security aspects and the legal one here. As for security and related responsibility : if QGIS.org hosts binaries and distribute them, the end-user should be able to trust them not to have any security problems. For this we need at least :
Distributing binaries also may have legal consequences : without A and B above, how do you certify that licences are respected ? Who will be in charge to assess licence policies for binary distribution ( opensource & proprietary) ? That person will represent QGIS.org and be responsible for all related risks, we should have a proposal before any decision. As for legal, there is also another aspect, which is a grey area : our plugins are all GPL, as an That said, did we study alternatives ? As soon as we ship binaries, we are starting building a software deployment system. Software deployment is really complex, and there are already multiple existing solutions for that : Python pip/wheels/pypi, OSGeo4W are among the tools we should probably favor for complex installation and deployment, particularly when there are binaries and dependencies. I have the impression that we are adding features leading to re-inventing the wheel ( no pun here) in a very low-quality way, while adding a lot of risks and complexity in our core system. I also fail to see the touch bar argument : there is a real difference between having a plugin with some code specific to one platform ( like touch bar for quick access to plugin features), and a plugin which is platform-dependent and available only for one specific platform. We should also identify for each issue mentioned, the impact on our plugin management system, how much development that would require and who would take care of the changes. For what it's worth, my opinions here :
|
Import Initial points from various discussion:
Dear community voting members, last year discussion on allowing platform specific plugins in the official QGIS’ plugin repository created an interesting discussion with both pro and contra arguments [1].
The PSC agreed that due to the very split nature of the positions a community vote is needed.
We hereby prompt you to vote on the following items before February 7th 2020 at
https://forms.gle/AAhG1hGQuU5u2WLW7
[1] https://lists.osgeo.org/pipermail/qgis-developer/2019-February/056114.html
The text was updated successfully, but these errors were encountered: