[RFC] MOD Manager and CDB Intergration

Note: We are moving the topics of this forum and it will be deleted at some point

Publish your own request for comments/change or patches for the next version of phpBB. Discuss the contributions and proposals of others. Upcoming releases are 3.2/Rhea and 3.3.
Post Reply
User avatar
MichaelC
Development Team
Development Team
Posts: 889
Joined: Thu Jan 28, 2010 6:29 pm

[RFC] MOD Manager and CDB Intergration

Post by MichaelC »

Titania, MODX 2.0 and phpBB MOD Manager for 3.2

This idea goes very far back right back and here is a suggested implementation and proposal.

What would it do?
Well, it depends how far the integration would go. Two main suggestions fly around.
  1. Browsing and installation directly from your phpBB install.
  2. Updates to your phpBB Install.
Option 1 – Browsing, Installation and Total Integration
This would include having some sort of UI inside phpBB to navigate the Customisations Database. Then it would need to download the packages from phpBB and add them ready for the package installer. It would also need to have a system where working with the MOD Manager it would check for updates (using feeds most likely) and when there are updates notify the user. This could also be expanded to other new features for e.g the suggested conflicts and dependencies in MODX 2.0 so that it links you to the MOD or only shows MODs you can use etc.

Option 2 – Integration but no Browsing UI of CDB.
This would include usage of unique identifiers and feed urls (shouldn’t need any APIs) or maybe just a plain version check file (similar to the one used for phpBB) with a few lines of information in. The contribution would have to be downloaded and uploaded but once done so they would be checked for a connection to the CDB, if there isn’t one the user would be prompted to enter the CDB contribution unique identifier and CDB URL. The feed URL/version check file URL and unique identifier would need to be included in the MODX.

phpBB.com becoming too dominant in customisation distribution?
There needs to be the option of being able to either not have CDB integration for MODs in development and MODs not on phpBB.com and being able to use CDB’s from other sites but this shouldn’t be hard with this as its just a different start to the unique identifier and a different feed URL.

Implementation
I’m only really looking at option 2, but option 1 would need some investigating but it would require a lot more work including APIs of sorts. Maybe if option 1 is brought in 3.3 (or 4.0, whichever is earlier) so the integration gets better with time and 3.2 might be a bit early?

Unique Identifers
These will be the golden gates and almost the entire of the integration could be based on these if done correctly.
mod.phpbb_com./customise/db/.unknownbliss.showusertime

Code: Select all

{Contributiontypeasusedforurlrewrite}.{Websitedomain using _ for dots}.{CDBDirectorywhichcanuse/}.{modauthor}.{modnameclean(Used for titania urls)}
Version Check File
URL for Version Check: http://phpbb.com/customise/db/mod/show_user_time/version.txt << All of which is generated from the Unique Identifier except the http:// and the slashes which would be guessed.
That itself would give it the URL for the version check. The version check file could look something like this:

Code: Select all

Unique Identifier for Confirmation
Latest Revision Number
Latest Revision Name
Contribution Details Home
Latest Revision Download
Optional MODX File (For preview in the package manager)
Version Check URL in MODX XML File
This would simply include a link to the version check file in the MODX which would be used and the unique identifier used if it is incorrect or if their isn’t one. I would find this unlikely as it would need to be added after validation which would mean repacking each and every MOD.

As a feed
It could be done as a feed and list the last 10 approved revisions which could allow for further functionality. It could include the information in the version check file for each revision.

Not just MODs
This mainly depends on whether the MOD manager would expand to be a package manager and be extended to include language and styles management which is probably unlikely until 3.3 (or phpBB4, whichever is first) at a guess. Official tools, seeing as they aren’t all designed to go into phpBB I would very much doubt it and won’t even mention them again.

Styles can have a unique identifier as can language packs. For styles they can include the unique identifier inside the style.cfg. Languages I don’t know much about but Mael Soucaze could advise on this? Bridges use MODX so that is that sorted on where to put the unique notifer but this would need to be included in the MOD Manager (don’t know if this is the case for not but if someone could shed some light, please do.) as they currently don’t have an ACP module like styles and language packs do. Custom BBcodes I have no idea how this could be integrated but then again it hasn’t even been implemented into the CDB yet and I think having these in this integration might be overkill.


Just a note, this was written for 3.2, then changed for 3.1 and now its been changed back to 3.2 so there may be some things let over from that.
This would be good going in with the MOD Installer with 3.1 but I doubt there will be enough time to do so so I'm looking at 3.2 for this mainly.

In a Nutshell
A version check url using unique identifiers if a feed url is not avaliable.
Warnings on ACP home for not up to date modifications.
List of MODs to update in MOD Manager
Details of update on the details page of each MOD including download link and information link etc.
Possible expansion at a later date for other contribution types or remote DB browsing and direct installing.

Dependencies
  • MOD Manager
  • Titania
  • MOD 2.0
Formerly known as Unknown Bliss
psoTFX wrote: I went with Olympus because as I said to the teams ... "It's been one hell of a hill to climb"
No unsolicited PMs please except for quotes.

User avatar
brunoais
Registered User
Posts: 964
Joined: Fri Dec 18, 2009 3:55 pm

Re: [RFC] MOD Manager and CDB Intergration

Post by brunoais »

I like the option 2 mostly. I think that way of doing stuff is still much phpbb style. Go to the database directly in the official site and get mods. It allow us easily, also, to also have version check for MODs not on phpbb website. With option1, how would we work with MODs not on phpbb website? I believe she should give the option to our users and MOD makers not to have their mods on phpbb website and still have the opportunity to have this feature.

