aboutsummaryrefslogtreecommitdiff
path: root/CONTRIBUTING.md
diff options
context:
space:
mode:
authorKitsune Ral <Kitsune-Ral@users.sf.net>2019-08-04 09:31:36 +0900
committerKitsune Ral <Kitsune-Ral@users.sf.net>2019-08-04 09:31:36 +0900
commitb0f259c3aa4ca619a6998184d16f9ab2daf5b5f4 (patch)
tree41ae97f2dbfb9a6d75da0eee2b364edb1182bdd0 /CONTRIBUTING.md
parent54c7eeab3e42737c7261aa2ae085cf87e616ee1b (diff)
downloadlibquotient-b0f259c3aa4ca619a6998184d16f9ab2daf5b5f4.tar.gz
libquotient-b0f259c3aa4ca619a6998184d16f9ab2daf5b5f4.zip
Updated documentation; bumped up requirements
[skip ci]
Diffstat (limited to 'CONTRIBUTING.md')
-rw-r--r--CONTRIBUTING.md12
1 files changed, 10 insertions, 2 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index fb8ff436..a89b75c7 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -153,7 +153,7 @@ you have to understand the way these files are produced and setup
some additional tooling. The shortest possible procedure resembling
the below text can be found in .travis.yml (our Travis CI configuration
actually regenerates those files upon every build). As described below,
-there are handy build targets for CMake; patches with the same targets
+there is a handy build target for CMake; patches with a similar target
for qmake are (you guessed it) very welcome.
#### Why generate the code at all?
@@ -196,7 +196,15 @@ GTAD uses the following three kinds of sources:
2. A configuration file, in our case it's lib/csapi/gtad.yaml - this one is common for the whole API.
3. Source code template files: lib/csapi/{{base}}.*.mustache - also common.
-The mustache files have a templated (not in C++ sense) definition of a network job, deriving from BaseJob; each job class is prepended, if necessary, with data structure definitions used by this job. The look of those files is hideous for a newcomer; the fact that there's no highlighter for the combination of Mustache (originally a web templating language) and C++ doesn't help things, either. To slightly simplify things some more or less generic constructs are defined in gtad.yaml (see its "mustache:" section). Adventurous souls that would like to figure what's going on in these files should speak up in the Quotient room - I (Kitsune) will be very glad to help you out.
+The mustache files have a templated (not in C++ sense) definition of a network
+job, deriving from BaseJob; each job class is prepended, if necessary, with
+data structure definitions used by this job. The look of those files is hideous
+for a newcomer; and the only known highlighter that can handle the combination
+of Mustache (originally a web templating language) and C++ is provided in CLion.
+To slightly simplify things some more or less generic constructs are defined
+in gtad.yaml (see its "mustache:" section). Adventurous souls that would like
+to figure what's going on in these files should speak up in the Quotient room -
+I (Kitsune) will be very glad to help you out.
The types map in `gtad.yaml` is the central switchboard when it comes to matching OpenAPI types with C++ (and Qt) ones. It uses the following type attributes aside from pretty obvious "imports:":
* `avoidCopy` - this attribute defines whether a const ref should be used instead of a value. For basic types like int this is obviously unnecessary; but compound types like `QVector` should rather be taken by reference when possible.