Git Product home page Git Product logo

composer's Introduction

Github Actions Build Status

Welcome to the official repository for Concrete CMS development! Concrete CMS is an open source CMS built by people from around the world. Want to get involved? Check out our contributor guide for more info.

Documentation

If you're looking for Concrete CMS documentation, you'll want to navigate over to documentation.concretecms.org. If you see anything that needs more information or is just completely wrong, contributions are welcomed! Just log in to the documentation site with your community.concretecms.com account and edit away!

Installation

  1. Clone the repository

     git clone https://github.com/concretecms/concretecms.git
     cd concretecms/
    
  2. Use Composer to install the third party dependencies

     composer install
    

Community Channels

Legacy

This repository is for Concrete CMS 9.0 and later. Looking for earlier versions?

(Note: Concrete CMS used to be called concrete5 – which hopefully explains the name of various GitHub repositories and projects.)

composer's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

composer's Issues

Bare minimum composer installation

By running composer create-project concrete5/composer, we end up with a setup that includes PHPUnit, webmix, custom db settings, ...
That could be nice for developers (provided that they want all that stuff), but end users may just want a running concrete5 setup...

So, we should be able to create a concrete5 instance without all that developer-oriented stuff.

What about having 2 composer projects?

  • concrete5/composer with only the bare minimum stuff required to install concrete5
  • concrete5/composer-dev with additional stuff targeting development

Requiring the dev-8.6.x-dev version of concrete5/core seems to break the dependency installation

I'm trying to upgrade concrete5/core to dev-8.6.x-dev to take advantage of the multisite options. When requiring the new version of concrete5/core, everything seems to work nice, however, this error pops up when going to the website:

Third party libraries not installed. Make sure that composer has required libraries in the concrete/ directory.

It seems that Composer is no longer installing the dependencies of public/concrete/composer.json. I can mitigate the issue by manually installing the dependencies like shown below, but this is a strange behavior and is likely to cause other issues down the road:

cd public/concrete
composer i

Here is my full root composer.json file:

{
  "name": "concrete5/composer",
  "description": "A fully featured skeleton for a composer managed concrete5 site",
  "type": "project",
  "license": "MIT",
  "prefer-stable": true,
  "autoload": {
    "psr-4": {
      "ConcreteComposer\\" : "./src"
    }
  },
  "autoload-dev": {
    "psr-4": {
      "ConcreteComposer\\" : "./tests"
    }
  },
  "require": {
    "composer/installers": "^1.3",
    "concrete5/core": "dev-8.6.x-dev#c4c8410",
    "concrete5/dependency-patches": "^1.4.0",
    "doctrine/dbal": "2.10"
  },
  "require-dev": {
    "phpunit/phpunit": "~4.3|^8.0",
    "mockery/mockery": "^0.9.9|^1.2",
    "squizlabs/php_codesniffer": "^3.5",
    "phpmd/phpmd" : "@stable",
    "phpstan/phpstan": "^0.12.33"
  },
  "config": {
    "preferred-install": "dist"
  },
  "extra": {
    "allow-subpatches": [
      "concrete5/dependency-patches"
    ],
    "branch-alias": {
      "dev-8.x": "8.x-dev"
    },
    "installer-paths": {
      "public/concrete": ["type:concrete5-core"],
      "public/application/themes/{$name}": ["type:concrete5-theme"],
      "public/packages/{$name}": ["type:concrete5-package"],
      "public/application/blocks/{$name}": ["type:concrete5-block"]
    }
  },
  "scripts": {
    "test": "phpunit",
    "phpmd-analyse-code": "vendor/bin/phpmd public/application/ html cleancode,codesize,controversial,design,naming,unusedcode --exclude */public/application/config/* > rapports/phpmd.html",
    "phpstan-analyse-code": "vendor/bin/phpstan clear-result-cache && vendor/bin/phpstan analyse --configuration phpstan.neon --error-format=prettyJson > rapports/phpstan.json",
    "analyse-code": "composer run-script phpmd-analyse-code&&composer run-script phpstan-analyse-code",
    "phpcs": "phpcs --standard=PSR1,PSR12 --exclude=PSR1.Files.SideEffects --extensions=php --ignore=config/*,files/* --report-junit=test-reports/phpcs.xml --report-full public/application",
    "phpcbf":"phpcbf --standard=PSR1,PSR12 --extensions=php --ignore=config/*,files/* --report-summary"
  }
}

