{"id":27627679,"url":"https://github.com/galaxyproject/starforge","last_synced_at":"2025-04-23T13:56:03.479Z","repository":{"id":26106771,"uuid":"29551018","full_name":"galaxyproject/starforge","owner":"galaxyproject","description":"Build Galaxy dependencies, wheels, and other things, in Docker (and other things)","archived":false,"fork":false,"pushed_at":"2022-12-14T20:44:53.000Z","size":3373,"stargazers_count":8,"open_issues_count":21,"forks_count":16,"subscribers_count":25,"default_branch":"master","last_synced_at":"2024-04-09T21:49:25.678Z","etag":null,"topics":["dependencies","python","usegalaxy","wheels"],"latest_commit_sha":null,"homepage":"https://galaxyproject.org/","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/galaxyproject.png","metadata":{"files":{"readme":"README.rst","changelog":"HISTORY.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-20T20:41:58.000Z","updated_at":"2021-10-07T20:58:27.000Z","dependencies_parsed_at":"2023-01-14T04:02:49.596Z","dependency_job_id":null,"html_url":"https://github.com/galaxyproject/starforge","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galaxyproject%2Fstarforge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galaxyproject%2Fstarforge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galaxyproject%2Fstarforge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galaxyproject%2Fstarforge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/galaxyproject","download_url":"https://codeload.github.com/galaxyproject/starforge/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250444722,"owners_count":21431703,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["dependencies","python","usegalaxy","wheels"],"created_at":"2025-04-23T13:55:59.692Z","updated_at":"2025-04-23T13:56:03.468Z","avatar_url":"https://github.com/galaxyproject.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"DEPRECATED\n----------\n\nThis project is now deprecated in favour of\n`wheelforge \u003chttps://github.com/galaxyproject/wheelforge/\u003e`_, which uses\n`PyPA \u003chttps://www.pypa.io/\u003e`_ projects (like cibuildwheel) to build wheels for\nPython packages.\n\n.. figure:: https://raw.githubusercontent.com/galaxyproject/starforge/master/docs/starforge_logo.png\n   :alt: Starforge Logo\n   :align: center\n   :figwidth: 100%\n   :target: https://github.com/galaxyproject/Starforge\n\nStarforge: Build `Galaxy`_ things in virtualization\n\nThings you can do with Starforge:\n\n- Build `Galaxy Tool Shed`_ dependencies\n- Build `Python Wheels`_ (e.g. for the `Galaxy Wheels Server`_)\n- Rebuild Debian or Ubuntu source packages (for modifications)\n\nThese things will be built in Docker. Additionally, wheels can be built in\nQEMU/KVM virtualized systems.\n\nDocumentation can be found at `starforge.readthedocs.org\n\u003chttp://starforge.readthedocs.org/\u003e`_\n\nStarforge is maintained by the `Galaxy`_ Project and community. A `list of\ncontributors \u003chttps://github.com/galaxyproject/starforge/graphs/contributors\u003e`_\nto the project can be found on GitHub.\n\nQuick Start\n-----------\n\nFor all types of builds, begin by `installing Docker`_.\n\n----------------------\nTool Shed Dependencies\n----------------------\n\nThere are two scripts that can be used, depending on the package recipes\navailable:\n\n.. sourcecode:: console\n\n    $ ./build.sh \u003cpackage\u003e\n    $ python build.py \u003cpackage\u003e --version 1.0\n\n``build.sh`` is the older format, and simply uses a single\n``\u003cpackage\u003ebuild.sh`` file, like Atlas. `build.py` is the newer format, and\nuses yaml metadata in ``\u003cpackage\u003e/\u003cversion\u003e/build.yml``.\n\nThe base image for Galaxy packages is Debian Squeeze. This will hopefully\nproduce binaries usable on Galaxy's targeted platforms (at time of writing:\nCentOS 6+, Debian 6.0+, Ubuntu 12.04+).\n\n.. sourcecode:: console\n\n    $ ./build galaxy \u003cpackage\u003e\n    $ python build.py \u003cpackage\u003e\n\nTo build packages against a different OS, you can use the `--image` flag, e.g.:\n\n.. sourcecode:: console\n\n    $ ./build \u003cdist\u003e[:tag] \u003cpackage\u003e\n    $ python build.py \u003cpackage\u003e --image \u003cdist\u003e[:tag]\n\ne.g.\n\n.. sourcecode:: console\n\n    $ ./build ubuntu:trusty nginx\n    $ python build.py nginx --image debian:squeeze\n\n**Building all the things:**\n\nThere's a separate ``build-all.sh`` which allows you to build all of the\npackages using their preferred build mechanism\n\nNotes on the two build scripts\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n**build.py**\n\nThe ``\u003cversion\u003e`` option is optional, and defaults to the string ``'default'``,\nwhich is useful for recipes that don't have version specific changes (E.g.\nbcftools 1.0 builds identically to 1.2)\n\n-------------\nPython Wheels\n-------------\n\nStarforge can build both pure Python and C-extension Python modules into wheels\nfor Linux under Docker and for Mac OS X under QEMU/KVM. To do this, you'll want\nto install Starforge (preferably in a Python virtualenv) using ``pip install\nstarforge`` (to install from PyPI_) or ``python setup.py install`` to install\nfrom the source.\n\nDocker (and QEMU) images to use are specified in `starforge/config/default.yml\n\u003chttps://github.com/galaxyproject/starforge/blob/master/starforge/config/default.yml\u003e`_.\nTo modify this file, copy it to\n``$XDG_CONFIG_HOME/galaxy-starforge/config.yml`` (``$XDG_CONFIG_HOME`` is, by\ndefault ``~/.config``). The sample file `wheels/build/wheels.yml`_ is used to\ndetermine what wheels can be built and their rules for building. To use this\nfile, use the ``--wheels-config`` argument to ``starforge wheel`` or copy\n``wheels.yml`` to ``$XDG_CONFIG_HOME/galaxy-starforge/wheels.yml``.\n\nWheels can be built using ``starforge wheel \u003cpackage\u003e``, e.g.:\n\n.. sourcecode:: console\n\n    $ starforge wheel pycrypto\n    $ starforge wheel --no-qemu pysam   # only build on docker\n\nSee the output of ``starforge --help`` for help using the Starforge command-line interface.\n\nPull Request wheel builder\n^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nPull requests to the `Starforge`_ repository on Github that modify\n`wheels/build/wheels.yml`_ can automatically be built for all specified\nplatforms on a dedicated Starforge build server by the `Galaxy Jenkins`_\nservice. To utilize, modify wheels.yml as appropriate and create a pull\nrequest. Any member of the `Galaxy Committers`_ group can then authorize\nJenkins to initiate the build. If it fails, you can modify the pull request and\nfurther builds can be triggered.\n\nNotes on images\n^^^^^^^^^^^^^^^\n\n**Linux**\n\nImages used to build wheels are uploaded to the `Starforge Docker Hub`_ repo\nand will be pulled as necessary. Typically you will only use the\n`manylinux1-wheel \u003chttps://hub.docker.com/r/starforge/manylinux1-wheel/\u003e`_ and\n`manylinux1-32-wheel\n\u003chttps://hub.docker.com/r/starforge/manylinux1-32-wheel/\u003e`_ images, which are\n`manylinux \u003chttps://github.com/pypa/manylinux\u003e`_ CentOS 5-based images that\nwill usually produce wheels usable on all Galaxy-supported platforms.\n\nYou can also produce \"platform-specific\" wheels by using the ``full-wheel``\nimageset. This is useful if you want to link to distribution-specific system\nversions of non-standard libraries without bundling them in to the wheel.\n\n**Mac OS X**\n\nMac OS X images are not provided due to legal reasons. Consult the :doc:`osx`\ndocumentation for details.\n\n.. _Galaxy: http://galaxyproject.org/\n.. _Galaxy Tool Shed: http://toolshed.g2.bx.psu.edu/\n.. _Python Wheels: http://pythonwheels.com/\n.. _Galaxy Wheels Server: http://wheels.galaxyproject.org/\n.. _installing Docker: https://docs.docker.com/engine/installation/\n.. _PyPI: https://pypi.python.org/\n.. _Starforge Docker Hub: https://hub.docker.com/r/starforge/\n.. _wheels/build/wheels.yml:\n.. _Galaxy Jenkins: http://jenkins.galaxyproject.org\n.. _Starforge: https://github.com/galaxyproject/starforge/\n.. _Galaxy Committers: https://github.com/galaxyproject/galaxy/blob/dev/doc/source/project/organization.rst\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgalaxyproject%2Fstarforge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgalaxyproject%2Fstarforge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgalaxyproject%2Fstarforge/lists"}