{"id":19614645,"url":"https://github.com/activestate/buildwheels","last_synced_at":"2026-05-14T17:37:46.801Z","repository":{"id":143245076,"uuid":"607300185","full_name":"ActiveState/buildwheels","owner":"ActiveState","description":"A script and action to build wheels and upload them to PyPI using the ActiveState Platform","archived":false,"fork":false,"pushed_at":"2023-03-10T19:00:27.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":15,"default_branch":"main","last_synced_at":"2025-02-26T17:48:19.286Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ActiveState.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-27T18:05:16.000Z","updated_at":"2023-03-07T13:24:42.000Z","dependencies_parsed_at":"2023-04-28T16:18:45.680Z","dependency_job_id":null,"html_url":"https://github.com/ActiveState/buildwheels","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ActiveState/buildwheels","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ActiveState%2Fbuildwheels","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ActiveState%2Fbuildwheels/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ActiveState%2Fbuildwheels/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ActiveState%2Fbuildwheels/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ActiveState","download_url":"https://codeload.github.com/ActiveState/buildwheels/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ActiveState%2Fbuildwheels/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33035970,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T10:53:13.783Z","updated_at":"2026-05-14T17:37:46.774Z","avatar_url":"https://github.com/ActiveState.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# buildwheel.py\nA Python script for building and uploading package wheels to PyPI using the ActiveState platform.\n\n```\n## Warning: This script is intended as a demonstration only. It utilizes API calls and other functionality\n## that is unstable and in development. Things could change in the future so you probably shouldn't rely\n## on any particular API call.\n```\n\n## Installation\nClone this repository to your local machine\n\n```\n$ git clone https://github.com/ActiveState/buildwheels.git\n```\n\n## Install the required packages using the state tool\n\nIf you don't have the state tool installed, you can install it for free from ActiveState. The state tool is a universal package manager that enables you to easily manage and maintain your runtime environments.\n\n### Windows\n\nDownload and run the [state tool installer](https://state-tool.s3.amazonaws.com/remote-installer/windows-amd64/state-remote-installer.exe).\n\n### Linux and macOS\n\nOpen your command prompt and execute the following command:\n\n```\nsh \u003c(curl -q https://platform.activestate.com/dl/cli/install.sh)`\n```\n\nOnce installed it is recommended that you close your command prompt and start a new one to ensure your environment is properly updated.\n\n### Activating the runtime environment\n\nThe simplest way to download, install and utilize the fully prepared runtime environment is to simply run the following command in your terminal:\n\n```\n$ state activate\n```\n\nThis will download, install and put you into a virtual shell using a runtime environment tailored to this application.\n\n## Usage\nThe script takes in the following arguments:\n\n`org_name`: The name of the organization on ActiveState.  \n`project_name`: The name of the project on ActiveState.  \n`package_name`: The name of the package to build and upload.  \n`version`: The version of the package to build and upload.  \n`platforms`: The platforms on which to build the package. Valid platforms are `windows`, `linux`, and `mac`. Short forms `win`, `lin`, and `mac` are also supported.  \n`--publish`: Automatically publish the wheel to PyPI. Requires PYPI_USER and PYPI_PASS to be set. Defaults to `false`.  \n\n```\n$ export PYPI_USER=\u003cyour-username\u003e\n$ export PYPI_PASS=\u003cyour-password\u003e\n$ python buildwheel.py org_name project_name package_name version platforms\n```\n\nFor example, to build and upload a package named \"mypackage\" version 1.0.0 for Windows and Linux platforms to PyPI, you would run the following command:\n\n```\n$ export PYPI_USER=\u003cyour-username\u003e\n$ export PYPI_PASS=\u003cyour-password\u003e\n$ python buildwheel.py acme myproject mypackage 1.0.0 win,lin\n```\n\n## Using a .env file\nTo make it easier to use the script, you can create a `.env` file in the root directory of the project and store your `PYPI_USER` and `PYPI_PASS` credentials there. To do this, create a new file named `.env` and add the following lines:\n\n```\nPYPI_USER=\u003cyour-username\u003e\nPYPI_PASS=\u003cyour-password\u003e\n```\nMake sure to replace \u003cyour-username\u003e and \u003cyour-password\u003e with your actual PyPI credentials. Then, when you run the script, it will automatically load these variables from the `.env` file. This way, you don't have to export the variables each time you run the script. Note that you should never commit your `.env` file to a public repository as it contains sensitive information.\n\n## Using as a GitHub Action\nYou can use this script as a GitHub action in your workflows to automatically build wheels. You need to configure a few secrets on your repo first:\n\n`ACTIVESTATE_API_KEY` : Set this to your API key for the platform.\n`PYPI_USER` : Set this to your PyPI username or `__token__` to use an API key.\n`PYPI_PASS` : Set this to your PyPI API key or password.\n\n### Inputs\nThe action takes all the same arguments as the script. They are all named the same: `org_name`, `project_name`, `package_name`, `version`, `platforms` and `publish`. See the *Usage* section for more details.\n\n### Acquiring an ActiveState API KEY\nYou need an account on the ActiveState Platform to generate an API key. Head to [https://platform.activestate.com](https://platform.activestate.com) to sign up. Once you have the state tool installed, run:\n\n```\n$ state auth\n```\n...and authenticate with your account credentials. Then, run:\n\n```\n$ state export new-api-key\n```\nCopy your API key and use it to populate the ACTIVESTATE_API_KEY environment variable in your GitHub repo.\n\n### Publishing to PYPI\nIf you want to publish to PyPI direct from GitHub actions, you can simply set the `publish` input to `true` and the script will use your `PYPI_USER` and `PYPI_PASS` secrets to upload your wheel to PyPI.\n\nAlternatively, you can also use another action like [https://github.com/pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish) to publish the wheels to PyPI. This action will publish the output as artifacts that can then be uploaded using a different action.\n\n## License\nThis script is licensed under the MIT License. See the LICENSE file for more details.\n\n## Need help?\nIf you have questions about this, head over to the [ActiveState Community](https://community.activestate.com) where you can get help.\n\n## Legal\nUse of this script and/or action requires an ActiveState Platform account. You can [sign-up for free](https://platform.activestate.com). The complete ActiveState Platform Terms of Service are available [here](https://www.activestate.com/support/eulas/). As this is free software and open-source, refunds do not apply.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Factivestate%2Fbuildwheels","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Factivestate%2Fbuildwheels","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Factivestate%2Fbuildwheels/lists"}