Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: migrate v4 to master #349

Merged
merged 23 commits into from
Oct 3, 2022
Merged

chore: migrate v4 to master #349

merged 23 commits into from
Oct 3, 2022

Conversation

Justintime50
Copy link
Member

@Justintime50 Justintime50 commented Oct 3, 2022

Description

This PR takes all of the following changes from v4 and puts them on the master branch.

Testing

Pray CI passes...

Pull Request Type

Please select the option(s) that are relevant to this PR.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Improvement (fixing a typo, updating readme, renaming a variable name, etc)

nwithan8 and others added 23 commits September 7, 2022 12:19
- library is thread-safe
- Services (static functions) called via a property of a Client object
- Non-static functions called via an instance of an object
- Files re-organized for better readability
- All unit tests reworked to account for new structure, all based on base UnitTest (using XUnit rather than MSTest)
- New annotations for CRUD operations
- All CRUD operations labeled with annotations
- All CRUD test operations labeled with annotations
- CRUD operations grouped into regions
- Fix security scanning tool installation, pin to 5.6.3
- Remove unused functions (@nwithan8, refer to this)
- All update functions use `Merge` internally to update object in-place rather than returning a new object
- Dependencies in .nuspec pinned
- README updated
- Lock beta features behind Client.Beta property (see note in Client.cs)
- Beta client is more just a way to restrict user access to beta features, but does not control what API endpoint each service function hits.
- Every single API call can have its API version overridden (defaults to GA if not)
- Beta functions are explicitly overridden to beta endpoint.
- All properties are now TitleCased rather than snake_cased
- Some properties had to be renamed to avoid conflicts (look for "// X is the enclosing class name" comments)
- Removed Verify/VerifyStrict parameters from Address (naming conflict, parameters aren't actually part of the Address object, they're API call params)
- All properties are nullable (most if not all will NOT be null, but since they could be, to avoid compile complaints)
- Re-record all unit tests
- Remove old nullability warning suppressions from main namespace (add to EasyPost.Tests)
- Update CHANGELOG.md with info about nullable properties
- Stricter enforcement of naming style
- Fix some IDE suggestions, suppress others
- Use fixtures now that unit tests are updated
- New exception classes with multi-level inheritance
- Don't initialize HTTP/API error instances directly, use ".FromResponse" method
- Helper methods to centralize the logic to determine which type of HTTP/API error to throw
- Utilities available to devs and end-users to see which exception will be triggered by which status code
- Unit tests to test HTTP exception generation (for both planned and unplanned status codes)
- Fix some unit tests (what exceptions to expect)
- Improvements to custom switch case and enum mechanics (all enums in this library will use the custom enum class for consistency)
- Make static strings for error messages
* - Update README.md to account for re-architecture

* - Add link to release notes in nuspec file
- Port webhook validation
- Move EndShipper to GA
- EndShipper all returns collection rather than list
- Improve client handoff (pass client to all objects and sub-objects that can have a client)
- Improve client equality (two clients are equal if their configurations are equal -> two configurations are equal if their API keys, API bases and custom HTTP clients (if present) are equal)
- New unit test to verify that client is being passed properly
- Port Duty Payment option
- Use cache for NuGet packages in GitHub Actions CI
- Port end shipper ID parameter for shipment buy
- Port improvements to test report script
- Add missing docstring
- Move beta features out of unnecessary beta namespaces/folders
- Stop using an obselete property for REST client
- Fix enum ToString
- Introduce client cloning capabilities
- Use dotnet-format rather than broken dotnet format
- Add v4 information to upgrade guide
- Add LaserShipV2 datetime parameters
… making instances directly (#340)

- Update unit tests for F# and VB to account for redesign
- Improvements to Batch scripts for new and existing Windows VMs (dependency installation via Google Drive)
- Add nuget.config file to standardize/control our NuGet settings across machines
- Change EasyPost logo for NuGet
@Justintime50 Justintime50 changed the title migrate v4 2 migrate v4 to master Oct 3, 2022
@Justintime50 Justintime50 marked this pull request as ready for review October 3, 2022 16:59
@Justintime50 Justintime50 requested a review from a team October 3, 2022 16:59
@Justintime50 Justintime50 mentioned this pull request Oct 3, 2022
Closed
4 tasks
@Justintime50 Justintime50 changed the title migrate v4 to master chore: migrate v4 to master Oct 3, 2022
Copy link
Member

@nwithan8 nwithan8 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's happening!

ronpaul.gif

@Justintime50 Justintime50 merged commit 257c828 into master Oct 3, 2022
@Justintime50 Justintime50 deleted the migrate_v4_2 branch October 3, 2022 17:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

3 participants