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
Summary of how to manage Piwik 2 and 3 + Plugins for Piwik 2 and 3 #9806
Comments
After the release of Piwik 2.16.1 we will fully focus on Piwik 3 and fix bugs etc in |
FYI: We will also require any plugin developer to specify a supported Piwik version. We may need to adjust our example plugins that are used for generating a plugin / theme. Eg one has to specify |
done... should we also force defining which PHP version is supported? I presume we cannot expect that developers test it eg on PHP 5.3 (or later PHP 5.5 with Piwik 3) when they develop on eg PHP 7 |
Everything sounds good 👍
Is this already implemented or does it need to be done? (maybe you could implement this in 2.16.1?) |
if our tests run on older PHP 5.X and we assume that tests cover the plugin's functionality, maybe we could pre-set the required PHP version to 5.X ? (to decide on 5.X we should pick the maximum version used for running tests (ie. if we run unit/integration/system tests on 5.3 but UI tests on 5.5 then 5.5 should be minimum required PHP version).) |
This is implemented in https://github.com/piwik/piwik/pull/9797 we also send release channel and whether someone prefers a stable version or is keen on betas.
It's really tricky here. I first added it in core and Marktplace (even require it's set) but then changed mind again and rather removed it as it may be hard to maintain and developers might forget to maintain the PHP version anyway. So I won't require it's set in the Marketplace. By default for now plugins are supposed to support same minimum PHP version as the lowest Piwik version they support. Eg when a plugin supports Piwik 2.X they should support PHP 5.3.3, for Piwik 3.X they should possibly support PHP 5.5.X. I reckon this is not the reality though so we should maybe set it in the plugin generator, or when generating a component. Whenever generating any component, such as an API or a Controller for a plugin, I did update the In the end I decided to simply leave it as it is. Maybe we could show a warning or question whenever generating a component for a plugin and there is no PHP version set, to ask the plugin developer to verify whether the min PHP version of Piwik is actually supported. We could also have different behaviour for Piwik PRO and community developers and eg not set a PHP version for Piwik PRO devs by default. |
@tsteur this all sounds good so far 👍 I've moved this issue to 2.16.2 where we will merge the Marketplace feature. Maybe this RFC could be closed (and ideally this knowledge, copied into Marketplace readme, or a relevant developer doc on developer.piwik.org ?) |
It should be maybe put on developer.piwik.org as Marketplace is private. We have a "core" section on developer.piwik.org and could put it there somewhere |
Closing this one as suggested |
We had a meeting and discussed how we could handle Piwik 2 and 3 in the future. This is a summary of the discussions so far.
Piwik core:
We will have the following branches (names to be defined):
master
will point to2_X
until we have made good progress for 3.0. Say approx 2 months before the first RC we will switch master to3_X
. Every day or so we will merge2_X
into master (if build is green), but this is part of lifecycle project. The2_X/3_X
branches will be basically ourdevelop
branches. Pull requests will need to be made against2_X or 3_X
probably. To explain this we could use new Pull request template feature.Plugins
Our plugins will have the same branches (names to be defined):
master
points basically to2_X
as well. As soon as we mergecore 3_X
intocore master
, and the plugin was made compatible withcore 3_X
, we will merge theplugin 3_X
intoplugin master
.We always create the branches for the different versions all the time as tests won't be able to support 2.X and 3.X (different system and UI tests etc) and we actually want to have LTS for plugins too. Also this way we make sure to keep
master
always green. Inplugins 3_X
branch we need to requirepiwik: >=3.0.0
, in2_X
branch we need to requirepiwik: <3.0.0
. We need to have an automated test for this to make sure our plugins have this specified.Tests:
As our plugins will either support Piwik 2 or 3, not much will change:
piwik:>=2.0|<=3.5
we run tests against minimum (2.0.0), latest stable (3.5) and maximum version (3.5)piwik:>=2.0
we run tests against minimum (2.0.0), latest stable (eg 3.7) and maximum version (latest 3.X beta or master)piwik:<3.0.0
we run tests on minimum (2.0.0), latest stable (eg 2.16.1), and maximum version (latest 2.16.X beta or master)piwik:>=3.0.0
we run tests on minimum (3.0.0), latest stable (eg 3.7) and the maximum version (latest 3.X beta or master)Possibly we run UI tests against PHP 5.5 and PHP 5.6 to make sure it works on both PHP versions. Maybe PHP 5.5 and PHP 7.0. Ideally we run (UI) tests against all major supported PHP versions
Marketplace:
require
specified inplugin.json
(latercomposer.json
)This will be our process so far, if you have any feedback let us know.
The text was updated successfully, but these errors were encountered: