{"id":23542908,"url":"https://github.com/brakmic/bosquedev","last_synced_at":"2026-02-24T07:12:33.482Z","repository":{"id":269770869,"uuid":"908392248","full_name":"brakmic/BosqueDev","owner":"brakmic","description":"Dockerfile for a fully functional Bosque Development Environment with all necessary dependencies.","archived":false,"fork":false,"pushed_at":"2024-12-29T11:34:55.000Z","size":516,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-13T19:19:54.120Z","etag":null,"topics":["ai","artificial-intelligence","bosque","bosque-lang","bosquelanguage","regularized-programming"],"latest_commit_sha":null,"homepage":"https://bosque-lang.org","language":"Dockerfile","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/brakmic.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":"2024-12-26T00:47:35.000Z","updated_at":"2024-12-27T19:28:27.000Z","dependencies_parsed_at":"2024-12-26T06:15:44.748Z","dependency_job_id":null,"html_url":"https://github.com/brakmic/BosqueDev","commit_stats":null,"previous_names":["brakmic/bosquedev"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brakmic%2FBosqueDev","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brakmic%2FBosqueDev/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brakmic%2FBosqueDev/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brakmic%2FBosqueDev/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brakmic","download_url":"https://codeload.github.com/brakmic/BosqueDev/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254287824,"owners_count":22045862,"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":["ai","artificial-intelligence","bosque","bosque-lang","bosquelanguage","regularized-programming"],"created_at":"2024-12-26T06:16:08.447Z","updated_at":"2025-10-29T06:47:25.463Z","avatar_url":"https://github.com/brakmic.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bosque Development Environment\n\nThis repository provides a Dockerfile to build a fully functional Bosque Development Environment. You can either use prebuilt Docker images or build your own image locally.\n\n![Docker Pulls](https://badgen.net/docker/pulls/brakmic/bosquedev?icon=docker)\n[![Docker Image Size](https://badgen.net/docker/size/brakmic/bosquedev?icon=docker\u0026label=image%20size)](https://hub.docker.com/r/brakmic/bosquedev/)\n\n## Prebuilt Docker Images\n\nPrebuilt Docker images are available [here](https://hub.docker.com/r/brakmic/bosquedev).  \nPull the image directly using Docker:\n\n```bash\ndocker pull brakmic/bosquedev:latest\n```\n\n## Building Your Own Image\n\nTo build the Docker image yourself:\n\n1. Clone this repository.\n2. Build the Docker image using the following command:\n\n    ```bash\n    docker build -t your_user_prefix/bosquedev:latest .\n    ```\n\n    The build process will automatically clone the [BosqueCore](https://github.com/BosqueLanguage/BosqueCore) repository during the build stage, so no additional manual steps are required.\n\n## Running the Docker Container\n\nRun the container interactively with a mounted volume to persist your session.\n\n### For Linux/Mac:\n```bash\ndocker run --rm -it -v $(pwd):/session your_user_prefix/bosquedev:latest\n```\n\n### For Windows Users:\n- **PowerShell**:\n  ```powershell\n  docker run --rm -it -v ${PWD}:/session your_user_prefix/bosquedev:latest\n  ```\n\n- **Command Prompt (CMD)**:\n  ```cmd\n  docker run --rm -it -v %cd%:/session your_user_prefix/bosquedev:latest\n  ```\n\n- **Git Bash or WSL**:\n  ```bash\n  docker run --rm -it -v $(pwd):/session your_user_prefix/bosquedev:latest\n  ```\n\n## Using the Dockerfile in a Devcontainer\n\nYou can use the provided Dockerfile as a development container in VS Code to streamline development.\n\n### What is a DevContainer?\n\nA devcontainer is a [containerized development environment](https://code.visualstudio.com/docs/devcontainers/containers) that allows you to work in a consistent and isolated environment directly from your code editor.\n\n![devcontainer_demo](./assets/images/devcontainer_demo.png)\n\n### Setting Up the DevContainer\n\n1. **Install Required Extensions**:\n   - Install the [Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) extension in VS Code.\n\n2. **Open the Devcontainer Options**:\n   - On **macOS**:\n     - Open VS Code.\n     - Click on the **View** menu \u003e **Command Palette** or press `Cmd+Shift+P`.\n   - On **Windows**:\n     - Open VS Code.\n     - Click on the **View** menu \u003e **Command Palette** or press `Ctrl+Shift+P`.\n   - In the Command Palette, search for and select `Dev Containers: Open Folder in Container...`.\n\n3. **Select the Dockerfile**:\n   - After selecting the folder containing your project, VS Code will prompt you to configure the devcontainer.\n   - If prompted, select `From 'Dockerfile'`.\n\n4. **Configure the DevContainer** (Optional):\n   - Ensure there is a `.devcontainer` folder in the root of your project with a `devcontainer.json` file. If it does not exist, create it with the following content:\n\n      ```json\n      {\n        \"name\": \"Bosque DevContainer\",\n        \"build\": {\n          \"dockerfile\": \"../Dockerfile\"\n        },\n        \"workspaceFolder\": \"/workspace\",\n        \"workspaceMount\": \"source=${localWorkspaceFolder},target=/host_workspace,type=bind,consistency=cached\",\n        \"customizations\": {\n          \"vscode\": {\n            \"settings\": {\n              \"files.exclude\": {\n                \"**/.git\": true,\n                \"**/.DS_Store\": true\n              }\n            }\n          }\n        },\n        \"mounts\": [\n          \"source=${localWorkspaceFolder}/scripts/setup-workspace.mjs,target=/workspace/scripts/setup-workspace.mjs,type=bind\"\n        ],\n        \"postCreateCommand\": \"node /workspace/scripts/setup-workspace.mjs \u0026\u0026 ln -sf /workspace/dev.code-workspace /home/bosquedev/.vscode-server/dev.code-workspace\",\n        \"remoteUser\": \"bosquedev\"\n      }\n      ```\n\n5. **Build and Open the DevContainer**:\n   - VS Code will automatically build the devcontainer and open it.\n   - Once the build process is complete, the containerized development environment will be ready.\n\n### Verifying the Environment\n\n- Run `bosque` in the integrated terminal to ensure the command is globally available.\n- Verify that the `/host_workspace` folder contains your project files.\n\n### Optional: Using a VS Code Workspace with the DevContainer\n\nIn addition to the standard devcontainer setup, you have the option to create and use a VS Code workspace that includes both the devcontainer's `/workspace` directory and the mounted `/host_workspace` directory. This allows you to access and work on files from both the container and your local machine within the same workspace.\n\n![workspace_demo](./assets/images/workspace_folder_list.png)\n\n#### Benefits\n\n- **Unified View:** Work on your project files and container-specific files simultaneously.\n- **Ease of Access:** Navigate seamlessly between local and container environments without switching contexts.\n- **Enhanced Productivity:** Streamline your development workflow by having all necessary files in one place.\n\n#### Setting Up the Workspace\n\n1. **Ensure DevContainer is Running:**\n   - Follow the steps in the **Setting Up the DevContainer** section to build and open the devcontainer.\n\n2. **Create the Workspace File:**\n   - The devcontainer setup includes a script (`setup-workspace.mjs`) that generates a workspace file named `dev.code-workspace` containing both `/workspace` and `/host_workspace`.\n   - This workspace file is typically located in the `/workspace` directory inside the container.\n\n3. **Open the Workspace in VS Code:**\n   - **Manual Method:**\n     - After the devcontainer has been built and is running, locate the `dev.code-workspace` file within the container's `/workspace` directory.\n     - In VS Code, go to **File** \u003e **Open Workspace...** and navigate to the `dev.code-workspace` file to open it.\n     - Alternatively, if the workspace file is accessible from your host machine (e.g., through a mounted volume), you can double-click the `dev.code-workspace` file in your file explorer to open it directly in VS Code.\n\n     ![devcontainer_workspace_file](./assets/images/dev_container_workspace.png)\n   \n   - **Using Symbolic Link:**\n     - The `postCreateCommand` in `devcontainer.json` creates a symbolic link to the workspace file at `/home/bosquedev/.vscode-server/dev.code-workspace`.\n     - In VS Code, you can open this workspace by navigating to **File** \u003e **Open Workspace...** and selecting the linked `dev.code-workspace` file.\n\n4. **Verify Workspace Contents:**\n   - Once opened, the workspace should display both the `/workspace` and `/host_workspace` folders in the VS Code Explorer pane.\n   - You can now work on files from both directories seamlessly.\n\n#### Notes\n\n- **Manual Activation:** Currently, the workspace file needs to be opened manually by double-clicking it in VS Code. This ensures that you have full control over when and how the workspace is activated.\n- **Consistency:** Ensure that the workspace file is kept up-to-date if you make changes to the devcontainer configuration or project structure.\n\n## Features\n\n- **Fully Functional Environment**: Includes all dependencies to develop and run Bosque applications.\n- **Global `bosque` Command**: The `bosque` command is globally available, enabling straightforward execution of Bosque scripts.\n- **Interactive Development**: Easily test and debug Bosque programs interactively using the container.\n\n## Usage Examples\n\n### Running Bosque Applications\n![Running Bosque Application](./assets/images/running_bosque.png)\n\n![Running Another Bosque Application](./assets/images/running_bosque_2.png)\n\n## Additional Resources\n\n- [Bosque-Language (Unofficial)](https://bosque-lang.org)\n- [Bosque Language GitHub Organization](https://github.com/BosqueLanguage)\n\n## Contributing\n\nContributions are welcome! Feel free to submit issues or pull requests to improve this repository.\n\n## License\n\nThis project is licensed under the [MIT License](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrakmic%2Fbosquedev","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrakmic%2Fbosquedev","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrakmic%2Fbosquedev/lists"}