{"id":18090973,"url":"https://github.com/wilzbach/d-bootstrap","last_synced_at":"2026-03-12T23:31:10.771Z","repository":{"id":71080921,"uuid":"119359066","full_name":"wilzbach/d-bootstrap","owner":"wilzbach","description":"An example of boostraping D in any project","archived":false,"fork":false,"pushed_at":"2018-03-28T04:29:05.000Z","size":9,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-10-11T07:38:15.959Z","etag":null,"topics":["boilerplate","bootstrap","coverage","d","dmd","documentation","dub","ldc","linting","make","template"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wilzbach.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null}},"created_at":"2018-01-29T09:09:33.000Z","updated_at":"2019-11-06T05:41:50.000Z","dependencies_parsed_at":"2023-08-28T21:05:08.663Z","dependency_job_id":null,"html_url":"https://github.com/wilzbach/d-bootstrap","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wilzbach/d-bootstrap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wilzbach%2Fd-bootstrap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wilzbach%2Fd-bootstrap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wilzbach%2Fd-bootstrap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wilzbach%2Fd-bootstrap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wilzbach","download_url":"https://codeload.github.com/wilzbach/d-bootstrap/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wilzbach%2Fd-bootstrap/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30449017,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T21:31:01.033Z","status":"ssl_error","status_checked_at":"2026-03-12T21:30:43.161Z","response_time":114,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["boilerplate","bootstrap","coverage","d","dmd","documentation","dub","ldc","linting","make","template"],"created_at":"2024-10-31T18:08:48.772Z","updated_at":"2026-03-12T23:31:10.758Z","avatar_url":"https://github.com/wilzbach.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"Hello D\n-------\n\n[![Build Status](https://travis-ci.org/wilzbach/d-bootstrap.svg?branch=master)](https://travis-ci.org/wilzbach/d-bootstrap)\n[![Code coverage](https://img.shields.io/codecov/c/github/wilzbach/d-bootstrap.svg?maxAge=86400)](https://codecov.io/gh/wilzbach/d-bootstrap)\n\nTo get you started with D, this is a small hello world application.\nThe Makefile will automatically download a D compiler - no installation necessary:\n\n    make\n    ./bin/hello\n\nYou can use LDC as well:\n\n    make bin/hello_opt\n    ./bin/hello_opt\n\nI'm sure you can take it from there. It's all up to you!\nHappy coding!\n\n\nI don't like Make\n-----------------\n\nInstead of a Makefile, you can of course always use\n[the install script](https://dlang.org/install.html) to setup a D compiler:\n\n    source $(curl https://dlang.org/install.sh | bash -s dmd)\n\nOr maybe you have a D compiler already installed on your system?\nYou can use this Makefile for bootstrapping your D compiler\nand making sure the same compiler is used on all systems:\n\n    make setup-dmd\n    ./bin/dmd\n\nAnalogous the command `make setup-ldc` makes sure `ldc` is installed locally and available\nvia `bin/ldc` (LLVM-like interface) and `bin/ldmd` (DMD-like interface).\n\nI want to use package X\n-----------------------\n\nFor more advanced projects, usage of [DUB](https://code.dlang.org/getting_started)\n- D's package manager - is recommended.\nIf you work in a environment where a D compiler isn't easily available or you\nsimply want to lock your project to a specific compiler version,\nyou can use the packaged `dub` for your scripts:\n\n    ./bin/dub\n\nOf course, you can also call `dub` from Make and integrate dub with other build steps:\n\n    make dub\n\nI want to use Travis for my project\n-----------------------------------\n\nSimply [enable the project on Travis](https://docs.travis-ci.com/user/getting-started).\n\nI want to use Continuous Integration service X for my project\n-------------------------------------------------------------\n\nThe D compiler bootstrapping in `make` will _auto-magically_ work.\nAlternatively, use [the install script](dlang.org/install.html).\n\nI want to have nice documentation for my project\n------------------------------------------------\n\nThe easiest way to get started, is to use `ddox`:\n\n    dub -b ddox\n\nHave a look at [veelo's gist](https://gist.github.com/veelo/f7668510bad2e8c9212ab66104541fcc)\nto see how it can be setup to automatically publish the latest documentation to\nyour GitHub pages.\n\nYou might also want to try [dpldocs.info's automatic generation](https://forum.dlang.org/thread/qeiapxuoamaumtggpqxl@forum.dlang.org).\n\nI want to have tests and code coverage for my project\n-----------------------------------------------------\n\nFirst, add a unittests:\n\n```d\nunittest\n{\n    assert(1 == 1, \"D math works as expected.\");\n}\n```\n\nAll tests can be executed with:\n\n    dub test\n\nTo generate coverage listing too, use the `unittest-cov` build mode:\n\n    dub test -b unittest-cov\n\nYou can browse the `.lst` files manually, but if you use GitHub or BitBucket,\nusage of the [CodeCov app](https://codecov.io/gh) is recommended.\n\nI want to have static code analysis and linting\n-----------------------------------------------\n\n[D-Scanner](https://github.com/dlang-community/D-Scanner) is the swiss-army knife\nfor D source code:\n\n    dub fetch dscanner\n    dub run dscanner -- --styleCheck source\n\nAdd a custom configuration:\n\n    dub run dscanner -- --defaultConfig\n    mv ~/.config/dscanner/dscanner.ini .dscanner.ini\n    dub run dscanner -- --styleCheck source --config .dscanner.ini\n\nI want to have automatic source formatting\n-----------------------------------------\n\n[dfmt](https://github.com/dlang-community/dfmt) is a source code formatter for D:\n\n    dub fetch dfmt\n    dub run dfmt\n\nWhy don't you use Docker?\n-------------------------\n\nDocker is typically used to allow a consistent work environment, but in my use cases Docker isn't available.\nIf you want to use Docker, check out the [D docker images](https://hub.docker.com/r/dlanguage/dmd/).\n\nWhat are the other Makefile targets?\n------------------------------------\n\nTarget         | Description\n---------------|-------------\nbin/hello      | A normal build with DMD\nbin/hello_opt  | An optimized build with LDC\nbin/hello_lto  | An optimized build with LDC and link-time optimization (LTO)\ndub            | Runs the application via DUB\ndub_opt        | Runs the application via DUB with LDC\ntest           | Runs all unittests\nstyle          | Runs static code analysis and style checking\nformat         | Reformats all code\nclean          | Removes all generated data\n\nI have more questions\n---------------------\n\nFeel to ask them at the [D: Learn Forum](https://forum.dlang.org/group/learn).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilzbach%2Fd-bootstrap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwilzbach%2Fd-bootstrap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilzbach%2Fd-bootstrap/lists"}