You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Release support for SQLite and Pharo 10 and 11 (#142)
* 93 support for SQLite (#141)
* Adjusts the baseline
* WIP for testSimple
* Comment improvment
* testSimpleSave green
* fixed more tests
* fixes benchmark for sqlite
* makes unqlite benchmarks work and using JSON for serialization
* changelog entry
* fixes findAll:
* fixes SQLite dependency in the baseline
* fixes escaping single quote for insert and update, removes obsolete code and also fixes 2 unrelated unit tests
* removes unused code and adds class comments
* working well with SQLite ^3.38
* adds testTruncate
* adds truncateAll
* adds databaseStartOn: double dispatching with sqlLiteDatabaseStart
* updates method for Pharo 10 to run tests
* upgrades MongoTalk
* adds Pharo64-10 and drops Pharo 7
* milliseconds to milliSeconds
* updates changelog, readme and CI
* adds missing ,
* wider range of acceptance for the tests of the replica set load balancer
* adjust unit test from Pharo 11
* Run CI only on push
* remove unused method and poorly worded comments
* covering #drop
* covers existence detection
* removes unused method
* covers insert:
* adds coverage to findAll: aMaplessClass where: someConditions limit: aLimitOrNil sort:
* readme edit
* instance creation convenience
* readme edit
* baseline default now is to load Memory and SQLite backends
* readme edit
* readme edit
* renames currentClientDynamicVariable to currentClientDynamicVariableClass
---------
Co-authored-by: Sebastian Sastre <[email protected]>
* changelog edit
---------
Co-authored-by: Sebastian Sastre <[email protected]>
Mapless is a schema-less persistence framework supporting multiple backends and offering a user-friendly API. Querying Mapless objects involves a common family of methods, and there's no need to declare accessors and mutators. See [examples below](#examples).
27
+
28
+
Designed to eliminate the need for schema maintenance, Mapless avoids any Object-Relational Mapping requirements.
29
+
30
+
Mapless achieves a balance between maximum data survivability and robust architectural flexibility without imposing a heavy burden in terms of adoption and maintenance. A sweet spot for development and production.
31
+
23
32
## Features
24
33
25
34
- Intuitive API for frictionless persistence.
@@ -31,30 +40,36 @@ Schema-less persistence for Smalltalk with support for multiple backends.
31
40
- Enables smooth data migration/interoperation among backends.
32
41
-~~Via Redis PUB/SUB, scalable observer-pattern functionality across images.~~ In the roadmap.
33
42
34
-
## Description
35
-
36
-
Mapless is a schema-less persistence framework supporting multiple backends and offering a user-friendly API. For instance, querying Mapless objects involves a common family of methods, and there's no need to declare accessors and mutators. See [examples below](#examples).
37
-
38
-
Designed to be schema-less, Mapless eliminates the need for schema maintenance and avoids any Object-Relational Mapping requirements.
39
-
40
-
Mapless achieves a balance of maximum data survivability and robust architectural flexibility without imposing a heavy burden in terms of adoption and maintenance.
41
-
42
-
## Ambition
43
-
44
-
To deliver a high-performance solution that preserves arbitrary application state (data) with a focus on flexibility, availability, and capacity. It aims to strategically aid in scaling without causing backend vendor lock-in, across various persistence backends, and by neutralizing the costs associated with object-mapping impedance mismatch.
45
-
46
43
## Supported backends
47
44
48
-
1. MongoDB
49
-
2. Redis
50
-
3. Memory
51
-
4. PostgreSQL
52
-
5.~~UnQLite~~`deprecated` / retiring soon
45
+
1. SQLite
46
+
2. PostgreSQL
47
+
3. Redis
48
+
4. MongoDB
49
+
5. Memory
50
+
6.~~UnQLite~~`deprecated` / retiring soon
53
51
54
52
## Examples
53
+
Try Mapless by [installing it in a supported Pharo image](#how-to-install) and the following snippets:
54
+
55
+
```Smalltalk
56
+
"Instantiates an SQLite Mapless repository."
57
+
repository := MaplessSQLiteRepository
58
+
for: 'TryMapless'
59
+
on: 'path/string/to/your/sqlite.db'.
60
+
```
55
61
56
62
```Smalltalk
57
-
"Instanciates a mapless object."
63
+
"Custom class to model your data"
64
+
Mapless subclass: #Person
65
+
instanceVariableNames: ''
66
+
classVariableNames: ''
67
+
package: 'YourApp-Mapless'
68
+
69
+
"Guarantees the database has a Person table (this is idempotent)."
To deliver a high-performance solution that preserves arbitrary application state (data) with a focus on flexibility, availability, and capacity. It aims to strategically aid in scaling without causing vendor lock-in, across various persistence backends, and by neutralizing the costs associated with object-mapping impedance mismatch.
Copy file name to clipboardExpand all lines: changelog.md
+29-13Lines changed: 29 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,33 +1,49 @@
1
+
Jan 30, 2024 | v0.6.0 | Sharp Bird
2
+
===================================
3
+
* Version relese
4
+
5
+
Jan 29, 2024
6
+
===================================
7
+
* Added SQLite support.
8
+
* Added Pharo 10 and Pharo 11 support.
9
+
* Dropped Pharo 7 support. Last working version on Pharo 7 was v0.5.26
10
+
* Added badges to the README.md
11
+
1
12
Jan 25, 2024
2
13
===================================
3
-
- Updating `master` branch to keep up with the latests useful upgrades.
4
-
- Adding badges to the README.md for constant monitoring of CI, unit tests, regression detection capacity and supported Pharo versions.
5
-
- Adds CI via GitHub actions.
14
+
* Updating `master` branch to keep up with the latests useful upgrades.
15
+
* Adding badges to the README.md for constant monitoring of CI, unit tests, regression detection capacity and supported Pharo versions.
16
+
* Adds CI via GitHub actions.
17
+
18
+
October 10, 2023
19
+
===================================
20
+
* Fixed most tests for the SQLite backend.
21
+
* Adjusted Benchmarking clases and added the one for SQLite.
6
22
7
23
May 22, 2023
8
24
===================================
9
-
- Improved `MongoAPI` by adding `initializeMongoUrl` and a lazy accessor using it and `Array` instead of `Set` so comparing it on the fly from `getIdleReadOnlyClient` is significantly faster now.
10
-
-`MaplessWeightedRandomPolicy>>nextAmong:` is faster now by not using `includes:` and use a `anySatisfy:` filter instead.
25
+
* Improved `MongoAPI` by adding `initializeMongoUrl` and a lazy accessor using it and `Array` instead of `Set` so comparing it on the fly from `getIdleReadOnlyClient` is significantly faster now.
26
+
*`MaplessWeightedRandomPolicy>>nextAmong:` is faster now by not using `includes:` and use a `anySatisfy:` filter instead.
11
27
12
28
May 19, 2023
13
29
===================================
14
-
- Added `defaultMinClients` for `MaplessStandaloneMongoPool`.
30
+
* Added `defaultMinClients` for `MaplessStandaloneMongoPool`.
15
31
16
32
May 19, 2022 | v0.5.4-beta | Humble Falcon
17
33
===================================
18
-
-`MongoChange` is now using MongoDB `document` instead of `jsonish`.
19
-
- Version bump.
34
+
*`MongoChange` is now using MongoDB `document` instead of `jsonish`.
35
+
* Version bump.
20
36
21
37
May 18, 2022 | v0.5.3-beta | Proud Falcon
22
38
===================================
23
-
- Declaring stable API for beta version.
39
+
* Declaring stable API for beta version.
24
40
25
41
May 18, 2022 | v0.5.2-alpha | Major Bird
26
42
===================================
27
-
-`MongoChange``type` is now uppercase for client convenience.
28
-
- Added `maplessClass` accessor in `Mapless` and `MaplessReference`.
29
-
- Added `unobservable` accessor to prevent recursive changes log.
30
-
- Fixes `DELETE` missing jsonish in the `MongoChange` object.
43
+
*`MongoChange``type` is now uppercase for client convenience.
44
+
* Added `maplessClass` accessor in `Mapless` and `MaplessReference`.
45
+
* Added `unobservable` accessor to prevent recursive changes log.
46
+
* Fixes `DELETE` missing jsonish in the `MongoChange` object.
0 commit comments