{"id":15150509,"url":"https://github.com/scikit-learn/sklearn-docbuilder","last_synced_at":"2026-01-11T13:48:29.428Z","repository":{"id":65980053,"uuid":"13470224","full_name":"scikit-learn/sklearn-docbuilder","owner":"scikit-learn","description":"Script to configure a cloud server to build the documentation and plots and update the sklearn website","archived":true,"fork":false,"pushed_at":"2020-10-01T08:50:16.000Z","size":34,"stargazers_count":16,"open_issues_count":4,"forks_count":19,"subscribers_count":36,"default_branch":"master","last_synced_at":"2024-04-14T01:46:10.127Z","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/scikit-learn.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}},"created_at":"2013-10-10T12:10:29.000Z","updated_at":"2024-03-12T12:37:51.000Z","dependencies_parsed_at":"2023-02-19T19:15:46.835Z","dependency_job_id":null,"html_url":"https://github.com/scikit-learn/sklearn-docbuilder","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scikit-learn%2Fsklearn-docbuilder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scikit-learn%2Fsklearn-docbuilder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scikit-learn%2Fsklearn-docbuilder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scikit-learn%2Fsklearn-docbuilder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scikit-learn","download_url":"https://codeload.github.com/scikit-learn/sklearn-docbuilder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219865527,"owners_count":16554156,"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":[],"created_at":"2024-09-26T14:20:41.660Z","updated_at":"2025-09-29T19:30:45.759Z","avatar_url":"https://github.com/scikit-learn.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"sklearn-docbuilder\n==================\n\nScript to configure a cloud server to build the documentation and example\ngallery and update the [sklearn dev website](http://scikit-learn.org/dev).\n\nThis script is only meant to be used by scikit-learn project maintainers with\ngithub and sourceforge write access.\n\n\nUsage\n-----\n\nFirst install the script dependencies (preferably in a virtualenv):\n\n    pip install -r requirements.txt\n\nThe following tools will be installed locally (NumPy, SciPy and scikit-learn\nare **not** required locally, they will only be installed on the cloud server):\n\n- Apache Libcloud is used to check the status and start a Rackspace cloud\n  server dedicated to monitoring the master branch of the project and building\n  the example gallery and the sphinx documentation.\n\n- SaltStack (via the salt-ssh client) is used to automate the configuration of\n  the server.\n\n- Paramiko is a Python implementation of the SSH protocol used by SaltStack.\n\n- Yaml is used to parse and generate SaltStack configuration files.\n\nAsk one of the scikit-learn maintainers for the `docbuilder_rsa` private\nkey next to the `docbuilder_rsa.pub` public key in this folder.\n\nAlso ask for the Rackspace cloud credentials   and put them as enviroment\nvariables (possibly in your `~/.bashrc` file):\n\n    export SKLEARN_RACKSPACE_NAME=\"sklearn\"\n    export SKLEARN_RACKSPACE_KEY=\"XXXXXXXXX\"\n    \nOnce you have the credentials, run the following script to check that the\nRackspace cloud server is running, start it if this not the case and fetch the\nconnection parameters (the IP address stored in `./etc/salt/roster`):\n\n    python docbuilder.py\n\nYou can check that the server can by contacted by salt commands such\nas:\n\n    salt-ssh -c ./etc/salt docbuilder test.ping\n\nTo install all the scikit-learn build dependencies and install the cron job\nuse:\n\n    salt-ssh -c ./etc/salt docbuilder state.highstate\n\nIf the server was freshly provisioned, the first execution of `state.highstate`\ncan take several minutes. Subsequent calls will be much faster. To display\ndebug info use:\n\n    salt-ssh -c ./etc/salt docbuilder state.highstate -l debug\n\n\nChanging the server configuration\n---------------------------------\n\nThe Salt Stack configuration for the server and the script run by the cron job\nto build the documentation once the server is ready can be found in the\n[srv/salt](\nhttps://github.com/scikit-learn/sklearn-docbuilder/tree/master/srv/salt)\nsubfolder.\n\nTo re-apply a configuration change in the configuration re-rerun:\n\n    python docbuilder.py  # to fetch the IP of the docbuilder server\n    salt-ssh -c ./etc/salt docbuilder state.highstate\n\n\nFixing execution errors in docbuilder.py\n----------------------------------------\n\nAPI change for Apache Libcloud are documented here:\n\n    https://ci.apache.org/projects/libcloud/docs/upgrade_notes.html\n\n\nConnecting to the server via SSH\n--------------------------------\n\nRun:\n\n    python docbuilder.py\n\nto fetch the IP address of the running server in `etc/salt/roster`. The output\nof the command should display the ssh command, such as:\n\n    ssh -i docbuilder_rsa root@\u003cip_address\u003e\n\n\nChanging the ssh keys\n---------------------\n\nIf you suspect that the private keys have been compromised you can generate\na new keypair with:\n\n    ssh-keygen -f docbuilder_rsa -N ''\n\nThen commit the new public key and push it to github and send the private key by\nemail to the other scikit-learn maintainers and ask one of them to update the\nauthorized public key of the `sklearndocbuild` user profile on sourceforge.net.\n\n\nAccessing the Rackspace Cloud management console\n------------------------------------------------\n\nUse rackspace credentials to list the running servers and terminate them if\nneeded at:\n\n    https://mycloud.rackspace.com/a/sklearn/\n\n\nThanks\n------\n\nWe would like to thank Rackspace for supporting the scikit-learn project by\ngiving a free Rackspace Cloud account.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscikit-learn%2Fsklearn-docbuilder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscikit-learn%2Fsklearn-docbuilder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscikit-learn%2Fsklearn-docbuilder/lists"}