Comments (16)
We got bitten by this the other day - I thought there was some crazy dependency hell that was resulting in the downgrade to ElasticSearch. Thanks @axelvnk for picking this up.
My personal inclination for minimal confusion:
- If people are installing from git, then they should be prepared / instructed to use composer and the vendor directory should be excluded from git.
- If people are downloading the package from a release then this should include the vendor directory.
- Having the vendor directory in VCS can result in time consuming merge conflicts of code that we're not familiar with.
Obviously other opinions are available and I'm certainly a fan of pragmatism over pedantry.
from providence.
Master now includes /vendor as it's a release. All other branches pull from composer.
from providence.
Yeah good point. We'll look into alternatives.
from providence.
We include vendor in Git and distributions because 95% of our users don't know about or want to know about Composer. You can delete the vendor dir and lock file and run it yourself of course.
from providence.
Yes, I just acknowledged that... But the version in composer.lock does not match the actual version that is included. Removing composer.lock and running composer install does solve the problem, but why would you have a composer.lock file in there anyway if you don't care about the actual version installed?
from providence.
Good point. We'll get rid of it.
from providence.
:D not what I meant. You SHOULD have it if you really want to have the vendor directory in there, but it MUST match the packages versions in the vendor directory. Just in case someone like me executes a composer install, that way the exact same versions that you're counting on are installed and used. And doesn't end up breaking stuff.
from providence.
Yeah, i know it needs to be there. I mean the incorrect one needs to go.
Kehan: I fully agree that having vendor/ in Git is ugly and annoying and just plain stupid. So long as you don't run composer on your install you won't have conflicts, but of course that's not really a solution. The issue for us is that a whole lot of people are running off of GitHub and are not inclined to, or capable of, dealing with composer. Our response to the resultant support headaches was simply to bring in copies of dependencies, first in app/lib/ and later in vendor/. This creates support headaches from people like you, but you are fewer in number :-)
In the short term this will have to remain as it is. In the medium term we will get rid of vendor/ and require composer use. We can hopefully mitigate some of the support issues with a simple script to do the composer install and initial run. This will dovetail with removal of most assets/ and replacement with NPM. Work on that is supposed to start this week.
from providence.
Ooohhh oooohhhh ohhhh. Exciting!
from providence.
As I suggested before, I think we can just include a composer.phar file and use it to execute a composer install from a PHP file. Like during setup.php or something.. That way the sitebuilders have no clue that some composer stuff is going on and we can still have our sweet sweet versioning 👍
from providence.
That would be nice, but quite a few of our users don't actually have command-line access to the system they install on. Maybe it can be triggered from setup.php. We'll see if that can work.
from providence.
The dev/metadataAlerts branch now has functioning auto-pull-from-composer mechanism. This branch is the develop branch with a couple of major changes beyond composer:
• Includes a "metadata alerts" feature that can send notifications triggered by modifications or dates/times
• Simplified setup.php format
http://clangers.collectiveaccess.org/jira/browse/PROV-2407
from providence.
A better solution to including /vendor
in your repo is providing a packaged archive for end users that includes everything they need to get up and running with minimal interaction.
from providence.
@collectiveaccess This is very incorrect. Vendor should be removed from repo. There is many websites that allow you to download ready code witout composer. For example https://php-download.com/
from providence.
Vendor is only included for releases.
from providence.
@collectiveaccess But problem is that repo it gets huge by this. As I know you can include separate package in to release with builded application.
from providence.
Related Issues (20)
- Data importer not matching label on ORG class entity
- ItemService error when attempting to access ca_object_representations bundle from GET ca_objects HOT 2
- Bulk EAD/XML import giving errors with related list items HOT 1
- skipIfExpression not matching correctly in import mapping HOT 3
- Duplicate Relationship Types in dacs_heritage
- JPF loads as binary
- QuickSearch can show same record twice HOT 5
- Display Templates showing on Summary Pages even when not enabled for this view HOT 2
- Duplicate items being saved into sets HOT 1
- Collection hierarchies on the Summary Screen: typo and clarification of value for settings
- Default Collection Search Creator Column is Broken
- PHP8 HOT 1
- "Image is being processed" after data import with background processing enabled HOT 7
- Current_contents missing policy and template HOT 1
- purge-deleted Only Deletes Some Records and Not Others HOT 7
- ExistingRecordPolicy in Data Import not functioning as expected (develop) HOT 2
- "null" Date Duplicates "Not Set" Date
- After editing Obj Rep Relationships, Object May Have No Primary
- URL Encoding Failure for Tags Search
- Duplicate entities showing in browse but search or within MySQL
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from providence.