{"id":13961368,"url":"https://github.com/eclipse-cdt-cloud/trace-server-protocol","last_synced_at":"2025-04-10T05:20:49.816Z","repository":{"id":38340332,"uuid":"113441192","full_name":"eclipse-cdt-cloud/trace-server-protocol","owner":"eclipse-cdt-cloud","description":"Specification of the Trace Server Protocol (TSP)","archived":false,"fork":false,"pushed_at":"2025-01-21T21:49:36.000Z","size":258,"stargazers_count":25,"open_issues_count":17,"forks_count":19,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-03-24T06:45:18.017Z","etag":null,"topics":["eclipse","eclipse-foundation","trace","trace-server-protocol","trace-visualization","tsp"],"latest_commit_sha":null,"homepage":"https://eclipse-cdt-cloud.github.io/trace-server-protocol/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eclipse-cdt-cloud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-07T11:14:09.000Z","updated_at":"2025-01-21T21:49:41.000Z","dependencies_parsed_at":"2024-01-15T03:59:21.495Z","dependency_job_id":"d783771a-912a-41f2-b052-b9dbd9751da3","html_url":"https://github.com/eclipse-cdt-cloud/trace-server-protocol","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-cdt-cloud%2Ftrace-server-protocol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-cdt-cloud%2Ftrace-server-protocol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-cdt-cloud%2Ftrace-server-protocol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-cdt-cloud%2Ftrace-server-protocol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eclipse-cdt-cloud","download_url":"https://codeload.github.com/eclipse-cdt-cloud/trace-server-protocol/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248161492,"owners_count":21057601,"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":["eclipse","eclipse-foundation","trace","trace-server-protocol","trace-visualization","tsp"],"created_at":"2024-08-08T17:01:05.119Z","updated_at":"2025-04-10T05:20:49.797Z","avatar_url":"https://github.com/eclipse-cdt-cloud.png","language":"Python","readme":"# trace-server-protocol\n\nSpecification of the Trace Server Protocol\n\nThis protocol is built to decouple the backend and frontend of trace analysers, allowing traces to reside and be analysed on the backend, and visual models to be exchanged with a variety of clients.\n\nThe protocol is meant to be RESTful, over HTTP.\n\nThe specification is currently written in **OpenAPI 3.0** and can be pretty-visualized in the [github pages][tspGhPages].\n\n**👋 Want to help?** Read our [contributor guide][contributing].\n\n## Current version\n\nThe current version of the specification is currently implemented and supported in the [Trace Compass trace-server][tcServer] (reference implementation) and what is currently supported by the [tsp-typescript-client][tspClient].\n\nSwagger can be used to generate the API version implemented in Trace Compass trace-server (see [here](#generate-the-specification)).\n\n## Future version\n\nSome proposal for additional endpoints and features are documented in the `./API-proposed.yaml`. All the proposed changes are still not confirmed and can change. The pretty-visualized file can be found [here][apiProposed]. A diff of the current version and future version will show the differences.\n\nOnce an update has been approved it will be migrated to the main `./API.yaml` file.\n\n## Update manually\n\nThe specification should be edited with the [OpenAPI (Swagger) Editor extension][vscodeOpenapi] for VS Code.\n\nThe latter extension is assumed for consistent formatting of the `./API-proposed.yaml` file over time.\n\n## Generate the specification\n\n### Setup\n\nTo initialize a local virtual environment, type the following commands in the root directory:\n\n```shell\npython3 -m venv .venv\nsource .venv/bin/activate\npip install -r requirements.txt\n```\n\nThe virtual environment can be replaced with another local setup.\n\n### Generate the API\n\nSwagger has recently been added to the Trace Compass trace-server (reference implementation).\n\n* Below is how to generate the TSP version, according to Swagger in trace-server.\n* The generated TSP should match the current supported version of the TSP. Any differences may be pushed for review.\n* `API.yaml` shows now the current supported version of the TSP.\n\n1. Import all [TC][tracecompass] and [incubator][incubator] projects in Eclipse; branch, Target Platform and API Baseline set to `master`.\n1. Open `traceserver.product` file in plug-in `org.eclipse.tracecompass.incubator.trace.server.product`.\n1. Click on the `Run` button on the top right corner of the opened `traceserver.product`.\n1. Browse [to here][apiyaml] ([swagger][swagger]) or so to generate server's TSP.\n1. The resulting file is stored in the user's Downloads directory; e.g.: `~/Downloads/openapi.yaml`\n1. Copy `~/Downloads/openapi.yaml` to this directory.\n1. Update the latter with its license information and remove extra information: `./openapi.py`\n1. The resulting diff between `API.yaml` and `openapi.yaml` can then be pushed for review.\n   * Note, that the order of fields, components etc. might be different everytime the API is generated using swagger-core. This is due to how swagger-core is implemented.\n1. Make sure to transfer the diffs to `API-proposed.yaml` as well.\n1. `openapi.yaml` should not be merged to the repository and can be deleted when not needed anymore.\n\n[apiProposed]: https://eclipse-cdt-cloud.github.io/trace-server-protocol/proposed/\n[apiyaml]: http://localhost:8080/tsp/api/openapi.yaml\n[contributing]: CONTRIBUTING.md\n[incubator]: https://projects.eclipse.org/projects/tools.tracecompass.incubator/developer\n[swagger]: https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Integration-and-configuration#openapiresource\n[tcServer]: https://download.eclipse.org/tracecompass.incubator/trace-server/rcp/\n[tracecompass]: https://projects.eclipse.org/projects/tools.tracecompass/developer\n[tspClient]: https://github.com/eclipse-cdt-cloud/tsp-typescript-client\n[tspGhPages]: https://eclipse-cdt-cloud.github.io/trace-server-protocol/\n[vscodeOpenapi]: https://marketplace.visualstudio.com/items?itemName=42Crunch.vscode-openapi\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-cdt-cloud%2Ftrace-server-protocol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feclipse-cdt-cloud%2Ftrace-server-protocol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-cdt-cloud%2Ftrace-server-protocol/lists"}