{"id":17210507,"url":"https://github.com/samth/docker-racket-build","last_synced_at":"2025-04-13T22:40:34.224Z","repository":{"id":85779555,"uuid":"108479605","full_name":"samth/docker-racket-build","owner":"samth","description":null,"archived":false,"fork":false,"pushed_at":"2019-01-05T09:25:48.000Z","size":65,"stargazers_count":5,"open_issues_count":17,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-10T12:25:08.136Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","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/samth.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":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-10-27T00:22:14.000Z","updated_at":"2023-10-26T11:23:54.000Z","dependencies_parsed_at":"2023-03-11T21:31:01.826Z","dependency_job_id":null,"html_url":"https://github.com/samth/docker-racket-build","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/samth%2Fdocker-racket-build","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samth%2Fdocker-racket-build/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samth%2Fdocker-racket-build/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samth%2Fdocker-racket-build/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samth","download_url":"https://codeload.github.com/samth/docker-racket-build/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248794093,"owners_count":21162610,"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-10-15T02:54:31.723Z","updated_at":"2025-04-13T22:40:34.204Z","avatar_url":"https://github.com/samth.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Docker-ized build and test of Racket releases [![Build Status](https://travis-ci.org/samth/docker-racket-build.svg?branch=full-travis)](https://travis-ci.org/samth/docker-racket-build)\n\nThis repository provides Dockerfiles and `docker-compose` configuration for\ninstalling and testing Racket versions, including official releases and\nsnapshot versions. The goal of this project is to reduce the manual effort\nrequired to test and release new Racket versions, see the [Release Overview][1]\nwiki page for details on that process.\n\n### Quickstart `docker-compose` example commands\n\nBy default, all commands use the latest Racket snapshot version. See the `.env`\nfile and the [environments directory][5] for more information.\n\n```shell\n# Build a Racket installation\ndocker-compose build racket-x86-minimal\n\n# Run a REPL in a built installation\ndocker-compose run racket-x86-minimal\n\n# Build non-GUI release tests for an installation\ndocker-compose build racket-x86-minimal-test\n\n# Run previously-built non-GUI release tests\ndocker-compose run racket-x86-minimal-test\n\n# Start the GUI browser debugging services in the background\ndocker-compose up -d nginx\n\n# Build and run GUI release tests\ndocker-compose build racket-x86-minimal-test-gui\ndocker-compose run racket-x86-minimal-test-gui\n# Now open localhost in your browser (if debugging services are up)\n\n# Run a different command in an already built image\ndocker-compose run racket-x86-minimal-test raco test -p my-collection\n```\n\n### Docker configuration overview\n\nThe [Docker Compose][2] configuration in `docker-compose.yml` defines a few\nservices for each installer variant:\n\n- A `racket-{installer}` service on top of an image that simply installs Racket\nand builds all installed packages. Running a container from this service drops\nyou into a Racket REPL.\n- A `racket-{installer}-test` service built on top of the corresponding\n`racket-{installer}` service. Running a container from this service runs\nautomated non-GUI release tests, specifically it runs the `test.sh` script.\n- A `racket-{installer}-test-gui` service that's like the `-test` service, but\nit runs GUI tests using an X server external to the service.\n\nSeveral services are defined for use by the GUI tests, including:\n\n- An X11 server implemented by `xvfb` used directly by the `-test-gui`\nservices. Unfortunately the X11 protocol is difficult to proxy in a\ntransparently distributed way, so only *one* `xvfb` container may be run at a\ntime and GUI test containers can't share the same container.\n- A few proxy services that convert a read-only connection to the X11 service\ninto a VNC connection over Websockets. Like the X11 protocol, this is hard to\nautoscale and only one container of each of these proxy services (`x11vnc` and\n`websockify`) may be run at once.\n- An NGINX webserver and a small service that builds the `noVNC` JS HTML5 app,\nwith the webserver hosting the app at `localhost:80`. The app connects to the\nVNC-over-Websockets connection letting you watch what the GUI tests are doing\nto the X11 server in real time by opening your browser and pressing the\n\"connect\" button.\n\n### Installer variants\n\nNot all installer variants are installed and tested. The following is a\ncomplete list of installer names used in the `racket-{installer}` services:\n\n| Name  | Meaning |\n| --- | --- |\n| `i386` | Linux 32-bit installer for main-distribution Racket |\n| `i386-minimal` | Linux 32-bit installer for minimal Racket |\n| `x86` | Linux 64-bit installer for main-distribution Racket |\n| `x86-minimal` | Linux 64-bit installer for minimal Racket |\n| `x86-natipkg` | Linux 64-bit installer for main-distribution Racket with bundled OS libraries |\n| `x86-natipkg-minimal` | Linux 64-bit installer for minimal Racket with bundled OS libraries |\n\nAll installers are installed in-place, not Unix-style. The following\ninstallation variants are yet to be tested:\n\n- Unix-style installations of installers, which is easily doable,\n- All from-source installations, which are harder but not especially difficult.\n- Windows `.exe` installations, which might be possible\n- MacOS `.dmg` installations, which is likely impossible\n\n### Release tests included so far\n\nThis list mirrors the \"Testing\" section of the [Release Checklist][3], with all\nitems contained here automated and run in the Dockerized release tests:\n\n* [ ] {Matthew Flatt \u003cmflatt@cs.utah.edu\u003e}\n  - [ ] Racket Tests\n   ```\n   racket -l tests/racket/test\n   ```\n  - [ ] Languages Tests\n   ```\n   racket -l tests/htdp-lang/test-htdp\n   ```\n  - [ ] PCPS test suite (in \"pcps-test\" repo)\n   ```\n   raco test -p pcps-test\n   ```\n\n* [ ] {Robby Findler \u003crobby@eecs.northwestern.edu\u003e}\n  - [ ] Contracts Tests:\n   ```\n   racket -l tests/racket/contract/all\n   racket -l tests/racket/contract-stress-argmin\n   racket -l tests/racket/contract-stress-take-right\n   ```\n\n  - [ ] Teachpacks Tests: image tests\n   ```\n   racket -l 2htdp/tests/bitmap-as-image-in-universe\n   racket -l 2htdp/tests/image-equality-performance-htdp\n   racket -l 2htdp/tests/image-equality-performance\n   racket -l 2htdp/tests/image-too-large\n   racket -l 2htdp/tests/test-image\n   ```\n\n  - [ ] PLaneT Tests:\n   ```\n   # (the output of these tests is hard to read)\n   raco test -l tests/planet/run-all\n   ```\n\n* [ ] {Sam Tobin-Hochstadt \u003csamth@ccs.neu.edu\u003e}\n  - [ ] Match Tests:\n  ```\n  raco test -l tests/match/main\n  ```\n\n  - [ ] Typed Racket Tests:\n  ```\n  racket -l typed-racket-test -- --all\n  ```\n\n* [ ] {Ryan Culpepper \u003cryanc@ccs.neu.edu\u003e}\n  - [ ] syntax-parse Tests\n    ```\n    raco test -c tests/stxparse\n    ```\n\n  - [ ] Data Tests\n    ```\n    raco test -c tests/data\n    ```\n\n  - [ ] DB Tests\n    ```\n    # basic tests with sqlite3; other tests require local software \u0026 configuration\n    racket -l tests/db/all-tests\n    ```\n\n  - [ ] SRFI Tests\n    ```\n    racket -l tests/srfi/run-tests\n    ```\n\n* [ ] {Jay McCarthy \u003cjay.mccarthy@gmail.com\u003e}\n  - [ ] XML Tests\n    ```\n    raco test -c tests/xml\n    ```\n\n  - [ ] HTML Tests\n    ```\n    raco test -c tests/html\n    ```\n\n  - [ ] PLAI Tests\n    ```\n    raco test -c plai\n    ```\n\n  - [ ] Racklog tests\n    ```\n    raco test -c racklog/tests\n    ```\n\n  - [ ] Datalog tests\n    ```\n    raco test -c datalog/tests\n    ```\n\n* [ ] {Stevie Strickland \u003csstrickl@ccs.neu.edu\u003e}\n  - [ ] Unit Contract Tests\n    ```\n    raco test -l tests/units/test-unit-contracts\n    ```\n\n  - [ ] Contract Region Tests\n    ```\n    racket -l tests/racket/contract/define-contract\n    racket -l tests/racket/contract/with-contract\n    ```\n\n  - [ ] Class Contract Tests\n    ```\n    racket -l tests/racket/contract/class\n    ```\n\n* [ ] {Stephen Chang \u003cstchang@ccs.neu.edu\u003e}\n  - [ ] Lazy Racket Tests\n\n    ```\n    raco test -l lazy/tests/main\n    ```\n\n* [ ] {David Van Horn \u003cdvanhorn@cs.umd.edu\u003e, Sam Tobin-Hochstadt \u003csamth@indiana.edu\u003e}\n  - [ ] EoPL Tests\n    ```\n    raco test -c eopl/tests\n    ```\n\n\nSee the [github issues][4] for more info on the status of automated release\ntests not yet included in this list.\n\n[1]: https://github.com/racket/racket/wiki/Release-overview\n[2]: https://docs.docker.com/compose/\n[3]: https://github.com/racket/racket/wiki/Release-Checklist\n[4]: https://github.com/samth/docker-racket-build/issues\n[5]: https://github.com/samth/docker-racket-build/tree/master/environments\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamth%2Fdocker-racket-build","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamth%2Fdocker-racket-build","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamth%2Fdocker-racket-build/lists"}