This large pull request is an update to the project to move from Pydantic v1 to v2. When the SDK project first started v2 was only being planned. Now that it has matured it's time for this project to adopt the latest version. This should address some conflicts that have been encountered in environments where v2 was already installed, and it should also provide an execution speed increase.
Most of the changes are switching from deprecated model configs and methods to the new v2 options. All Optional fields must have a default in v2 (the SDK models all default to None as was the behavior before this update). This is the repetitive bulk of the PR. Most notable is the swap of Extra and Config for model_confg/ConfigDict.
All existing tests have been ensured to pass without modification beyond changing out v1 to v2 Pydantic code. Additional tests have been added for the webhook generators to ensure those models produce mock client data as expected.
There is a new integration test file that uses the dummy Jamf Cloud instance provided by Jamf for integration tests. These tests will not be used in GitHub Actions yet. A long term plan for integration testing will be worked out, but locally this allows developers to ensure live read operations work as expected.
This large pull request is an update to the project to move from Pydantic v1 to v2. When the SDK project first started v2 was only being planned. Now that it has matured it's time for this project to adopt the latest version. This should address some conflicts that have been encountered in environments where v2 was already installed, and it should also provide an execution speed increase.
Most of the changes are switching from deprecated model configs and methods to the new v2 options. All
Optional
fields must have a default in v2 (the SDK models all default toNone
as was the behavior before this update). This is the repetitive bulk of the PR. Most notable is the swap ofExtra
andConfig
formodel_confg
/ConfigDict
.All existing tests have been ensured to pass without modification beyond changing out v1 to v2 Pydantic code. Additional tests have been added for the webhook generators to ensure those models produce mock client data as expected.
There is a new integration test file that uses the dummy Jamf Cloud instance provided by Jamf for integration tests. These tests will not be used in GitHub Actions yet. A long term plan for integration testing will be worked out, but locally this allows developers to ensure live read operations work as expected.