{"id":41043550,"url":"https://github.com/cern-fts/fts3","last_synced_at":"2026-01-22T10:46:00.477Z","repository":{"id":44490086,"uuid":"138748767","full_name":"cern-fts/fts3","owner":"cern-fts","description":"Low level data movement service","archived":false,"fork":false,"pushed_at":"2026-01-19T15:35:34.000Z","size":31761,"stargazers_count":13,"open_issues_count":3,"forks_count":19,"subscribers_count":6,"default_branch":"master","last_synced_at":"2026-01-19T21:53:59.764Z","etag":null,"topics":["fts","multi-protocol","mysql","server"],"latest_commit_sha":null,"homepage":"https://fts.cern.ch","language":"C++","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/cern-fts.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-06-26T14:19:35.000Z","updated_at":"2025-11-04T13:04:42.000Z","dependencies_parsed_at":"2023-11-23T17:39:18.220Z","dependency_job_id":"cd111d21-9856-45b2-a3cb-c28a875040c6","html_url":"https://github.com/cern-fts/fts3","commit_stats":null,"previous_names":[],"tags_count":108,"template":false,"template_full_name":null,"purl":"pkg:github/cern-fts/fts3","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cern-fts%2Ffts3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cern-fts%2Ffts3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cern-fts%2Ffts3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cern-fts%2Ffts3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cern-fts","download_url":"https://codeload.github.com/cern-fts/fts3/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cern-fts%2Ffts3/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28661882,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"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":["fts","multi-protocol","mysql","server"],"created_at":"2026-01-22T10:45:59.687Z","updated_at":"2026-01-22T10:46:00.471Z","avatar_url":"https://github.com/cern-fts.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"FTS3\n====\nFTS3 is the service responsible for globally distributing the majority of the\nLHC data across the WLCG infrastructure. Is a low level data movement service,\nresponsible for reliable bulk transfer of files from one site to another while\nallowing participating sites to control the network resource usage.\n\n## Vagrant\nTo ease the development of FTS3, we provide here a Vagrantfile. Using it should\nbe straight forward, provided you have installed Vagrant and a provider (i.e. VirtualBox).\n\nOnce you have them installed, just run\n\n```bash\nvagrant up\n```\n\nAnd ready to go. However, if you want to be able to compile the changes you make in your\nlocal copy (with your preferred IDE/editor), you may need to run\n\n```bash\nvagrant rsync-auto\n```\n\nafter the instance is up. This will synchronize the files.\n\n*Note:* Now the image is based on bento/centos, which by default installs\nVirtual Box Guest Additions, making unnecessary this command.\n\nTo enter the vagrant instace, just run on a separate shell \n\n```bash\nvagrant ssh\n```\n\nand you will be there. The source code will be under `/vagrant`. You should do the builds\nsomewhere else, though, since that folder is going to be synchronized, and you will lose\nthe artifacts and build configuration.\n\nYou can do the build in `/home/vagrant/build`, for instance.\n\n```bash\ncd /home/vagrant\nmkdir build\ncd  build\ncmake /vagrant/ -DALLBUILD=ON`\nmake\n```\n\nIf you want to get rid of the image, run `vagrant destroy`\n\n### Continuous Integration\n\nThe project uses Gitlab-CI for CI/CD. The [pipeline][1] runs for every push, in every branch:\n- static\\_code\\_analysis:\n  - black: checks code must be formatted with `black`\n  - pylint: checks for syntax errors (runs for every supported Python3 version)\n    - If you are sure that pylint is mistaken, add `# pylint: skip-file` at the beginning of the relevant file\n- build: builds server RPMs\n- docker: builds Docker images\n- test: runs unit-tests\n- publish: uploads server RPMs to the FTS testing repository\n\nMerge requests will proceed only if the pipeline succeeds.\nIn case of emergency the pipeline can be [skipped][2].\n\nThe `black` and `pylint` jobs run in a container from the image tagged as `ci`.\nThe `Dockerfile` is located at `.gitlab-ci/docker/Dockerfile` and the image is\nhosted in the container registry of this project. The image contains the\npre-installed Python environment in order to speed up CI execution. When a new\nenvironment is desired (such as new or upgraded dependencies), a new Docker\nimage must created by locally executing the\n`.gitlab-ci/docker/create-ci-image.sh` script, for example:\n```\ndnf install podman-docker\n\ncd .gitlab-ci/docker\n./create-ci-image.sh\n```\nUse the `ftssuite` account when asked by the\n`docker login gitlab-registry.cern.ch/fts/fts3` command for your username and\npassword.\n\n## References\n* Web page: http://fts3-service.web.cern.ch/\n* Documentation: http://fts3-docs.web.cern.ch/fts3-docs/docs/cli.html\n* Developers guide: http://fts3-docs.web.cern.ch/fts3-docs/docs/developers.html\n* Ticket handling in [JIRA](https://its.cern.ch/jira/browse/FTS/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel)\n* Continuous integration in [Jenkins](https://jenkins-fts-dmc.web.cern.ch/)\n* Monitored by the [Dashboard](http://dashb-fts-transfers.cern.ch/ui/)\n* For help, contact fts-support@cern.ch, or fts-devel@cern.ch\n\n[1]: https://gitlab.cern.ch/fts/fts3/-/pipelines\n[2]: https://docs.gitlab.com/ee/ci/yaml/#skipping-jobs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcern-fts%2Ffts3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcern-fts%2Ffts3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcern-fts%2Ffts3/lists"}