Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Refactor: Motoko package vs Example service via dfx #28

Merged
merged 3 commits into from
Jul 13, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,13 @@ jobs:
set -x
dfx cache install
dfx start --background --no-artificial-delay
dfx canister --no-wallet create BigSearch
dfx build BigSearch
dfx deploy --no-wallet BigSearch
dfx canister --no-wallet create Search
dfx build Search
dfx deploy --no-wallet Search
dfx canister --no-wallet create UnitTest
dfx build UnitTest
dfx deploy --no-wallet UnitTest
dfx canister call UnitTest selfTest
- name: "docs"
run: /home/runner/.cache/dfinity/versions/$DFX_VERSION/mo-doc
- name: Upload docs
Expand Down
8 changes: 4 additions & 4 deletions dfx.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{
"canisters": {
"Main": {
"UnitTest": {
"main": "test/Main.mo"
},
"BigSearch": {
"main": "service/BigSearch.mo"
"Search": {
"main": "example/SearchService/Service.mo"
}
},
"defaults": {
"build": {
"packtool": "vessel sources",
"packtool": "vessel --package-set example-package-set.dhall sources",
"output": "canisters/"
},
"start": {
Expand Down
23 changes: 23 additions & 0 deletions example-package-set.dhall
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
let upstream =
https://github.com/kritzcreek/vessel-package-set/releases/download/mo-0.5.7-20210211/package-set.dhall
sha256:43565631bf6b43639fcd0cae5cbb6b5d4f9bf5139e66ef600b8f7ded31821325

let Package =
{ name : Text, version : Text, repo : Text, dependencies : List Text }

let
-- This is where you can add your own packages to the package-set
additions =
[ { name = "base"
, repo = "https://github.com/dfinity/motoko-base"
, version = "dfx-0.7.0-beta.2"
, dependencies = [] : List Text
}
, { name = "crud"
, repo = "https://github.com/matthewhammer/motoko-crud"
, version = "master"
, dependencies = [] : List Text
}
]

in upstream # additions
5 changes: 5 additions & 0 deletions example/SearchService/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Example: Search Service

Example service uses `Sequence` and `Text` modules from the main `sequence` package.

[Deployed here.](https://ic.rocks/principal/d3ip4-saaaa-aaaae-aaa2q-cai)
18 changes: 8 additions & 10 deletions src/Search.mo → example/SearchService/Search.mo
Original file line number Diff line number Diff line change
@@ -1,21 +1,19 @@
import Buffer "mo:base/Buffer";
import Char "mo:base/Char";
import Debug "mo:base/Debug";
import Hash "mo:base/Hash";
import Iter "mo:base/Iter";
import Nat "mo:base/Nat";
import Char "mo:base/Char";
import Result "mo:base/Result";
import Text "mo:base/Text";
import Buffer "mo:base/Buffer";

import Iter "mo:base/Iter";
import IterExt "IterExt";

import Trie "mo:base/Trie";
import TrieExt "TrieExt";

import Db "mo:crud/Database";

import Sequence "Sequence";
import Texts "Text";
import Sequence "../../src/Sequence";
import Texts "../../src/Text";
import TrieExt "../../src/TrieExt";
import IterExt "../../src/IterExt";

module {

Expand Down Expand Up @@ -54,7 +52,7 @@ module {
public type SearchResults = Sequence.Sequence<SearchResult>;

// stores a database of text files, with keyword search
public class BigSearch() {
public class Search() {

var count = 0;

Expand Down
16 changes: 8 additions & 8 deletions service/BigSearch.mo → example/SearchService/Service.mo
Original file line number Diff line number Diff line change
@@ -1,39 +1,39 @@
import Search "../src/Search";
import Search "Search";
import Debug "mo:base/Debug";
import Result "mo:base/Result";

actor {
public type FileId = Search.FileId;

flexible var bigSearch = Search.BigSearch();
flexible var search_ = Search.Search();

// do a keyword search, limited to at most maxResults
public query func search(q : ?Text, maxResults : Nat) : async [Search.SearchResult] {
bigSearch.search(q, maxResults)
search_.search(q, maxResults)
};

/// create a new text sequence
public func create(n : ?Text, m : ?Text, c : Text) : async FileId {
bigSearch.create(n, m, c)
search_.create(n, m, c)
};

/// delete a text sequence
public func delete(id : FileId) : async Bool {
bigSearch.delete(id)
search_.delete(id)
};

/// append to an existing text sequence
public func addText(id : FileId, t : Text) : async Bool {
bigSearch.addText(id, t)
search_.addText(id, t)
};

/// read a text sequence
public func readText(id : FileId) : async ?Text {
bigSearch.readText(id)
search_.readText(id)
};

/// read a text sequence slice
public func readSlice(id : FileId, pos : Nat, size : Nat) : async ?Text {
bigSearch.readSlice(id, pos, size)
search_.readSlice(id, pos, size)
};
}
45 changes: 14 additions & 31 deletions package-set.dhall
Original file line number Diff line number Diff line change
@@ -1,35 +1,18 @@
let upstream = https://github.com/kritzcreek/vessel-package-set/releases/download/mo-0.5.7-20210211/package-set.dhall sha256:43565631bf6b43639fcd0cae5cbb6b5d4f9bf5139e66ef600b8f7ded31821325
let Package =
{ name : Text, version : Text, repo : Text, dependencies : List Text }
let upstream =
https://github.com/kritzcreek/vessel-package-set/releases/download/mo-0.5.7-20210211/package-set.dhall
sha256:43565631bf6b43639fcd0cae5cbb6b5d4f9bf5139e66ef600b8f7ded31821325

let
-- This is where you can add your own packages to the package-set
additions = [
{ name = "base"
, repo = "https://github.com/dfinity/motoko-base"
, version = "dfx-0.7.0-beta.2"
, dependencies = [] : List Text
},
{ name = "crud"
, repo = "https://github.com/matthewhammer/motoko-crud"
, version = "master"
, dependencies = [] : List Text
},
]
let Package =
{ name : Text, version : Text, repo : Text, dependencies : List Text }

let
{- This is where you can override existing packages in the package-set

For example, if you wanted to use version `v2.0.0` of the foo library:
let overrides = [
{ name = "foo"
, version = "v2.0.0"
, repo = "https://github.com/bar/foo"
, dependencies = [] : List Text
}
]
-}
overrides =
[] : List Package
-- This is where you can add your own packages to the package-set
additions =
[ { name = "base"
, repo = "https://github.com/dfinity/motoko-base"
, version = "dfx-0.7.2"
, dependencies = [] : List Text
}
]

in upstream # additions # overrides
in upstream # additions
2 changes: 0 additions & 2 deletions test/Main.mo
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ import Sort "../src/Sort";

import TextSeq "../src/Text";

import Search "../src/Search";

import Buffer "mo:base/Buffer";
import Debug "mo:base/Debug";
import Nat "mo:base/Nat";
Expand Down