Closed (fixed)
Project:
Drupal.org customizations
Version:
7.x-3.x-dev
Component:
Miscellaneous
Priority:
Major
Category:
Plan
Assigned:
Reporter:
Created:
28 Sep 2015 at 14:45 UTC
Updated:
18 Jun 2018 at 16:49 UTC
Jump to comment: Most recent
Comments
Comment #2
timmillwoodComment #3
MixologicWe are probably not going to be running a version of packagist on the d.o. infrastructure, and would more likely lean towards the solution proposed by cweagans whereby we support all of composers features of searching and requiring by providing equivalent json endpoints. Its less risk and easier for us to do it that way.
Comment #4
timmillwood@Mixologic - I think that'd be a shame because on http://packagist.drupal-composer.org we already have a tried, tested and stable solution. Also by d.o just providing the "equivalent json endpoints" we will be missing out on other data and functionality that packagist offers (extra data, caching, packaging etc).
Comment #5
MixologicI've rummaged around in the source of packagist to see what it *does* provide, and the vast majority of it is stuff that drupal.org itself is already providing, so it doesnt make sense to have duplicate services or datasets. We are *not* going to integrate drupal.org users into packagist, allow people to upload packages using the interface, or even *have* the web interface for package discovery. In short, most of what the packagist software does, drupal.org is already doing, with the sole exception of providing metadata about the packages in a format composer works with.
Basically we're aiming to make it so that if you are using composer from the command line, it just works. But we are *not* planning on duplicating package discovery, counts and stats - all of that already exists, and we're not going to be merging two systems together. If there are things that packagist offers that isnt on project pages *now* (like parsing the composer.json and putting up 'requires' data for example, we'll add that to the d.o. project pages.
Comment #6
timmillwoodMy concern is the "equivalent json endpoints" solution seems a little hacky, untested and unstable. Where as packagist is a tried and tested solution used by many.
Yes, we don't need the stats, the discovery or the UI. However I believe some of the composer compatible caching, packaging, etc would be good to have.
Comment #7
hestenetUpdating the issue summary to reflect that we'll be using this as a meta issue for
Comment #8
hestenetComment #9
hestenetComment #10
hestenetComment #11
hestenetComment #12
hestenetComment #13
hestenetComment #14
mile23A) This is a bad idea.
B) ...
Ideally,
composer.jsonfiles for modules should declare their dependency on core. So if your module package isdrupal/frammistat:1.0.0and it requiresdrupal/drupal:~8.0then there is no problem.But because we're thinking about automating all this and using version numbers as ridiculous as 801.0.0, we can't do that.
Which is part of why A) above is true.
The wrongness of it aside, here's a solution: *.info and *.info.yml files declare their core dependency. So therefore, a Drupal version like 8.x-1.0 which has an info file that says
core: 8.xwould resolve to module version 1.0.0 with a dependency on some version of D8, represented by 8.x in the info file. The problem is not in the 1.0 part but thecore: 8.xpart, because that's ambiguous.Thus, once that problem is solved, your module's version is 1.0.0, because *that's what it really is.* And the dependency is on a specific version of Drupal, because *that's what it really is.* And if you have the wrong version of Drupal for 1.0.0, then composer will tell you because *that's what it's supposed to do.*
And if we end up with version numbers like 801.0.0 then I dunno what.
Comment #15
hestenetComment #16
hestenetComment #17
hestenetComment #18
hestenetComment #19
hestenetComment #20
hestenetFor those following this issue who may want to comment, child issue #2622450: Provide semver versioning shim for Drupal.org Composer facade has been updated with the translation format the semver shim will use.
Short version: separate end points for platform version, and then relatively straightforward conversion to semver without needing to include platform version in the format.
Comment #21
hestenetComment #22
hestenetComment #23
hestenetComment #24
hestenetComment #25
hestenetComment #26
hestenetComment #27
fgmIt might be useful to ping Seldaek to see if he has some insights for this issue, as he often has on other ones.
Comment #28
MixologicSeldaek attended our monthly meetings when we were building the Composer facade and provided a lot of valuable input.
Comment #29
drummThis is done, right?
Comment #30
Mixologicyeah, mostly. theres always more features, but we dont need a meta issue anymore now that theres a whole queue to track things.