globalcitizen / php-iban

Generate, parse, validate, error-correct and present IBAN (and IIBAN) bank account information in PHP.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

2.8.x is not compatible

mjvanmiddelaar opened this issue · comments

When I first loaded this package i used composer require globalcitizen/php-iban. This placed an entry in my composer.json as following: "globalcitizen/php-iban": "^2.6",

Whenever run composer update, composer updates this package within the range of 2.x by default. After updating composer today, i noticed that my application broke because of the introduction of namespaces in 2.8.0.

I would like to suggest to release 3.0 and remove 2.8.x so anyone that assumes SemVer will not have a breaking application.

I am not familiar with composer. I basically don't use PHP much these days. I have used it since 3.x.

If you are suggesting a version bump, I can do that on the next release, but I am not sure why 3.x should be any different to 2.x with respect to brokenness. Can you clarify?

Here is what I get.

$ composer -vvvvvvvvv require globalcitizen/php-iban
Failed to initialize global composer: Composer could not find the config file: /Users/user/.composer/composer.json
To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ "Getting Started" section
Running 1.9.0 (2019-08-02 20:55:32) with PHP 7.4.8 on Darwin / 18.7.0
Failed to initialize global composer: Composer could not find the config file: /Users/user/.composer/composer.json
To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ "Getting Started" section
Reading ./composer.json
Loading config file ./composer.json
Checked CA file /usr/local/etc/openssl@1.1/cert.pem: valid
Executing command (/Users/user/code/blah): git branch --no-color --no-abbrev -v
Executing command (/Users/user/code/blah): git describe --exact-match --tags
Executing command (/Users/user/code/blah): git log --pretty="%H" -n1 HEAD
Executing command (/Users/user/code/blah): hg branch
Executing command (/Users/user/code/blah): fossil branch list
Executing command (/Users/user/code/blah): fossil tag list
Executing command (/Users/user/code/blah): svn info --xml
Failed to initialize global composer: Composer could not find the config file: /Users/user/.composer/composer.json
To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ "Getting Started" section
Downloading https://repo.packagist.org/packages.json
Writing /Users/user/.composer/cache/repo/https---repo.packagist.org/packages.json into cache
Reading /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-2013.json from cache
Reading /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-2014.json from cache
Downloading http://repo.packagist.org/p/provider-2015%24de45302eae45d5a9c2302fd1b33576b2817a3d367ad56412f53a4f9a52072071.json
Writing /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-2015.json into cache
Reading /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-2016.json from cache
Downloading http://repo.packagist.org/p/provider-2017%241f1a7b1f5ab5ff4154a687d9d74fb9f745253b79c2861554e590e8f075223885.json
Writing /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-2017.json into cache
Downloading http://repo.packagist.org/p/provider-2018%2499e8ef09702cda26d39779e6c8d3d5b91488d208b525a82cdabe3a93f8624d1a.json
Writing /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-2018.json into cache
Reading /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-2019.json from cache
Reading /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-2019-10.json from cache
Reading /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-2020-01.json from cache
Downloading http://repo.packagist.org/p/provider-2020-04%24953c95be9846372948249070dd07a71322d69b5077bc44a171a72359efc9303a.json
Writing /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-2020-04.json into cache
Downloading http://repo.packagist.org/p/provider-2020-07%24a8e08c135e77eec29fa3af808409491e52450bacbea4de4f1695a0f6e70d5a1c.json
Writing /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-2020-07.json into cache
Downloading http://repo.packagist.org/p/provider-archived%242077b817cd58e6047117d1dc33351a6e25ee1524c111ce1d98bae037ac03ccd6.json
Writing /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-archived.json into cache
Downloading http://repo.packagist.org/p/provider-latest%247dcf18be329c3bc87b9e4d59e8ddcec510680b8a42b6c32b19c1a6ec30d9459c.json
Writing /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-latest.json into cache
Downloading http://repo.packagist.org/p/globalcitizen/php-iban%24eb090a9e4b455b6b68cfcbf945c1381dba927712efc6a9f493b19bc14d930fa7.json
Writing /Users/user/.composer/cache/repo/https---repo.packagist.org/provider-globalcitizen$php-iban.json into cache
Using version ^2.8 for globalcitizen/php-iban
./composer.json has been created
Reading ./composer.json
Loading config file ./composer.json
Executing command (/Users/user/code/blah): git branch --no-color --no-abbrev -v
Executing command (/Users/user/code/blah): git describe --exact-match --tags
Executing command (/Users/user/code/blah): git log --pretty="%H" -n1 HEAD
Executing command (/Users/user/code/blah): hg branch
Executing command (/Users/user/code/blah): fossil branch list
Executing command (/Users/user/code/blah): fossil tag list
Executing command (/Users/user/code/blah): svn info --xml
Failed to initialize global composer: Composer could not find the config file: /Users/user/.composer/composer.json
To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ "Getting Started" section
Loading composer repositories with package information
Downloading https://repo.packagist.org/packages.json
Writing /Users/user/.composer/cache/repo/https---repo.packagist.org/packages.json into cache
Updating dependencies (including require-dev)
Reading /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-2013.json from cache
Reading /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-2014.json from cache
Reading /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-2015.json from cache
Reading /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-2016.json from cache
Reading /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-2017.json from cache
Reading /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-2018.json from cache
Reading /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-2019.json from cache
Reading /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-2019-10.json from cache
Reading /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-2020-01.json from cache
Reading /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-2020-04.json from cache
Reading /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-2020-07.json from cache
Reading /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-archived.json from cache
Reading /Users/user/.composer/cache/repo/https---repo.packagist.org/p-provider-latest.json from cache
Reading /Users/user/.composer/cache/repo/https---repo.packagist.org/provider-globalcitizen$php-iban.json from cache
Resolving dependencies through SAT
Looking at all rules.

