diff options
-rw-r--r-- | docs/akonadish.md | 18 | ||||
-rw-r--r-- | docs/applicationdomaintypes.md | 16 | ||||
-rw-r--r-- | docs/design.md | 4 | ||||
-rw-r--r-- | docs/extending.md (renamed from docs/extendingakonadi.md) | 0 | ||||
-rw-r--r-- | docs/resource.md | 2 | ||||
-rw-r--r-- | docs/storage.md | 8 | ||||
-rw-r--r-- | docs/terminology.md | 10 | ||||
-rw-r--r-- | mkdocs.yml | 6 |
8 files changed, 32 insertions, 32 deletions
diff --git a/docs/akonadish.md b/docs/akonadish.md index b144dba..9884169 100644 --- a/docs/akonadish.md +++ b/docs/akonadish.md | |||
@@ -1,7 +1,7 @@ | |||
1 | The akonadi shell is the primary interaction point from the commandline. It can be used for debugging, maintenance and scripting. | 1 | The sink shell is the primary interaction point from the commandline. It can be used for debugging, maintenance and scripting. |
2 | 2 | ||
3 | The syntax is: | 3 | The syntax is: |
4 | `akonadish COMMAND TYPE ...` | 4 | `sinksh COMMAND TYPE ...` |
5 | 5 | ||
6 | # Commands | 6 | # Commands |
7 | 7 | ||
@@ -23,7 +23,7 @@ Drops all caches of a resource but leaves the config intact. This is useful whil | |||
23 | 23 | ||
24 | ## synchronize | 24 | ## synchronize |
25 | Allows to synchronize a resource. For an imap resource that would mean that the remote server is contacted and the local dataset is brought up to date, | 25 | Allows to synchronize a resource. For an imap resource that would mean that the remote server is contacted and the local dataset is brought up to date, |
26 | for a maildir resource it simply means all data is indexed and becomes queriable by akonadi. | 26 | for a maildir resource it simply means all data is indexed and becomes queriable by sink. |
27 | 27 | ||
28 | Eventually this will allow to specify a query as well to i.e. only synchronize a specific folder. | 28 | Eventually this will allow to specify a query as well to i.e. only synchronize a specific folder. |
29 | 29 | ||
@@ -31,24 +31,24 @@ Eventually this will allow to specify a query as well to i.e. only synchronize a | |||
31 | Provides the same contents as "list" but in a graphical tree view. This was really just a way for me to test whether I can actually get data into a view, so I'm not sure if it will survive as a command. For the time being it's nice to compare it's performance to the QML counterpart. | 31 | Provides the same contents as "list" but in a graphical tree view. This was really just a way for me to test whether I can actually get data into a view, so I'm not sure if it will survive as a command. For the time being it's nice to compare it's performance to the QML counterpart. |
32 | 32 | ||
33 | # Setting up a new resource instance | 33 | # Setting up a new resource instance |
34 | akonadi_cmd is already the primary way how you create resource instances: | 34 | sink_cmd is already the primary way how you create resource instances: |
35 | 35 | ||
36 | `akonadish create resource org.kde.maildir path /home/developer/maildir1` | 36 | `sinksh create resource org.kde.maildir path /home/developer/maildir1` |
37 | 37 | ||
38 | This creates a resource of type "org.kde.maildir" and a configuration of "path" with the value "home/developer/maildir1". Resources are stored in configuration files, so all this does is write to some config files. | 38 | This creates a resource of type "org.kde.maildir" and a configuration of "path" with the value "home/developer/maildir1". Resources are stored in configuration files, so all this does is write to some config files. |
39 | 39 | ||
40 | `akonadish list resource` | 40 | `sinksh list resource` |
41 | 41 | ||
42 | By listing all available resources we can find the identifier of the resource that was automatically assigned. | 42 | By listing all available resources we can find the identifier of the resource that was automatically assigned. |
43 | 43 | ||
44 | `akonadish synchronize org.kde.maildir.instance1` | 44 | `sinksh synchronize org.kde.maildir.instance1` |
45 | 45 | ||
46 | This triggers the actual synchronization in the resource, and from there on the data is available. | 46 | This triggers the actual synchronization in the resource, and from there on the data is available. |
47 | 47 | ||
48 | `akonadish list folder org.kde.maildir.instance1` | 48 | `sinksh list folder org.kde.maildir.instance1` |
49 | 49 | ||
50 | This will get you all folders that are in the resource. | 50 | This will get you all folders that are in the resource. |
51 | 51 | ||
52 | `akonadish remove resource org.kde.maildir.instance1` | 52 | `sinksh remove resource org.kde.maildir.instance1` |
53 | 53 | ||
54 | And this will finally remove all traces of the resource instance. | 54 | And this will finally remove all traces of the resource instance. |
diff --git a/docs/applicationdomaintypes.md b/docs/applicationdomaintypes.md index 4baf317..798fa13 100644 --- a/docs/applicationdomaintypes.md +++ b/docs/applicationdomaintypes.md | |||
@@ -22,7 +22,7 @@ This is a proposed set of types that we will need to evolve into what we actuall | |||
22 | 22 | ||
23 | * Contact | 23 | * Contact |
24 | * Collection | 24 | * Collection |
25 | * Akonadi Resource | 25 | * Sink Resource |
26 | * Mail Folder | 26 | * Mail Folder |
27 | * Calendar | 27 | * Calendar |
28 | * Todolist | 28 | * Todolist |
@@ -32,19 +32,19 @@ This is a proposed set of types that we will need to evolve into what we actuall | |||
32 | * Tag | 32 | * Tag |
33 | * Contact Group | 33 | * Contact Group |
34 | * Thread | 34 | * Thread |
35 | * Akonadi Resource | 35 | * Sink Resource |
36 | * Maildir Resource | 36 | * Maildir Resource |
37 | 37 | ||
38 | #### Properties | 38 | #### Properties |
39 | ```no-highlight | 39 | ```no-highlight |
40 | Entity: The smallest unit in the akonadi universe | 40 | Entity: The smallest unit in the sink universe |
41 | id: unique identifier in the akonadi storage. Not persistant over db recreations and can therefore only be referenced from within the akonadi database. | 41 | id: unique identifier in the sink storage. Not persistant over db recreations and can therefore only be referenced from within the sink database. |
42 | ``` | 42 | ``` |
43 | ```no-highlight | 43 | ```no-highlight |
44 | Domain Object: | 44 | Domain Object: |
45 | uid: unique identifier of the domain object. | 45 | uid: unique identifier of the domain object. |
46 | revision: revision of the entity | 46 | revision: revision of the entity |
47 | resource: reference to AkonadiResource:id of the parent resource. | 47 | resource: reference to SinkResource:id of the parent resource. |
48 | ``` | 48 | ``` |
49 | ```no-highlight | 49 | ```no-highlight |
50 | Event: | 50 | Event: |
@@ -61,7 +61,7 @@ Mail: | |||
61 | mimeMessage: A string containing the path to the mime message | 61 | mimeMessage: A string containing the path to the mime message |
62 | ``` | 62 | ``` |
63 | ```no-highlight | 63 | ```no-highlight |
64 | Akonadi Resource: | 64 | Sink Resource: |
65 | type: The type of the resource. | 65 | type: The type of the resource. |
66 | name: The name of the resource. | 66 | name: The name of the resource. |
67 | ``` | 67 | ``` |
@@ -75,7 +75,7 @@ Some domain objects reference others, and that is often used to build hierarchie | |||
75 | Examples are folder hierachies, tags, todo hierarchies, mail threads, contact groups, etc. | 75 | Examples are folder hierachies, tags, todo hierarchies, mail threads, contact groups, etc. |
76 | 76 | ||
77 | These references can be built on two levels: | 77 | These references can be built on two levels: |
78 | * On the akonadi entity level: The referenced object *must* be available in local storage, and we're only linking to that specific instance. If the referenced entity is removed, the reference breaks. The reference always only references a single akonadi entity. | 78 | * On the sink entity level: The referenced object *must* be available in local storage, and we're only linking to that specific instance. If the referenced entity is removed, the reference breaks. The reference always only references a single sink entity. |
79 | * On the domain object level: The reference can remain also if no object currently matches the reference. The reference automatically applies to new entities containing an object with the referenced uid. More than one entity can be matched if they contain the same domain object. | 79 | * On the domain object level: The reference can remain also if no object currently matches the reference. The reference automatically applies to new entities containing an object with the referenced uid. More than one entity can be matched if they contain the same domain object. |
80 | 80 | ||
81 | #### Examples | 81 | #### Examples |
@@ -84,7 +84,7 @@ The following hierachies exist among others: | |||
84 | * Parent Collection | 84 | * Parent Collection |
85 | * Given by the source (path of the folder in IMAP) | 85 | * Given by the source (path of the folder in IMAP) |
86 | * Parent folder "owns" the sub entity | 86 | * Parent folder "owns" the sub entity |
87 | * Link exists on the akonadi entity level: We specify where the entity lives, this MUST always be a single parent entity. | 87 | * Link exists on the sink entity level: We specify where the entity lives, this MUST always be a single parent entity. |
88 | * Subtodos | 88 | * Subtodos |
89 | * Given by the todo itself | 89 | * Given by the todo itself |
90 | * Not necessarly owning (though often implemented as such, similar to threading) | 90 | * Not necessarly owning (though often implemented as such, similar to threading) |
diff --git a/docs/design.md b/docs/design.md index 772bd65..4451b49 100644 --- a/docs/design.md +++ b/docs/design.md | |||
@@ -40,7 +40,7 @@ Implications of the above: | |||
40 | # Overview | 40 | # Overview |
41 | 41 | ||
42 | ## Client API | 42 | ## Client API |
43 | The client facing API hides all akonadi internals from the applications and emulates a unified store that provides data through a standardized interface. | 43 | The client facing API hides all Sink internals from the applications and emulates a unified store that provides data through a standardized interface. |
44 | This allows applications to transparently use various data sources with various data source formats. | 44 | This allows applications to transparently use various data sources with various data source formats. |
45 | 45 | ||
46 | ## Resource | 46 | ## Resource |
@@ -98,4 +98,4 @@ Each resource has an internal pipeline of preprocessors that can be used for tas | |||
98 | * key-value store does not perform with large amounts of data | 98 | * key-value store does not perform with large amounts of data |
99 | * query performance is not sufficient | 99 | * query performance is not sufficient |
100 | * turnaround time for modifications is too high to feel responsive | 100 | * turnaround time for modifications is too high to feel responsive |
101 | * design turns out similarly complex as akonadi1 | 101 | * design turns out similarly complex as Akonadi |
diff --git a/docs/extendingakonadi.md b/docs/extending.md index fe38e87..fe38e87 100644 --- a/docs/extendingakonadi.md +++ b/docs/extending.md | |||
diff --git a/docs/resource.md b/docs/resource.md index 0988535..defbf9a 100644 --- a/docs/resource.md +++ b/docs/resource.md | |||
@@ -31,7 +31,7 @@ The following kinds of preprocessors exist: | |||
31 | * passive preprocessors, that extract data that is stored externally (i.e. indexers) | 31 | * passive preprocessors, that extract data that is stored externally (i.e. indexers) |
32 | * flag extractors, that produce data stored with the entity (spam detection) | 32 | * flag extractors, that produce data stored with the entity (spam detection) |
33 | 33 | ||
34 | Preprocessors are typically read-only, to i.e. not break signatures of emails. Extra flags that are accessible through the akonadi domain model, can therefore be stored in the local buffer of each resource. | 34 | Preprocessors are typically read-only, to i.e. not break signatures of emails. Extra flags that are accessible through the sink domain model, can therefore be stored in the local buffer of each resource. |
35 | 35 | ||
36 | ## Requirements | 36 | ## Requirements |
37 | * A preprocessor must work with batch processing. Because batch-processing is vital for efficient writing to the database, all preprocessors have to be included in the batch processing. | 37 | * A preprocessor must work with batch processing. Because batch-processing is vital for efficient writing to the database, all preprocessors have to be included in the batch processing. |
diff --git a/docs/storage.md b/docs/storage.md index 794a739..4852131 100644 --- a/docs/storage.md +++ b/docs/storage.md | |||
@@ -34,7 +34,7 @@ The additional revision identifies a specific instance/version of the entity. | |||
34 | 34 | ||
35 | Uri Scheme: | 35 | Uri Scheme: |
36 | ``` | 36 | ``` |
37 | akonadi://resource/id:revision | 37 | sink://resource/id:revision |
38 | ``` | 38 | ``` |
39 | 39 | ||
40 | ## Store Entities | 40 | ## Store Entities |
@@ -138,7 +138,7 @@ Resources... | |||
138 | 138 | ||
139 | Queries... | 139 | Queries... |
140 | 140 | ||
141 | * Copy the requested property to /tmp/akonadi2/client_files/ and provide the path in the property | 141 | * Copy the requested property to /tmp/sink/client_files/ and provide the path in the property |
142 | * The file is guaranteed to exist for the lifetime of the query result. | 142 | * The file is guaranteed to exist for the lifetime of the query result. |
143 | 143 | ||
144 | Clients.. | 144 | Clients.. |
@@ -149,7 +149,7 @@ For writing: | |||
149 | 149 | ||
150 | Clients.. | 150 | Clients.. |
151 | 151 | ||
152 | * Request a path from akonadi2 and store the file there. | 152 | * Request a path from sink and store the file there. |
153 | * Store the path of the written file in the property. | 153 | * Store the path of the written file in the property. |
154 | 154 | ||
155 | Resources.. | 155 | Resources.. |
@@ -218,7 +218,7 @@ Other useful properties: | |||
218 | * couchdb | 218 | * couchdb |
219 | * MVCC concurrency | 219 | * MVCC concurrency |
220 | * document store | 220 | * document store |
221 | * not embeddable (unless we write akonadi in erlang ;) | 221 | * not embeddable (unless we write sink in erlang ;) |
222 | * https://github.com/simonhf/sharedhashfile | 222 | * https://github.com/simonhf/sharedhashfile |
223 | * not portable (i.e. Windows; it's a mostly-Linux thing) | 223 | * not portable (i.e. Windows; it's a mostly-Linux thing) |
224 | * http://sphia.org/architecture.html | 224 | * http://sphia.org/architecture.html |
diff --git a/docs/terminology.md b/docs/terminology.md index 9da8851..1826bec 100644 --- a/docs/terminology.md +++ b/docs/terminology.md | |||
@@ -1,11 +1,11 @@ | |||
1 | Consistent, agreed-upon terminology is key to being able to work together efficiently on a complex software project such as this, particularly as we are building on the earlier Akonadi efforts which itself has established terminology. You can find the current glossary here. | 1 | Consistent, agreed-upon terminology is key to being able to work together efficiently on a complex software project such as this, particularly as we are building on the earlier Akonadi efforts which itself has established terminology. You can find the current glossary here. |
2 | 2 | ||
3 | It is recommended to familiarize yourself with the terms before going further into the design of Akonadi-next as it will make things clearer for you and easier to ask the questions you have in a way that others will understand immediately. | 3 | It is recommended to familiarize yourself with the terms before going further into the design of Sink as it will make things clearer for you and easier to ask the questions you have in a way that others will understand immediately. |
4 | 4 | ||
5 | ## Glossary of Akonadi-Next Terms | 5 | ## Glossary of Sink Terms |
6 | * akonadi1: The current akonadi implementation that uses a central server and an SQL database | 6 | * akonadi1: The current akonadi implementation that uses a central server and an SQL database |
7 | * akonadi-next: This is the codename for the project. In the long run this is supposed to be folded into regular akonadi, so we will never release a product called akonadi-next. | 7 | * Sink: This is the name for the project. |
8 | * client: any application which accesses data using akonadi | 8 | * client: any application which accesses data using Sink |
9 | * entity: The atomic unit for a given type of data. An email is an entity; an email folder is an entity; a calendar event is an entity; a contact is an entity; etc. Different kinds of entities may have their own data structure, but conceptually they are equivalent in most other ways. | 9 | * entity: The atomic unit for a given type of data. An email is an entity; an email folder is an entity; a calendar event is an entity; a contact is an entity; etc. Different kinds of entities may have their own data structure, but conceptually they are equivalent in most other ways. |
10 | * revision: A version of the store. One entity may have multiple revisions in a store, representing (for instance) the local state and the synchronized state of the entity. | 10 | * revision: A version of the store. One entity may have multiple revisions in a store, representing (for instance) the local state and the synchronized state of the entity. |
11 | * source: The canonical data set, which may be a remote IMAP server, a local iCal file, a local maildir, etc. | 11 | * source: The canonical data set, which may be a remote IMAP server, a local iCal file, a local maildir, etc. |
@@ -20,6 +20,6 @@ It is recommended to familiarize yourself with the terms before going further in | |||
20 | * command queue: A queue of commands kept by the synchronizer to ensure durability and, when necessary, replayability | 20 | * command queue: A queue of commands kept by the synchronizer to ensure durability and, when necessary, replayability |
21 | * notification: A message sent from a synchronizer to inform the client of a change in the store | 21 | * notification: A message sent from a synchronizer to inform the client of a change in the store |
22 | * domain object: An application domain object, i.e. an event. | 22 | * domain object: An application domain object, i.e. an event. |
23 | * domain type: The type of a domain object. i.e. Akonadi2::ApplicationDomain::Event | 23 | * domain type: The type of a domain object. i.e. Sink::ApplicationDomain::Event |
24 | * buffer: The buffers used by the resources to persist data in the datastore. | 24 | * buffer: The buffers used by the resources to persist data in the datastore. |
25 | * buffer type: The individual buffer types as specified by the resource. These are internal types that don't necessarily have a 1:1 mapping to the domain types, although that is the default case that the default implementations expect. | 25 | * buffer type: The individual buffer types as specified by the resource. These are internal types that don't necessarily have a 1:1 mapping to the domain types, although that is the default case that the default implementations expect. |
@@ -1,4 +1,4 @@ | |||
1 | site_name: Akonadi Next | 1 | site_name: Sink |
2 | pages: | 2 | pages: |
3 | - Home: index.md | 3 | - Home: index.md |
4 | - Terminology: terminology.md | 4 | - Terminology: terminology.md |
@@ -7,8 +7,8 @@ pages: | |||
7 | - Storage: storage.md | 7 | - Storage: storage.md |
8 | - Logging: logging.md | 8 | - Logging: logging.md |
9 | - "Client API": clientapi.md | 9 | - "Client API": clientapi.md |
10 | - akonadish: akonadish.md | 10 | - sinksh: sinksh.md |
11 | - "Application Domain Types": applicationdomaintypes.md | 11 | - "Application Domain Types": applicationdomaintypes.md |
12 | - "Extending Akonadi": extendingakonadi.md | 12 | - "Extending Sink": extending.md |
13 | - Building: building.md | 13 | - Building: building.md |
14 | theme: readthedocs | 14 | theme: readthedocs |