{"id":20082030,"url":"https://github.com/exercism/tcl","last_synced_at":"2026-02-16T14:31:29.076Z","repository":{"id":4889748,"uuid":"159963618","full_name":"exercism/tcl","owner":"exercism","description":"Exercism exercises in Tcl.","archived":false,"fork":false,"pushed_at":"2025-09-15T19:04:05.000Z","size":1798,"stargazers_count":11,"open_issues_count":6,"forks_count":20,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-09-15T21:09:14.952Z","etag":null,"topics":["community-contributions-paused","exercism-track","maintained-autonomous"],"latest_commit_sha":null,"homepage":"https://exercism.org/tracks/tcl","language":"Tcl","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/exercism.png","metadata":{"funding":{"github":["exercism"],"custom":["https://exercism.org/donate"]},"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-12-01T16:22:22.000Z","updated_at":"2025-09-15T19:04:10.000Z","dependencies_parsed_at":"2023-07-05T18:32:34.273Z","dependency_job_id":"cf4530e7-cbf4-4d3c-91ec-0c15a708d17f","html_url":"https://github.com/exercism/tcl","commit_stats":{"total_commits":369,"total_committers":18,"mean_commits":20.5,"dds":0.4281842818428184,"last_synced_commit":"e7ee3193347cc3fc43c1a1c4db8128f7d705fb5b"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/exercism/tcl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exercism%2Ftcl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exercism%2Ftcl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exercism%2Ftcl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exercism%2Ftcl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/exercism","download_url":"https://codeload.github.com/exercism/tcl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exercism%2Ftcl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276033574,"owners_count":25573581,"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","status":"online","status_checked_at":"2025-09-20T02:00:10.207Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["community-contributions-paused","exercism-track","maintained-autonomous"],"created_at":"2024-11-13T15:41:28.468Z","updated_at":"2025-09-20T02:27:57.120Z","avatar_url":"https://github.com/exercism.png","language":"Tcl","funding_links":["https://github.com/sponsors/exercism","https://exercism.org/donate"],"categories":[],"sub_categories":[],"readme":"# Exercism Tcl Track\n\n![build status](https://travis-ci.org/exercism/tcl.svg?branch=master)\n\nExercism exercises in [Tcl](https://www.tcl-lang.org/).\n\n## Setup\n\nTcl installation is described in the [INSTALLATION](docs/INSTALLATION.md) document.\n\n## Contributing\n\nThank you so much for contributing! :tada:\n\nPlease read about how to [get involved in a track](https://github.com/exercism/docs/tree/master/contributing-to-language-tracks). Be sure to read the Exercism [Code of Conduct](https://exercism.org/code-of-conduct).\n\nWe welcome pull requests of all kinds. No contribution is too small.\n\nWe encourage contributions that provide fixes and improvements to existing exercises. Please note that this track's exercises must conform to the Exercism-wide standards described in the [documentation](https://github.com/exercism/docs/tree/master/language-tracks/exercises). If you're unsure about how to make a change, then go ahead and open a GitHub issue (see below) and we'll discuss it.\n\n## Exercise Tests\n\nAt the most basic level, Exercism is all about the tests. You can read more about how we think about test suites in [the Exercism documentation](https://github.com/exercism/docs/blob/master/language-tracks/exercises/anatomy/test-suites.md).\n\nTcl test files use the [`tcltest`](https://www.tcl-lang.org/man/tcl8.6/TclCmd/tcltest.htm) core package. Here are two excellent introductory overviews:\n\n* [Getting started with tcltest](https://web.archive.org/web/20080617153002/www.tclscripting.com/articles/apr06/article1.html)\n* [Getting Started with tcltest](https://wuhrr.wordpress.com/2011/03/28/getting-started-with-tcltest/) (goes more in-depth)\n\n\n## Opening an Issue\n\nIf you plan to make significant or breaking changes, please [open an issue](https://github.com/exercism/tcl/issues) so we can discuss it first. If this is a discussion that is relevant to more than just the Tcl track, please open an issue in [exercism/discussions](https://github.com/exercism/discussions/issues).\n\n## Submitting a Pull Request\n\nPull requests should be focused on a single exercise, issue, or conceptually cohesive change. Please refer to Exercism's [pull request guidelines](https://github.com/exercism/docs/blob/master/contributing/pull-request-guidelines.md).\n\nPlease follow the coding standards for Tcl. (_TODO: reference one..._)\n\n### Verifying Your Change\n\nBefore submitting your pull request, you'll want to verify the changes in two ways:\n\n* Run all the tests for the Tcl exercises\n* Run an Exercism-specific linter to verify the track\n\nAll the tests for Tcl exercises can be run from the top level of the repo with\n\n```sh\n$ bin/check_exercise_versions\n# ensure you have committed your code before running the following:\n$ bin/test_all_exercises\n```\n\nNote that the `test_all_exercises` script will **overwrite** the `\"slug\".tcl` and then check it out again from git when the test is complete. If you have not committed your code, you risk losing that template file.\n\nTo run the linter, use the [`configlet`](https://github.com/exercism/configlet) tool:\n```sh\n$ path/to/configlet lint .\n```\n\n## Contributing a New Exercise\n\nPlease see the documentation about [adding new exercises](https://github.com/exercism/docs/blob/master/you-can-help/make-up-new-exercises.md).\n\nNote that:\n\n- Each exercise must stand on its own. Do not reference files outside the exercise directory. They will not be included when the user fetches the exercise.\n- Exercises should use only the Tcl core libraries.\n- Exercises must conform to the Exercism-wide standards described in [the documentation](https://github.com/exercism/docs/tree/master/language-tracks/exercises).\n- Each exercise should have a test suite, an example solution and a template file for the real implementation. Use the `canonical-data.json` file for the exercise from the [problem-specifications](https://github.com/exercism/problem-specifications) repo to guide your test implementation.\n- The CI build expects files to be named using the following convention: \n\n        exercises/\n        └── hello-world/            # (dir name == \"slug\" name)\n            ├── .meta\n            │   ├── hints.md        # (optional)\n            │   └── version         # (required)\n            ├── example.tcl\n            ├── hello-world.tcl     # \"slug\".tcl\n            ├── hello-world.test    # \"slug\".test\n            └── README.md           # (generated)\n\n- use `configlet generate . --only $slug` to generate the README file. The contents of `.meta/hints.md` will be incorporated into the README if you need to add Tcl-specific information.\n- Please do not commit any configuration files or directories inside the exercise.\n- Be sure to reference the new exercise at the appropriate place in the `config.json` file.\n    - Core exercises are placed at the top of the config file, in the order we want them to occur.\n    - Side exercises (that are unlocked when a core exercise is completed) are placed below, grouped and ordered by their parent core exercise.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexercism%2Ftcl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexercism%2Ftcl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexercism%2Ftcl/lists"}