Dependency resolution completed in 0.000 seconds
Analyzed 140 packages to resolve dependencies
Analyzed 76 rules to resolve dependencies
Package operations: 1 install, 0 updates, 0 removals
Installs: globalcitizen/php-iban:v2.8.0
  - Installing globalcitizen/php-iban (v2.8.0): Downloading https://api.github.com/repos/globalcitizen/php-iban/zipball/072fe329b8c5c6de42fa791d3bb107d9c98fd2de
Downloading (connecting...)
Following redirect (2) https://codeload.github.com/globalcitizen/php-iban/legacy.zip/072fe329b8c5c6de42fa791d3bb107d9c98fd2de
Downloading https://codeload.github.com/globalcitizen/php-iban/legacy.zip/072fe329b8c5c6de42fa791d3bb107d9c98fd2de
Downloading (100%)Writing /Users/user/.composer/cache/files/globalcitizen/php-iban/2bff2989b4583e08a2586759a82edb14955f1951.zip into cache from /Users/user/code/blah/vendor/globalcitizen/php-iban/6c129c0f14c8cc82aae2cd2990b9db82

 Extracting archiveExecuting command (CWD): unzip -qq  '/Users/user/code/blah/vendor/globalcitizen/php-iban/6c129c0f14c8cc82aae2cd2990b9db82' -d '/Users/user/code/blah/vendor/composer/238b8c2c'
    REASON: Required by the root package: Install command rule (install globalcitizen/php-iban v2.8.0)

Reading /Users/user/code/blah/vendor/composer/installed.json
Writing lock file
Generating autoload files

The generated composer.json has the following contents.

{
    "require": {
        "globalcitizen/php-iban": "^2.8"
    }
}

If I try to use the generated files it seems to work.

$ cd vendor
$ php autoload.php && echo works
works

Basically I don't understand what the problem is.

Oh are you suggesting the namespacing change in 2.8 broke things? OK. Well, you are the second person to say that. I will release v3 then.

Hopefully fixed with v3.0.0 release.

This is in regards with Semantic Versioning. See https://semver.org/

I would also suggest to release 2.9.0, reverting the namespace changes so that whomever updates within 2.x range, will update to the old namespace.

I would also suggest to release 2.9.0, reverting the namespace changes so that whomever updates within 2.x range, will update to the old namespace.

Hrrm, agreed that makes sense. Project for another day though. My time today has run out!

Since 2.8.0 was already released with the new namespaces, anyone that started to use them will run into the issue of not being able to download the tag 2.8.x when installing via composer. They can revert to 2.7.x or update to 3.0.

Releasing 2.9 would require tagging 2.8 again, so perhaps the current situation is best and leave it at that.

commented

Hi @globalcitizen this is still causing problems as on packagist.org (used by composer) there is still 2.8 version but no 3.0 version . Maybe because you renamed the existing 2.8 tag to 3.0? Could you please bump to 3.0.1 or whatever just so it is pure new version and packagist will pull it?

Thanks

commented

it's documented there that if you just rename the tag, it is cached and will not be refreshed.. so it's rather feature than a bug. I think the correct way is to keep the original tag and issue a new release, in accordance with semver, i.e. keep 2.8, issue 2.8.1 (without namespaces) and issue 3.0.0. (with namespaces)

Should be fixed now with v3.0.1. Please let me know if not resolved!

commented

resolved as now we can at least get v3.0.0 now, as mentioned in #105 thanks!