Neos project mono repositories


(Christian Müller) #1

Hey all,

based on:

and

I would like to discuss our best practice suggestion for the folder containing the packages delivered with the distribution.

I originally used Source in my first experiment, Karsten suggested Sources but we talked about something with Packages in it, so now splash uses DistributionPackages and the example uses LocalPackages. Additionally ProjectPackages or BundledPackages could work as well. To have this written down a short poll to take a decision:

There was a poll here that unfortunately didn’t show voters and so was not good to use, but that original poll ended in src, we redid the poll to make sure we can separate team member votes, therefore the original poll has been removed now.

IMPORTANT LOOK FURTHER DOWN FOR POLL WITH PUBLIC VOTERS

Seems we have a preference for DistributionPackages finally so that will be the officially documented way.


Nesting nodes problems
(Soren Malling) #2

Since this is a composer concept (of directory package repository) I don’t see why it’s necessary to come up with a best practice other than a description of the concept, and where to use the name you might choose.

It’s more of a documentation task of the concept “Mono repository” and how you (in general) organize a Flow project in terms of version control etc.


(Christian Müller) #3

That is true of course and I obviously only meant to have a unified best practice name for documentation and tools like splash. Also I would find it nice to find most systems with the same name :slight_smile:


(Soren Malling) #4

As long as the voting result is not reflected in the Core but serve as a good example in the documentation I’m up for whatever :slight_smile:


(Bastian Heist) #5

I’m strongly in favor of “DistributionPackages” since it is the most “correct” name - it’s the directory for the packages that come with the distribution itself. LocalPackages sounds like they could be only for local development or something along these lines.


(Max Strübing) #6

I’m voting for Source: everytime I see a repository out there in the wild with a reasonable number of files in the root and I’m interested in the code I scan this directory for a src directory to look into.
This is (naming it src) the most common way in software development I would say.


(Christian Müller) #7

Sounds as if the direction is DistributionPackages so far. I will keep it on for another day or so, but I am super fine with that. I just voted LocalPackages because less work for me :smiley:


(Soren Malling) #8

I would claim that Distribution is a internal used word for what you deploy, and Source/Sources/src is more in-sync with “how everyone else is doing” :slight_smile:


(Bastian Heist) #9

I had another think about this, and decided that - for me - what @sorenmalling and @mstruebing said overrules the “correctness” of DistributionPackages. “Source” will be better understood by the majority, so changing my vote.
ED: Ironically, that makes “LocalPackages” come out ahead, which I like the least of the three :sweat_smile:


(Soren Malling) #10

If we take this up a notch and look at the repository structure (inspired by https://github.com/kitsunet/composer-mono-project) , wouldn’t it end up with something like

- composer.json
- composer.lock
- [PackageFolderName]
  - Vendor.Package1
    - Classes
    - Configuration
    - ...
  - Vendor.Package2
    - Classes
    - Configuration
    - ...

And then you run a composer install and then you are good to go? So, to keep “in sync” with other structures I would say that src is the correct usage, instead of coming up with a new convention. Then your repository will basically look like

- composer.json
- composer.lock
- src/

at thats it. I like that simplicity a lot.


(Soren Malling) #11

And I created a example repository to show the concept and allow you to test it


(Christian Müller) #12

Sure, that works as well!


(Bastian Heist) #13

Would be fine with src as well, that is also how Java packages look.


(Max Strübing) #14

src is also fine for me


(Christian Müller) #15

Need to restart the poll to do so.


(Jon Uhlmann) #16

src would be perfect. I changed my poll to something else


(Christian Müller) #17

I changed “something else” with “src”.


(Bastian Heist) #18

Looks like we have a majority for “src” :slight_smile:


(Christian Müller) #19

Yep, apparently…


(Christian Müller) #20

As this is only to become a documented best practice, we could still change it at a late date, but for now seems “src” is the preferred path name. @martoro would you change splash at some point? I will change my example repository.