{"id":13689660,"url":"https://github.com/hwayne/learntla-v2","last_synced_at":"2026-01-26T21:51:17.862Z","repository":{"id":37243965,"uuid":"452551174","full_name":"hwayne/learntla-v2","owner":"hwayne","description":"Learn TLA+ for free! No prior experience necessary!","archived":false,"fork":false,"pushed_at":"2025-02-12T19:49:06.000Z","size":2241,"stargazers_count":209,"open_issues_count":27,"forks_count":43,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-03-03T04:14:40.183Z","etag":null,"topics":["book","formal-methods","formal-specification","formal-verification","tla","tlaplus"],"latest_commit_sha":null,"homepage":"https://www.learntla.com","language":"TLA","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hwayne.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":"2022-01-27T05:27:06.000Z","updated_at":"2025-02-21T15:19:13.000Z","dependencies_parsed_at":"2024-02-08T22:25:18.600Z","dependency_job_id":"8a7e8df5-d881-4c4d-a85b-c1b0722db165","html_url":"https://github.com/hwayne/learntla-v2","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hwayne/learntla-v2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwayne%2Flearntla-v2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwayne%2Flearntla-v2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwayne%2Flearntla-v2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwayne%2Flearntla-v2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hwayne","download_url":"https://codeload.github.com/hwayne/learntla-v2/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwayne%2Flearntla-v2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28789138,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T21:49:50.245Z","status":"ssl_error","status_checked_at":"2026-01-26T21:48:29.455Z","response_time":59,"last_error":"SSL_read: 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":["book","formal-methods","formal-specification","formal-verification","tla","tlaplus"],"created_at":"2024-08-02T15:02:00.028Z","updated_at":"2026-01-26T21:51:17.845Z","avatar_url":"https://github.com/hwayne.png","language":"TLA","funding_links":[],"categories":["TLA"],"sub_categories":[],"readme":"# Learntla V2\n\nA guide to learning the TLA+ specification language. Going to be a gigantic mess right now, will be a while before the dust settles. \n\n\n## Usage\n\n### Installation\n\nRequires Python 3.10.\n\n```\ngit clone https://github.com/hwayne/learntla-v2.git\npython -m venv learntla-v2\n# Activate the venv yo\npython -m pip install -r requirements.txt\n```\n\n### Building\n\n```\n# with todos\nsphinx-build docs/ docs/_build/html/\n\n# without todos\nsphinx-build -D todo_include_todos=0 docs/ docs/_build/html/\n\n# check links for issues\nsphinx-build -b linkcheck docs/ docs/_build/\n```\n\n### Working with Specs\n\nSee the [raw-specs readme](/raw-specs/README.md) for explanation of what these are for.\n\nTo expand an xml template:\n\n```\n# dryrun\npython expand_template.py --dryrun file.xml\n\n# actually write files\npython expand_template.py file.xml\n```\n\nTo process a spec, write\n\n```\n# one file\npython process_spec.py file.tla\n\n# every file in a folder\nConvertFolder.ps1 folder\n```\n\n### Watcher.ps1\n\nBuilds the site whenever an rst file changes. Can be ignored, unnecessary for development.\n\nRequires \n\n```\nInstall-Module -Name FSWatcherEngineEvent\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhwayne%2Flearntla-v2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhwayne%2Flearntla-v2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhwayne%2Flearntla-v2/lists"}