composer.json requires incorrect zendframework/zend-stdlib

Hi,, I just did a brand new install of concrete5 8.5.1 on PHP 7.3.6 using Composer 1.8.5 per https://documentation.concrete5.org/developers/installation/installation.

composer create-project -n concrete5/composer hello_world
./vendor/bin/concrete5 c5:install -i

Front end is fine, but when logging on to backend using http://example.com/index.php/dashboard/welcome, get the following.

Whoops\Exception\ErrorException thrown with message ""continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"?"
Stacktrace:
#39 Whoops\Exception\ErrorException in /var/www/hello_world/vendor/zendframework/zend-stdlib/src/ArrayObject.php:426
...

This issue was fixed by zendframework/zend-stdlib@d0cd1d0, (3.2.1) however, Composer will only install version 2.7 which is its own branch release. Note sure the best course of action as 3.2.1 is a pre-release.

Thanks!

https://packagist.org/packages/concrete5/composer
https://github.com/concrete5/composer
composer/composer.json
  "require": {
    ...
    "concrete5/core": "^8.2",
    ...
  },
https://packagist.org/packages/concrete5/core
https://github.com/concrete5/concrete5-core
concrete5-core/composer.json
  "require": {
    ...
	"concrete5/zend-queue": "0.9.*",
    ...
  },
 https://packagist.org/packages/concrete5/zend-queue
 https://github.com/concrete5/ZendQueue
    "require": {
        "php": ">=5.3.3",
        "zendframework/zend-stdlib": "~2"
    },
