Comments (16)
Since we are removing a class, that is absolutely a breaking change and requires a new major version.
Increment the [..] MAJOR version when you make incompatible API changes.
Source: https://semver.org/
Removing a class is an "incompatible API change".
from vies.
Instead of removing support for the UK, we could continue to support all users there by providing an additional call to the service provided by Gov.uk as suggested by Derick. This service is still in beta though.
from vies.
@DragonBe Unsure unfortunately. My current project has been public beta for 4 months so somewhere between that and perpetual a web 2.0 forever. The api linked by Derick has been around in some form or other since January 2018.
EDIT. My bad. I was looking at a different API. Ha... I don't know when this one was made.
from vies.
As mentioned in #127 I would like to implement the Nothern Ireland structures first before removing the UK completely from this library.
from vies.
Question: is removing support of the UK a BC break for which I need to release a new major version 3.0.0, or do I accept it as normal progression and tag it as a 2.2.0 or a 2.1.15 release?
from vies.
@jonathanmaron that's exactly what I was thinking too, but bear with me when I play devil's advocate.
Keeping UK in the current code base can be considered a bug since Brexit and has to be fixed. The validation routines are not impacted nor is there a change in API signatures, the only thing that happens is a removal of a configuration that now allows validation of Brittish VAT ID's and with them helper classes that allow the validation to be executed.
In the above thinking the change looks more like a bugfix rather than a BC breaking version.
If I tag this as version a new major release, people who are using the older version are still validating UK VAT ID's locally, but fail validation at the EC VIES service which is not a desired feature. This is where I'm stuck.
from vies.
Added Polls on
- Twitter: https://twitter.com/dragonbe/status/1346854470366461954?s=21
- LinkedIn: https://www.linkedin.com/feed/update/urn:li:activity:6752620980163624961/
from vies.
I'd say it's major, as VAT is still applicable inside the UK same as before (if you're a UK entity using this would be a significant breaking change), and VAT is still to be paid on products purchased & being imported to the UK from the EU.
I'd say the ideal would be introducing an extra option that would make the UK fail, thereby giving users the option for if they see it as a bug for their use-case, they can implement a change as appropriate, but does not introduce a BC break for people expecting current behaviour.
from vies.
I work for a gov agency with public facing sites. Beta may mean changes in the future but (by our standards at least) would mean the service is here to stay.
from vies.
@cooperaj Do you also know how long it takes before a "beta" state becomes stable with the UK.gov services (on average)?
from vies.
No worries @cooperaj, I will need to fully investigate if and how I can integrate this service.
from vies.
The original scope of DragonBe\Vies\Vies
is defined as:
Component using the European Commission (EC) VAT Information Exchange System (VIES) to verify and validate VAT registration numbers in the EU, using PHP and Composer.
Since the VIES web service no longer provides validation for the United Kingdom, I do not think that we should support validation for the United Kingdom in the component.
Why should the United Kingdom be treated differently from all other non-EU countries that have VAT numbers? There are many. See the second and third tables at: https://en.wikipedia.org/wiki/VAT_identification_number
I think a far more elegant and scalable solution would be to provide a new component with the same API as DragonBe\Vies\Vies
that offers validation for non-EU countries.
This would allow developers to create their own validation components that cherry pick the validation routines that they need for their application.
from vies.
As I'm investigating options for the UK, I should really think about a more modular approach for this package where non-European validation services could be added as an external plugin maintained by others rather than it is build-in.
In regards to the whole UK issue, I don't want to remove the logic just yet except I won't submit the request against the EC VIES service any longer as there it will be marked as invalid. I could inform users the structure is valid but validation requires an additional step with a pointer to https://www.tax.service.gov.uk/check-vat-number/enter-vat-details. Would this work?
from vies.
@jonathanmaron I know this is not a solution to still provide VAT validation services for UK VAT ID's, but have a look at #132 as I believe this is an elegant transition for the time being.
from vies.
I think the fact that Vies::listEuropeanCountries() still returns 'GB' should be considered a bug as of this year. The rest, I'm not sure.
from vies.
I think it's safe to now make the UK validation a failure as solved in 03231df
from vies.
Related Issues (20)
- Validation of Irish VAT ID failed for valid VAT ID HOT 7
- Making VIES package more inclusive
- Missing BG checksum validation for foreign natual persons
- VIES_EU_COUNTRY_LIST Visibility HOT 1
- Package upgrade to composer 2.0
- Ensure this package can be installed with Composer 2.0
- Implementing a Symfony constraint based on this library HOT 2
- Add support for United Kingdom (Northern Ireland) ("GB-NIR") HOT 7
- Support php8
- Validation failed for valid VAT numbers HOT 8
- 32 Bit Support HOT 1
- The service moved to SSL endpoint. HOT 1
- use of ::VIES_EXCLUDED_COUNTRY_CODES
- ValidatorLV results inconsistent with official EU validation
- heartbeat is not working anymore HOT 12
- Cannot populate CheckVatResponse after using `toArray`
- Optional Argument Validation Fails for ® HOT 2
- Heathbeat check always false HOT 1
- GetAddress non getting separated city, zip
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 vies.