{"id":15026093,"url":"https://github.com/collaboraonline/online","last_synced_at":"2026-02-26T23:07:57.161Z","repository":{"id":36960008,"uuid":"300155217","full_name":"CollaboraOnline/online","owner":"CollaboraOnline","description":"Collabora Online is a collaborative online office suite based on LibreOffice technology. This is also the source for the Collabora Office apps for iOS and Android. ","archived":false,"fork":false,"pushed_at":"2025-04-25T17:38:47.000Z","size":345260,"stargazers_count":2144,"open_issues_count":734,"forks_count":786,"subscribers_count":43,"default_branch":"master","last_synced_at":"2025-04-25T18:41:46.198Z","etag":null,"topics":["android","cpp","documents","enterprise","free-software","hacktoberfest","ios","javascript","libreoffice","office","open-source","opensource","productivity"],"latest_commit_sha":null,"homepage":"https://collaboraonline.com","language":"C++","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/CollaboraOnline.png","metadata":{"files":{"readme":"README.CONTRIBUTING.md","changelog":"ChangeLog","contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-10-01T05:23:57.000Z","updated_at":"2025-04-25T17:38:50.000Z","dependencies_parsed_at":"2022-07-14T10:22:10.559Z","dependency_job_id":"c3487af9-9b9a-41b5-a0a4-ccd2faf0fbdb","html_url":"https://github.com/CollaboraOnline/online","commit_stats":null,"previous_names":[],"tags_count":656,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CollaboraOnline%2Fonline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CollaboraOnline%2Fonline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CollaboraOnline%2Fonline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CollaboraOnline%2Fonline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CollaboraOnline","download_url":"https://codeload.github.com/CollaboraOnline/online/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251340936,"owners_count":21574015,"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":["android","cpp","documents","enterprise","free-software","hacktoberfest","ios","javascript","libreoffice","office","open-source","opensource","productivity"],"created_at":"2024-09-24T20:03:44.227Z","updated_at":"2026-02-26T23:07:57.105Z","avatar_url":"https://github.com/CollaboraOnline.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Online Contributor Representation \u0026 Certificate of Origin v1.0\n\nBy making a contribution to this project, I certify that:\n\n(a) The contribution was created in whole or in part by me and I\n    have the right to submit it under the appropriate\n    version of the Mozilla Public License v2, or (for artwork)\n    the Creative Commons Zero (CC0) license; or\n\n(b) The contribution is based upon previous work that, to the best of\n    my knowledge, is covered under an appropriate open source license\n    and I have the right under that license to submit that work with\n    modifications, whether created in whole or in part by me, under\n    the aforementioned licenes, in the appropriate version; or\n\n(c) The contribution was provided directly to me by some other person\n    who certified (a) or (b) and I have not modified it.\n\n(d) I understand and agree that this project and the contribution are\n    public and that a record of the contribution (including all\n    metadata and personal information I submit with it, including my\n    sign-off) is maintained indefinitely and may be redistributed\n    consistent with this project or the open source license(s)\n    involved.\n\n(e) I am granting this work to this project under the terms of both\n    the Mozilla Public License v2 and the GNU Lesser General Public\n    License version 3 as published by the Free Software Foundation:\n\nWhen submitting a patch, to make this certification add a line that\nstates:\n```\nSigned-off-by: Random J Developer \u003crandom@developer.example.org\u003e\n```\nusing your real name and the email address (sorry, no pseudonyms\nor anonymous contributions.)\n\n## Other information to put into your commit message\n\nWhen reviewing a patch, we look for the following information in the commit message:\n\n- Title: a single line, short and to the point summary of what the patch does.\n\n  - The reason is to be able to do `git log --pretty=oneline` and have a usable result.\n\n- Intro: observation of the current state\n\n  - Rationale: the problem to be solved is obvious to you, but not to the reviewer. It's good to\n    have a list of steps to reproduce the problem.\n\n- Problem description: pros and cons of the current state\n\n  - Rationale: when some feature doesn't work the way expected, frequently there is some other\n    use-case that motivated the current behavior. It's easier to not break the old use-case with\n    your change if you're aware of the old use-case.\n\n  - If there was an old use-case and you found it by research, please document it, so the person\n    reading the commit message finds it easily.\n\n- Solution: give orders to the codebase\n\n  - A short description of how you introduce new behavior while not breaking old behavior is useful,\n    because it may not be too obvious just by looking at what you changed.\n\nAn alternative is to have much of this information in a (public) issue, refer to that issue and have\na short commit message. That works better e.g. when using images to demonstrate the problem.\n\n## Coding style\n\nThere is not really any serious rationale why the code ended up being\nwritten in the style it is... but unless you plan to change some style\ndetail completely and consistently all over, please keep to the style\nof the existing code when editing.\n\nThe style is roughly as follows, in rough order of importance:\n\n- Source code files should have unix line terminators (LF)\n\n### C++\n\n- As in LibreOffice, no hard TABs in source files. Only spaces.\n  Indentation step is four columns.\n\n- As in LibreOffice, the braces `{` and `}` of the block of `if`, `switch`,\n  and `while` statements go on separate lines.\n\n- Following Poco conventions, non-static member variables are prefixed\n  with an underscore. Static members have a CamelCase name.\n\n- Do use C++20. When writing new code, prefer C++ Standard Library\n  over Poco classes and functions.\n\n- Always prefer the C++ wrapped version of a C library\n  API. I.e. include `\u003ccstring\u003e` instead of `\u003cstring.h\u003e`, use `std::memcpy()`\n  instead of `memcpy()`, etc.\n\n- Use std:: prefix for all std API, i.e. don't ever do `using\n  std;`. But it's OK to use `using Poco::Foo;` all over. Maybe that is\n  not a good idea? But please no `using` in headers.\n\n- Member functions use `camelCaseWithInitialLowerCase` instead of\n  `CamelCaseWithInitialUpperCase`.\n\n- No kind of Hungarian prefixes.\n\n- `return` - is not a function; but a statement - it doesn't need extra ()\n\n- Use `auto` in the following cases only:\n\n  - iterators\n\n  - range-based for loops\n\n  - the type is spelled out in the same line already (e.g. initializing from a\n    cast or a function that has a single type parameter)\n\n  In other cases it makes the code more readable to still spell out the type\n  explicitly.\n\n### JavaScript\n\n- Indent code with TABs.\n\n- For new code, use TypeScript.\n\n## Security credential related changes\n\n- Instead of the usual one, two reviews are needed.\n\n- Instead of just choosing the 'approve' option on GitHub, please add your\n  explicit sign-off to the commit message when you review.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcollaboraonline%2Fonline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcollaboraonline%2Fonline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcollaboraonline%2Fonline/lists"}