https://packagist.org/packages/zendframework/zend-stdlib
https://github.com/zendframework/zend-stdlib
=> Fixes the issue: using break instead of continue 2 inside switch, master (#91)  release-3.2.1, Commits on Jul 10, 2018

Security alerts

I'm receiving security alerts from Github. Anyone else?

We found potential security vulnerabilities in your dependencies.
Only the owner of this repository can see this message.

image

The first two are not related to C5, but the others are.

Unable to install database: [Semantical Error]

I'm getting an error running the installer via SSH

5%: Starting installation and creating directories.
19%: Creating database tables.

In StartingPointPackage.php line 461:
                                                                                            
  Unable to install database: [Semantical Error] The annotation "@Doctrine\ORM\Mapping\Map  
  pedSuperClass" in class Concrete\Core\Entity\Page\Relation\Relation was never imported.   
  Did you maybe forget to add a "use" statement for this annotation?                        

Any idea what's up?
Using PHP 8.1, Mysql 8.0, Composer 2.5 on Ubuntu 20.04

Hot reload not applying scss changes

In my page_theme, I have

public function registerAssets() {
    $this->requireAsset(mixAsset('/packages/mypackage/themes/mytheme/css/global.css'));
    $this->requireAsset(mixAsset('/packages/mypackage/themes/mytheme/js/global.min.js'));
}

And I'm running npm run hot.

When I change the javascript file, the hot swapping works. But when I change the scss file, the hot swapping doesn't work. If I change the scss file, then change the javascript file, it does swap in the CSS updates, but not if I only edit the scss file.

Movement from Ubuntu to MacOS, can't get v9 going again

Hello, I started a V9 composer project a week ago on my local Ubuntu box. I recently received a new Mac M1 and found it to be faster than my Ubuntu box so I switched. I setup the same version of PHP, MySQL, etc on the Mac via Homebrew and cloned my git repo and did my composer installation. I pulled over the application/config directory, application/files directory and the dump of the database. I tweaked the config for the new database connection and then turned all cache settings off. Cleared the cache and linked the site up to run. Unfortunately, I'm running in to an issue. Here is the error that presents:

Warning: require(/Users/david/Repositories/BOMA-2021/vendor/composer/../../src/helpers.php): failed to open stream: No such file or directory in /Users/david/Repositories/BOMA-2021/vendor/composer/autoload_real.php on line 78

Fatal error: require(): Failed opening required '/Users/david/Repositories/BOMA-2021/vendor/composer/../../src/helpers.php' (include_path='/Users/david/Repositories/BOMA-2021/public/concrete/vendor:.:/opt/homebrew/Cellar/[email protected]/7.4.27/share/[email protected]/pear') in /Users/david/Repositories/BOMA-2021/vendor/composer/autoload_real.php on line 78

I have been able to move Concrete 5.8.7 projects over without this issue, but the v9 one I cannot seem to get working. I can also install new V9 projects and those work fine. Any insight would be great!

Thanks!

Files missing when installing Concrete5 via composer

Since today(?) it is not possible to install a new concrete5 project with composer.
I'm typing composer $ create-project concrete5/composer new_project which gives the following output:

Installing concrete5/composer (v1.0.0)
  - Installing concrete5/composer (v1.0.0): Loading from cache
Created project in new_project
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 3 installs, 0 updates, 0 removals
  - Installing composer/installers (v1.4.0): Loading from cache
  - Installing wikimedia/composer-merge-plugin (v1.4.1): Loading from cache
  - Installing concrete5/core (8.2.1): Loading from cache
Writing lock file
Generating autoload files
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files

However it seems to not install properly since the public/concrete folder is missing after the install.

This did work last friday (17 nov) but not today. Has anything happend since then?

Ambiguous class resolution, "Normalizer"

I am attempting to install concrete5 via composer, the environment is 7.4. I have another concrete5 site of the same version working in the same environment with no problems (however it was installed by extracting the zip from the website).

When executing the following command:

composer create-project -n concrete5/composer project

I receive the following warning during the install process:

Warning: Ambiguous class resolution, "Normalizer" was found 2x: in "/var/www/project/vendor/patchwork/utf8/src/Normalizer.php" and "/var/www/project/vendor/voku/portable-utf8/src/Normalizer.php", the first will be used.

Upon attempting to finalize the install via the command line interface or via the browser I receive the following error:

PHP Fatal error: Cannot redeclare normalizer_is_normalized() (previously declared in /var/www/project/vendor/symfony/polyfill-intl-normalizer/bootstrap.php:15) in /var/www/project/vendor/patchwork/utf8/src/Patchwork/Utf8/Bootup/intl.php on line 20

Seems to be some kind of clash with the symfony/polyfill-intl-normalizer and patchwork/utf8 dependencies.

PDOStatement::free() error on install

Hello.

I'm trying to install Concrete5 with composer, and have done it quite a few times before. However when I tried my usual method today, I got the following error:

PHP Fatal error:  Declaration of Concrete\Core\Database\Driver\PDOStatement::free() must be compatible with Doctrine\DBAL\Driver\PDOStatement::free(): void in /var/www/html/think_data/public/concrete/src/Database/Driver/PDOStatement.php on line 34
Whoops\Exception\ErrorException: Declaration of Concrete\Core\Database\Driver\PDOStatement::free() must be compatible with Doctrine\DBAL\Driver\PDOStatement::free(): void in file /var/www/html/think_data/public/concrete/src/Database/Driver/PDOStatement.php on line 34
Stack trace:
  1. Whoops\Exception\ErrorException->() /var/www/html/think_data/public/concrete/src/Database/Driver/PDOStatement.php:34
   | array(1) {
   |   [0]=>
   |   string(137) "Declaration of Concrete\Core\Database\Driver\PDOStatement::free() must be compatible with Doctrine\DBAL\Driver\PDOStatement::free(): void"
   | }

  2. Whoops\Run->handleError() /var/www/html/think_data/vendor/filp/whoops/src/Whoops/Run.php:408
   | array(0) {
   | }

  3. Whoops\Run->handleShutdown() [internal]:0
   | array(0) {
   | }

Any ideas?

Error: Failed to create cache path

Using the composer installation on the terminal the process finish with success, but when I see the site I got error:

An unexpected error occurred.

Failed to create cache path.

concrete5-installation-complete
concrete5-cms-error-cache-path

Version 9 support

Version 9 has a few issues that prevent us from upgrading by default at the moment due to PHP 8 incompatibility

  • theorchard/monolog-cascade: No PHP 8 support, blocks install
  • theorchard/monolog-cascade: Dev dependency, requires minimum-stability: dev
  • laminas/cache: Laminas includes a ton of cache adapters that are abandoned and don't support PHP 8, they have a recommended fix. Not sure yet if that should go in the core or in this repo.

Something seems to be missing

I'm not sure if I'm doing this correctly but something seems to be missing.

Documentation here https://documentation.concretecms.org/building-website-concretecms/3-install-concrete5/2-create-project-using-composer says:
composer create-project -n concrete5/composer
but the correct package seems to be:
composer create-project -n concretecms/composer

I run the composer command:
composer create-project -n concretecms/composer .
I then try to open the site and get this error:
Warning: require(concrete/dispatcher.php): Failed to open stream: No such file or directory in /var/www/html/public/index.php on line 3

If I then run:
composer install
the site loads.
I add all the details for the installation, it starts to install but at some point it fails:

require_once(doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php): Failed to open stream: No such file or directory.
Trace:
#0 /var/www/html/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php(69): Whoops\Run->handleError(2, 'require_once(do...', '/var/www/html/v...', 69) #1 /var/www/html/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php(69): require_once() #2 /var/www/html/public/concrete/src/Database/EntityManagerConfigFactory.php(88): Doctrine\Common\Annotations\AnnotationRegistry::registerFile('doctrine/orm/li...') #3 /var/www/html/public/concrete/src/Database/EntityManagerConfigFactory.php(75): Concrete\Core\Database\EntityManagerConfigFactory->getMetadataDriverImpl() #4 /var/www/html/public/concrete/src/Database/EntityManagerFactory.php(56): Concrete\Core\Database\EntityManagerConfigFactory->getConfiguration() #5 /var/www/html/public/concrete/src/Database/DatabaseServiceProvider.php(79): Concrete\Core\Database\EntityManagerFactory->create(Object(Concrete\Core\Database\Connection\Connection)) #6 /var/www/html/vendor/illuminate/container/Container.php(873): Concrete\Core\Database\DatabaseServiceProvider->Concrete\Core\Database\{closure}(Object(Concrete\Core\Application\Application), Array) #7 /var/www/html/public/concrete/src/Application/Application.php(445): Illuminate\Container\Container->build(Object(Closure)) #8 /var/www/html/vendor/illuminate/container/Container.php(758): Concrete\Core\Application\Application->build(Object(Closure)) #9 /var/www/html/vendor/illuminate/container/Container.php(295): Illuminate\Container\Container->resolve('Doctrine\\ORM\\En...', Array, false) #10 /var/www/html/vendor/illuminate/container/Container.php(873): Illuminate\Container\Container->Illuminate\Container\{closure}(Object(Concrete\Core\Application\Application), Array) #11 /var/www/html/public/concrete/src/Application/Application.php(445): Illuminate\Container\Container->build(Object(Closure)) #12 /var/www/html/vendor/illuminate/container/Container.php(758): Concrete\Core\Application\Application->build(Object(Closure)) #13 /var/www/html/vendor/illuminate/container/Container.php(694): Illuminate\Container\Container->resolve('Doctrine\\ORM\\En...', Array) #14 /var/www/html/vendor/illuminate/container/Container.php(1027): Illuminate\Container\Container->make('Doctrine\\ORM\\En...') #15 /var/www/html/vendor/illuminate/container/Container.php(947): Illuminate\Container\Container->resolveClass(Object(ReflectionParameter)) #16 /var/www/html/vendor/illuminate/container/Container.php(908): Illuminate\Container\Container->resolveDependencies(Array) #17 /var/www/html/public/concrete/src/Application/Application.php(445): Illuminate\Container\Container->build('Concrete\\Core\\S...') #18 /var/www/html/vendor/illuminate/container/Container.php(292): Concrete\Core\Application\Application->build('Concrete\\Core\\S...') #19 /var/www/html/vendor/illuminate/container/Container.php(873): Illuminate\Container\Container->Illuminate\Container\{closure}(Object(Concrete\Core\Application\Application), Array) #20 /var/www/html/public/concrete/src/Application/Application.php(445): Illuminate\Container\Container->build(Object(Closure)) #21 /var/www/html/vendor/illuminate/container/Container.php(758): Concrete\Core\Application\Application->build(Object(Closure)) #22 /var/www/html/vendor/illuminate/container/Container.php(694): Illuminate\Container\Container->resolve('Concrete\\Core\\S...', Array) #23 /var/www/html/public/concrete/src/Support/Facade/Facade.php(118): Illuminate\Container\Container->make('site/type') #24 /var/www/html/public/concrete/src/Package/StartingPointPackage.php(613): Concrete\Core\Support\Facade\Facade::__callStatic('make', Array) #25 /var/www/html/public/concrete/src/Package/StartingPointPackage.php(184): Concrete\Core\Package\StartingPointPackage->install_site() #26 /var/www/html/public/concrete/controllers/Install.php(390): Concrete\Core\Package\StartingPointPackage->executeInstallRoutine('install_site') #27 [internal function]: Concrete\Controller\Install->run_routine('atomik_full', 'install_site') #28 /var/www/html/public/concrete/src/Controller/AbstractController.php(318): call_user_func_array(Array, Array) #29 /var/www/html/public/concrete/src/Routing/ControllerRouteAction.php(64): Concrete\Core\Controller\AbstractController->runAction('run_routine', Array) #30 /var/www/html/public/concrete/src/Http/RouteDispatcher.php(37): Concrete\Core\Routing\ControllerRouteAction->execute(Object(Concrete\Core\Http\Request), Object(Concrete\Core\Routing\Route), Array) #31 /var/www/html/public/concrete/src/Http/Middleware/DispatcherDelegate.php(39): Concrete\Core\Http\RouteDispatcher->dispatch(Object(Concrete\Core\Http\Request)) #32 /var/www/html/public/concrete/src/Http/Middleware/MiddlewareStack.php(86): Concrete\Core\Http\Middleware\DispatcherDelegate->next(Object(Concrete\Core\Http\Request)) #33 /var/www/html/public/concrete/src/Http/DefaultDispatcher.php(127): Concrete\Core\Http\Middleware\MiddlewareStack->process(Object(Concrete\Core\Http\Request)) #34 /var/www/html/public/concrete/src/Http/DefaultDispatcher.php(60): Concrete\Core\Http\DefaultDispatcher->handleDispatch(Object(Concrete\Core\Http\Request)) #35 /var/www/html/public/concrete/src/Http/Middleware/DispatcherDelegate.php(39): Concrete\Core\Http\DefaultDispatcher->dispatch(Object(Concrete\Core\Http\Request)) #36 /var/www/html/public/concrete/src/Http/Middleware/FrameOptionsMiddleware.php(39): Concrete\Core\Http\Middleware\DispatcherDelegate->next(Object(Concrete\Core\Http\Request)) #37 /var/www/html/public/concrete/src/Http/Middleware/MiddlewareDelegate.php(50): Concrete\Core\Http\Middleware\FrameOptionsMiddleware->process(Object(Concrete\Core\Http\Request), Object(Concrete\Core\Http\Middleware\DispatcherDelegate)) #38 /var/www/html/public/concrete/src/Http/Middleware/StrictTransportSecurityMiddleware.php(36): Concrete\Core\Http\Middleware\MiddlewareDelegate->next(Object(Concrete\Core\Http\Request)) #39 /var/www/html/public/concrete/src/Http/Middleware/MiddlewareDelegate.php(50): Concrete\Core\Http\Middleware\StrictTransportSecurityMiddleware->process(Object(Concrete\Core\Http\Request), Object(Concrete\Core\Http\Middleware\MiddlewareDelegate)) #40 /var/www/html/public/concrete/src/Http/Middleware/ContentSecurityPolicyMiddleware.php(36): Concrete\Core\Http\Middleware\MiddlewareDelegate->next(Object(Concrete\Core\Http\Request)) #41 /var/www/html/public/concrete/src/Http/Middleware/MiddlewareDelegate.php(50): Concrete\Core\Http\Middleware\ContentSecurityPolicyMiddleware->process(Object(Concrete\Core\Http\Request), Object(Concrete\Core\Http\Middleware\MiddlewareDelegate)) #42 /var/www/html/public/concrete/src/Http/Middleware/CookieMiddleware.php(35): Concrete\Core\Http\Middleware\MiddlewareDelegate->next(Object(Concrete\Core\Http\Request)) #43 /var/www/html/public/concrete/src/Http/Middleware/MiddlewareDelegate.php(50): Concrete\Core\Http\Middleware\CookieMiddleware->process(Object(Concrete\Core\Http\Request), Object(Concrete\Core\Http\Middleware\MiddlewareDelegate)) #44 /var/www/html/public/concrete/src/Http/Middleware/ApplicationMiddleware.php(29): Concrete\Core\Http\Middleware\MiddlewareDelegate->next(Object(Concrete\Core\Http\Request)) #45 /var/www/html/public/concrete/src/Http/Middleware/MiddlewareDelegate.php(50): Concrete\Core\Http\Middleware\ApplicationMiddleware->process(Object(Concrete\Core\Http\Request), Object(Concrete\Core\Http\Middleware\MiddlewareDelegate)) #46 /var/www/html/public/concrete/src/Http/Middleware/MiddlewareStack.php(86): Concrete\Core\Http\Middleware\MiddlewareDelegate->next(Object(Concrete\Core\Http\Request)) #47 /var/www/html/public/concrete/src/Http/DefaultServer.php(85): Concrete\Core\Http\Middleware\MiddlewareStack->process(Object(Concrete\Core\Http\Request)) #48 /var/www/html/public/concrete/src/Foundation/Runtime/Run/DefaultRunner.php(125): Concrete\Core\Http\DefaultServer->handleRequest(Object(Concrete\Core\Http\Request)) #49 /var/www/html/public/concrete/src/Foundation/Runtime/DefaultRuntime.php(102): Concrete\Core\Foundation\Runtime\Run\DefaultRunner->run() #50 /var/www/html/public/concrete/dispatcher.php(45): Concrete\Core\Foundation\Runtime\DefaultRuntime->run() #51 /var/www/html/public/index.php(3): require('/var/www/html/p...') #52 {main}

I end up with 348 tables on the DB and a failed installation.
I've deleted all the tables and tried a couple of times, always the same error.

Am I missing anything?
Running this on Docker with PHP 8.2 and Mysql 8.

Version 8.2.0 vs 8.2

The currently tagged version 8.2.0 resolves to ^8.2, that is, you may get greater versions (for instance 8.2.9). This can be misleading.

I'd create the following tags:

  • tag 8 => "concrete5/core": "^8" in composer (so that we install any 8.x version)
  • tag 8.2 => "concrete5/core": "^8.2" in composer (so that we install any 8.2 version)
  • ... and so on

If you really have time, we could also add more specific tags (8.2.0, 8.2.1, ...), but that's not so necessary IMHO

Should .env be used?

First of all, thanks for putting this together.

Not an issue but just a question.

I see how the autoloader first attempts to read .env, and how there is a sample .env.dist in the root directory. I first assumed the vanilla concrete5 also used this code, but I then discovered it doesn't.

Do you recommend using it? Also, did you have to make many changes to the concrete5 source code to allow it to be installed with composer?

Thanks

Updating core best pratice

What is the best way to upgrade a composer-based concrete5 site?

If I create a project today with:

composer create-project -n concrete5/composer the_oregon_trail

it will install 8.5.5.

But if I try to update an older project created the same way that's currently on an older version (such as 8.3.2) and I run

composer update

I get bumped up to the latest commit on the develop branch:

- Updating concrete5/core (8.3.2) to concrete5/core (dev-develop 8d8aa97)

but I want to just go to 8.5.5.

(The above command I got from Googling "composer based concrete5 how to update core", I just get a3020's upgdate steps which also instruct me to use composer update.)

What I finally ended up doing is:

composer require --update-with-dependencies concrete5/core:8.5.5

which gave me this (along with other dependencies):

- Updating concrete5/core (8.3.2 => 8.5.5): Loading from cache

This seemed correct to me, but raised a few eyebrows from colleagues because it's now locked to a specific version.

^8.2 in composer.json should allow any release up to the next major version number (so anything <9.0 but >= 8.2)

If you just change the file yourself and run composer update , you'll usually get a bunch of errors about "requirements could not be resolved to an installable set of packages" or something about being unable to complete due to the constraints. The dependencies need to be updated as well so you need to add add the --with-(all-)dependencies switch.

So rather than edit and run update, it seems you can just combine the two steps with the require command.

But either way, shouldn't the ^8.2 constraint limit it to an actual release? I don't understand why running update gets the latest commit with that constraint.

Is there a better way to start with this skeleton and later move to the latest release without accidentally ending up on the most recent commit on the develop branch?

Installation worries...

$ composer create-project -n concrete5/composer ccms
Creating a "concrete5/composer" project at "./ccms"
Installing concrete5/composer (v1.1.11)
  - Installing concrete5/composer (v1.1.11): Extracting archive
...
106 package suggestions were added by new dependencies, use `composer suggest` to see details.
Package container-interop/container-interop is abandoned, you should avoid using it. Use psr/container instead.
Package doctrine/reflection is abandoned, you should avoid using it. Use roave/better-reflection instead.
Package league/url is abandoned, you should avoid using it. Use league/uri instead.
Package patchwork/utf8 is abandoned, you should avoid using it. Use symfony/polyfill-mbstring or symfony/string instead.
Package zendframework/zend-cache is abandoned, you should avoid using it. Use laminas/laminas-cache instead.
Package zendframework/zend-code is abandoned, you should avoid using it. Use laminas/laminas-code instead.
Package zendframework/zend-escaper is abandoned, you should avoid using it. Use laminas/laminas-escaper instead.
Package zendframework/zend-eventmanager is abandoned, you should avoid using it. Use laminas/laminas-eventmanager instead.
Package zendframework/zend-feed is abandoned, you should avoid using it. Use laminas/laminas-feed instead.
Package zendframework/zend-http is abandoned, you should avoid using it. Use laminas/laminas-http instead.
Package zendframework/zend-hydrator is abandoned, you should avoid using it. Use laminas/laminas-hydrator instead.
Package zendframework/zend-i18n is abandoned, you should avoid using it. Use laminas/laminas-i18n instead.
Package zendframework/zend-loader is abandoned, you should avoid using it. Use laminas/laminas-loader instead.
Package zendframework/zend-mail is abandoned, you should avoid using it. Use laminas/laminas-mail instead.
Package zendframework/zend-mime is abandoned, you should avoid using it. Use laminas/laminas-mime instead.
Package zendframework/zend-servicemanager is abandoned, you should avoid using it. Use laminas/laminas-servicemanager instead.
Package zendframework/zend-stdlib is abandoned, you should avoid using it. Use laminas/laminas-stdlib instead.
Package zendframework/zend-uri is abandoned, you should avoid using it. Use laminas/laminas-uri instead.
Package zendframework/zend-validator is abandoned, you should avoid using it. Use laminas/laminas-validator instead.
Package phpunit/php-token-stream is abandoned, you should avoid using it. No replacement was suggested.
Generating autoload files
Warning: Ambiguous class resolution, "Normalizer" was found 2x: in "/home/levitte/public_html/ccms/vendor/patchwork/utf8/src/Normalizer.php" and "/home/levitte/public_html/ccms/vendor/voku/portable-utf8/src/Normalizer.php", the first will be used.
Carbon 1 is deprecated, see how to migrate to Carbon 2.
https://carbon.nesbot.com/docs/#api-carbon-2
    You can run './vendor/bin/upgrade-carbon' to get help in updating carbon and other frameworks and libraries that depend on it.
composer/package-versions-deprecated: Generating version class...
composer/package-versions-deprecated: ...done generating version class
65 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
Gathering patches from concrete5/dependency-patches (extra.patches).
Applying patch concrete5/dependency-patches/Fix ArrayObject::unserialize() to zendframework/zend-stdlib... done.
Applying patch concrete5/dependency-patches/Fix idn_to_ascii deprecation warning to zendframework/zend-mail... done.
Applying patch concrete5/dependency-patches/Remove support for the X-Original-Url and X-Rewrite-Url headers to zendframework/zend-http... done.
Applying patch concrete5/dependency-patches/Fix minus in regular expressions to sunra/php-simple-html-dom-parser... done.
Applying patch concrete5/dependency-patches/Fix continue switch in FileGenerator and MethodReflection to zendframework/zend-code... done.

That's a lot of old stuff.

Trying to requre dev-develop was a bit troublesome too...

$ cd ccms/
$ composer require concrete5/core:dev-develop
./composer.json has been updated
Running composer update concrete5/core
Gathering patches from concrete5/dependency-patches (extra.patches).
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires concrete5/core dev-develop -> satisfiable by concrete5/core[dev-develop].
    - concrete5/core dev-develop requires zendframework/zend-mail ^2.8 -> found zendframework/zend-mail[2.8.0, 2.9.0, 2.10.0] but the package is fixed to 2.7.3 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

Installation failed, reverting ./composer.json and ./composer.lock to their original content.
$ composer require -W concrete5/core:dev-develop
./composer.json has been updated
Running composer update concrete5/core --with-all-dependencies
Gathering patches from concrete5/dependency-patches (extra.patches).
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires concrete5/core dev-develop -> satisfiable by concrete5/core[dev-develop].
    - concrete5/core dev-develop requires bernard/bernard 1.0.0-alpha9 -> found bernard/bernard[1.0.0-alpha9] but it does not match your minimum-stability.

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

Installation failed, reverting ./composer.json and ./composer.lock to their original content.

Doesn't fully install

After running the installation through composer and accessing the site through my browser, the installation page popped up. I realized it hadn't generated the database.php in the application/config/ directory. Ought to be an easy fix.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.