FAQ

What rili means, why this name is used?

It's name of nice animal, type of shrimp : Neocaridina Heteropoda Red Rili. Aditionally it sounds close to Really and Release (but without s) - which well describe this project idea.

Can I use rili in my projects?

Yes. All rili modules have MIT license, which allow you to modify, use and redistribute this code, even in case of commercial products.

Detailed licenses can be found in repositories_root_directory/LICENSE.md and more or less are equal to:

MIT License

Copyright (c) 2016 Tomasz Frydrych

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Where is documentation?

If you are looking for doxygen or API reference, you may be interested about rili doxygen, however longer articles, examples, tutorials etc. can be found in rili libraries subtree

Where is official rili repository?

Rili do not have single repository - it is set of modular, independent libraries, which have separate repositories, however you can obtain all of them in single gitlab group(and it subgroups). Aditionally there is repository which provide all latest stable rili modules as single dependency. This repo do not provide itself any worth to mention piece of code.

Is rili platform independent?

Yes and no. Yes because we belive and care about it. No because it's impossible to support every possible configuration in Universe. From one hand we want to support wide range of platforms, but from other hand, we don't have time and resorces for exotic operating systems or architectures. Anyway we will accept contributions even for odd platforms if it will not mess rili codebase for our main targets.

Rili officially support:

However with very high probabbility it will also work on other configurations. For instance rili is succesfully used on PS4 and XBOX.

But we are testing rili only on selected earlier environments so can't be sure what will happen for these platforms in feature.

We have Linux PC CI on gitlab, CI for mac os x and windows and ARM is missing now but it will change soon. Instead rili is used constantly on Mac, Windows and on raspberry pi environments, so issues are found and fixed relatively quickly after releases.

Where raport issues for rilis projects?

You have two main options - create it at our issue tracker or send email to our service desk. From our perspective these are equal, however service desk may have for you one important advantage - this way you can raport issue even if you do not have gitlab account. Furthermore if you found really important bug like security violation, do not hesitate to send email directly to project owner.

How to raport bug or request for feature?

First of all you should check if similar issue was not raported earlier by someone on our issue tracker, then if issue not exist, you should create issue in which you clearly describe problem.

Note:

In case of bugs, please not forget to describe how to reproduce it, on which environment, if is possible attach minimal example or test.

Note:

There will be nice if you could format your issue using markdown - if you don't know how to use it, please read this short instruction.

Note:

If you know that your issue is complex, you may considerate to split it into some smaller issues.

Note:

When someone maintainer will read your issue, there will be added labels based on your issue classification(optionally also estimation and weight)

Warning:

Remember that creating issue is just first step - it's very likely you will be asked about more details, so be prepared for this case.

How to contribute?

It depends mostly on your skills.

Most intuitive way is to just provide bug fixes, improvements, create issues, implement features.

However this is not the only way!

You can help to improve rili in many other ways. For example you can help in following areas:

Documentation

There is needed a lot of improvements in this area - I'm not english native speaker, so I make a lot of mistakes in this area. To be honest I'm not the best writer even in my native language. It will be really great to have someone who could raport typos, not correct grammar, spelling errors in documentation or review MRs according documentation correcrness or even rewrite / propose documentation for missing areas.

API Reviews

Rili need reviewers. As much as possible. Even if you are not very experianced your opinion is very important - for example if you don't understand API, that means it need to be improved or better documented.

Feature ideas

Ideas are important - if you feel that something is missing in Rili and you would like to have it nativelly, then please create issue, even if you do not know kow to implement it.

Promotion

Rili is not widely known library. If you like Rili, then don't hestitate to tell about it your friends or invite us to events.

How to deliver changes?

In rili project only possible way to deliver software changes is merge request.

Note:

Usually it's good idea to first of all create issue where you can describe area of your feature delivery, kind of improvement you would like to introduce etc. This way we can detect if someone else is not already working on something similar or check if it will not conflict with other features.

Note:

Starting MR very early (even without any real implementation) is very welcome - this way bugs / misunerstanding can be detected earlier, so fix take less time. Also this way you can "reserve" issue, so others probably will not take it and work will not be doubled.

Acceptance criteria

We have CI (Continous integration) based on gitlab runners and docker - every change must at least pass all jobs in pipeline. Typically there could be this kind of jobs:

Warning:

Documentation must be updated if public API or it behaviour is changed in way, which may be visible for end users.

Code Style

C++ Guideline In most cases we should follow CppCoreGuidelines, however if there are strong arguments to breake one or more rules in some areas it shouldn't be a big problem.

Note:

First of all implementation should follow KISS, and deliver exactly that much as is required to complete most urgent requirements without big api changes in future, to implement full required/expected functionality and syntactic sugars.

Documentation Style

Doxygen is used to generate documentation for rili. Whole public API should be well described.