Package: shotgun-api3
ShotGrid Python APIShotGrid provides a simple Python-based API for accessing ShotGrid and integrating with other tools. This is the official API that is maintained by ShotGrid Software (https://knowledge.autodesk.com/contact-support)The latest version can always be found athttp://github.com/shotgunsoftware/python-apiMinimum RequirementsPython v3.7DocumentationTutorials and detailed documentation about the Python API are available athttp://developer.shotgridsoftware.com/python-api).Some useful direct links:InstallingTutorialsAPI ReferenceData TypesFilter SyntaxChangelogYou can see thefull history of the Python API on the documentation site.Updating HTTPLib2The API comes with a copy of thehttplib2inside theshotgun_api3/libfolder. To update the copy to a more recent version of the API, you can run theupdate_httplib2.pyscript at the root of this repository like this:python update_httplib2.py vX.Y.ZwherevX.Y.Zis a release found onhttplib2'srelease page.TestsIntegration and unit tests are provided.All tests require:Thenose unit testing tools,Thenose-exclude nose plugin(Note: Runningpip install -r tests/ci_requirements.txtwill install this package)Atests/configfile (you can copy an example fromtests/example_config).Tests can be run individually like this:nosetests --config="nose.cfg" tests/test_client.pyMake sure to not forget the--config="nose.cfg"option. This option tells nose to use our config file.  This will exclude python 2- and 3-specific files in the/libdirectory, preventing a failure from being reported by nose for compilation due to incompatible syntax in those files.test_clientandtests_unituse mock server interaction and do not require a ShotGrid instance to be available (no modifications totests/configare necessary).test_apiandtest_api_longdorequire a ShotGrid instance, with a script key available for the tests. The server and script user values must be supplied in thetests/configfile. The tests will add test data to your server based on information in your config. This data will be manipulated by the tests, and should not be used for other purposes.To run all of the tests, use the shell scriptrun-tests.Release processPackaging up new releaseUpdate the Changelog in theHISTORY.rstfileAdd bullet points for any changes that have happened since the previous release. This may include changes you did not make so look at the commit history and make sure we don't miss anything. If you notice something was done that wasn't added to the changelog, hunt down that engineer and make them feel guilty for not doing so. This is a required step in making changes to the API.Try and match the language of previous change log messages. We want to keep a consistent voice.Make sure the date of the release matches today. We try and keep this TBD until we're ready to do a release so it's easy to catch that it needs to be updated.Make sure the version number is filled out and correct. We follow semantic versioning.Ensure any changes or additions to public methods are documentedEnsure that doc strings are updated in the code itself to work with Sphinx and are correctly formatted.Examples are always good especially if this a new feature or method.Think about a new user to the API trying to figure out how to use the features you're documenting.Update the version value inpython-api/setup.pyto match the version you are packaging. This controls what version users will get when installing via pip.Update the__version__value inshotgun_api3/shotgun.pyto the version you're releasing. This identified the current version within the API itself.Commit these changes in master with a commit message likepackaging for the vx.x.x release.Create a tag based off of the master branch calledvx.x.xto match the version number you're releasing.Push master and your tag to Github.Update the Releases page with your new release.The release should already be there from your tag but if not, create a new one.Add more detailed information regarding the changes in this release. This is a great place to add examples, and reasons for the change!Letting the world knowPost a message in thePipeline Community channel.Prepare for the Next Dev CycleUpdate the__version__value inshotgun_api3/shotgun.pyto the next version number with.devappended to it. For example,v3.0.24.devAdd a new section to the Changelog in theHISTORY.rstfile with the next version number and a TBD date**v3.0.24 - TBD**
       + TBDCommit the changes to master with a commit message likeBump version to v3.0.24.devPush master to Github