Besides that, after thinking for a while I'd actually use a file with somewhat a different format. Something like:

Code: Select all

Unique Identifier for Confirmation
Latest stable Revision Number
{tab}Latest stable Revision Name
{tab}Latest stable Revision compatibility
{tab}Latest Revision Download
Latest beta Revision Number
{tab}Latest beta Revision Name
{tab}Latest beta Revision compatibility
{tab}Latest beta Download
Contribution Details Home
Optional MODX File (For preview in the package manager)
Example: (picking up the unknownbliss example):
Please note that this one is also valid:
If you have noticed, in the space of the beta version, I placed a '-'. That means to skip that because there are no beta versions here.
In the beta version name, I placed a '-'. That means that I don't have a name for it (I was just thinking we can also use, instead of the '-' just an empty string. Comment that please)
This version file will allow us to extend and create extra information for later version if we want without breaking it much. If we create a 4th option just for stable versions, we can have something like this:
mod.phpbbcom.customisedb.unknownbliss.showusertime
1.1.0
{tab}Arean
{tab}3.1.*
{tab}http://www.phpbb.com/customise/db/download/id_77079
1.2.0b
{tab}-
{tab}3.0.1 - 3.2.1
{tab}http://www.phpbb.com/customise/db/download/id_77089
{tab}theOption4Value
http://www.phpbb.com/customise/db/mod/show_user_time/
http://www.phpbb.com/customise/db/view-install/id_53778
The tabs will mark the context in grouping multiple related things. The stable version vs the beta version and I believe this is also somewhat more scalable than unknownbliss's version and has parts that are skippable (searching if the 1st character is a tab and then skip the line is easier than analysing the line and decide what that is).

Comments to my extension and critiques are very well welcome.

User avatar
DavidIQ
Customisations Team Leader
Customisations Team Leader
Posts: 1904
Joined: Thu Mar 02, 2006 4:29 pm
Location: Earth
Contact:

Re: [RFC] MOD Manager and CDB Intergration

Post by DavidIQ »

There are no beta versions visible in the CDB. Only approved MODs and styles are viewable there.

I would also go with option 2 as well since the user should be able to change repo sources. Some other site could serve up XML format data readable by phpBB for this purpose. We would obviously have to provide the expected format.
Image

User avatar
MichaelC
Development Team
Development Team
Posts: 889
Joined: Thu Jan 28, 2010 6:29 pm

Re: [RFC] MOD Manager and CDB Intergration

Post by MichaelC »

I agree compatible versions is helpful, the problem is with one revision being able to support multiple versions. It would be better to list it seperated by commas all the phpbb versions supported by the MODs, then the MOD Manage can even check if it supports the current version.
Formerly known as Unknown Bliss
psoTFX wrote: I went with Olympus because as I said to the teams ... "It's been one hell of a hill to climb"
No unsolicited PMs please except for quotes.

User avatar
brunoais
Registered User
Posts: 964
Joined: Fri Dec 18, 2009 3:55 pm

Re: [RFC] MOD Manager and CDB Intergration

Post by brunoais »

I read all your ideas and limitations and mixed with my own forming this.
If betas are not allowed, how about if we do like this:

Code: Select all

Unique Identifier for Confirmation
Contribution Details Home
Optional MODX File (For preview in the package manager)
---
Latest stable Revision Number
{tab}Latest stable Revision compatibility
{tab}Latest stable Revision Name
{tab}Latest Revision Download
Alternative1 Revision Number
{tab}Alternative1 Revision Name
{tab}Alternative1 Revision compatibility
{tab}Alternative1 Download
Alternative2 Revision Number
{tab}Alternative2 Revision compatibility
{tab}Alternative2 Revision Name
{tab}Alternative2 Download
...
One possible rule for this can be, they must be in order so that the earliest version is at the top.
The alternatives are older versions for older/different versions of phpbb. E.g, if we want to make a MOD for 3.1.0a and make another version for 3.0.10. We could have:
By placing the version it is compatible 1st we can decrease the processing by a bit.
By using the sequence of characters --- to know when does the versioning starts.
This way we don't need to keep processing until the end if the information we need it at the beginning.

What do you think? Too much conservative of resources? Is this a better idea?

User avatar
MichaelC
Development Team
Development Team
Posts: 889
Joined: Thu Jan 28, 2010 6:29 pm

Re: [RFC] MOD Manager and CDB Intergration

Post by MichaelC »

I think keep it simple. Just show the latest revision as people should (hopefully) keep their installs up to date and there wont be a new release of a mod for an older phpbb version. (aka a 3.0.9 release after 3.0.10 is released) so it would be pointless unless its updated the day/week before a release.
Formerly known as Unknown Bliss
psoTFX wrote: I went with Olympus because as I said to the teams ... "It's been one hell of a hill to climb"
No unsolicited PMs please except for quotes.

User avatar
brunoais
Registered User
Posts: 964
Joined: Fri Dec 18, 2009 3:55 pm

Re: [RFC] MOD Manager and CDB Intergration

Post by brunoais »

Hum... In the MOD DB it seems like it saves all the versions... Why not in this system?

User avatar
DavidIQ
Customisations Team Leader
Customisations Team Leader
Posts: 1904
Joined: Thu Mar 02, 2006 4:29 pm
Location: Earth
Contact:

Re: [RFC] MOD Manager and CDB Intergration

Post by DavidIQ »

brunoais wrote:Hum... In the MOD DB it seems like it saves all the versions... Why not in this system?
We do because it makes sense to track versions in the repository (CDB). Doing the same locally in a forum...not so much.
Image

Post Reply