Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

chore: use submodule nph in CI to check lint #3027

Merged
merged 2 commits into from
Sep 11, 2024
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
37 changes: 24 additions & 13 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ jobs:

export MAKEFLAGS="-j1"
export NIMFLAGS="--colors:off -d:chronicles_colors:none"

make V=1 LOG_LEVEL=DEBUG QUICK_AND_DIRTY_COMPILER=1 POSTGRES=$postgres_enabled test testwakunode2

build-docker-image:
Expand All @@ -141,25 +141,36 @@ jobs:
nim_wakunode_image: ${{ needs.build-docker-image.outputs.image }}
test_type: node-optional
debug: waku*

lint:
name: "Lint"
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Checkout code
uses: actions/checkout@v3

- name: Get submodules hash
id: submodules
run: |
echo "hash=$(git submodule status | awk '{print $1}' | sort | shasum -a 256 | sed 's/[ -]*//g')" >> $GITHUB_OUTPUT

- name: Cache submodules
uses: actions/cache@v3
with:
fetch-depth: 2 # In PR, has extra merge commit: ^1 = PR, ^2 = base
path: |
vendor/
.git/modules
key: ${{ runner.os }}-vendor-modules-${{ steps.submodules.outputs.hash }}

- name: Build nph
run: |
make build-nph

- name: Check nph formatting
# Pin nph to a specific version to avoid sudden style differences.
# Updating nph version should be accompanied with running the new
# version on the fluffy directory.
run: |
VERSION="v0.5.1"
ARCHIVE="nph-linux_x64.tar.gz"
curl -L "https://github.com/arnetheduck/nph/releases/download/${VERSION}/${ARCHIVE}" -o ${ARCHIVE}
tar -xzf ${ARCHIVE}
shopt -s extglob # Enable extended globbing
./nph examples waku tests tools apps *.@(nim|nims|nimble)
NPH=$(make print-nph-path)
echo "using nph at ${NPH}"
"${NPH}" examples waku tests tools apps *.@(nim|nims|nimble)
git diff --exit-code
10 changes: 6 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -270,12 +270,10 @@ networkmonitor: | build deps librln
############
## Format ##
############
.PHONY: build-nph clean-nph install-nph
.PHONY: build-nph install-nph clean-nph print-nph-path

build-nph:
ifeq ("$(wildcard $(NPH))","")
$(ENV_SCRIPT) nim c vendor/nph/src/nph.nim
endif
$(ENV_SCRIPT) nim c vendor/nph/src/nph.nim

GIT_PRE_COMMIT_HOOK := .git/hooks/pre-commit

Expand All @@ -294,6 +292,10 @@ nph/%: build-nph
clean-nph:
rm -f $(NPH)

# To avoid hardcoding nph binary location in several places
print-nph-path:
echo "$(NPH)"

clean: | clean-nph

###################
Expand Down
3 changes: 1 addition & 2 deletions apps/liteprotocoltester/liteprotocoltester.nim
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,7 @@ when isMainModule:
wnconf: WakuNodeConf, sources: auto
) {.gcsafe, raises: [ConfigurationError].} =
echo "Loading secondary configuration file into WakuNodeConf"
sources.addConfigFile(Toml, configFile)
,
sources.addConfigFile(Toml, configFile),
)
except CatchableError:
error "Loading Waku configuration failed", error = getCurrentExceptionMsg()
Expand Down
3 changes: 1 addition & 2 deletions apps/liteprotocoltester/tester_config.nim
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,7 @@ proc load*(T: type LiteProtocolTesterConf, version = ""): ConfResult[T] =
secondarySources = proc(
conf: LiteProtocolTesterConf, sources: auto
) {.gcsafe, raises: [ConfigurationError].} =
sources.addConfigFile(Envvar, InputFile("liteprotocoltester"))
,
sources.addConfigFile(Envvar, InputFile("liteprotocoltester")),
)
ok(conf)
except CatchableError:
Expand Down
6 changes: 2 additions & 4 deletions tests/testlib/wakunode.nim
Original file line number Diff line number Diff line change
Expand Up @@ -140,14 +140,12 @@ proc newTestWakuNode*(
if secureKey != "":
some(secureKey)
else:
none(string)
,
none(string),
secureCert =
if secureCert != "":
some(secureCert)
else:
none(string)
,
none(string),
agentString = agentString,
)

Expand Down
12 changes: 4 additions & 8 deletions tests/wakunode_rest/test_rest_store.nim
Original file line number Diff line number Diff line change
Expand Up @@ -297,8 +297,7 @@ procSuite "Waku Rest API - Store v3":
if reqHash.isSome():
reqHash.get().toRestStringWakuMessageHash()
else:
""
, # base64-encoded digest. Empty ignores the field.
"", # base64-encoded digest. Empty ignores the field.
"true", # ascending
"7", # page size. Empty implies default page size.
)
Expand Down Expand Up @@ -790,8 +789,7 @@ procSuite "Waku Rest API - Store v3":
if reqHash.isSome():
reqHash.get().toRestStringWakuMessageHash()
else:
""
, # base64-encoded digest. Empty ignores the field.
"", # base64-encoded digest. Empty ignores the field.
"true", # ascending
"3", # page size. Empty implies default page size.
)
Expand Down Expand Up @@ -827,8 +825,7 @@ procSuite "Waku Rest API - Store v3":
if reqHash.isSome():
reqHash.get().toRestStringWakuMessageHash()
else:
""
, # base64-encoded digest. Empty ignores the field.
"", # base64-encoded digest. Empty ignores the field.
)

check:
Expand All @@ -850,8 +847,7 @@ procSuite "Waku Rest API - Store v3":
if reqHash.isSome():
reqHash.get().toRestStringWakuMessageHash()
else:
""
, # base64-encoded digest. Empty ignores the field.
"", # base64-encoded digest. Empty ignores the field.
"true", # ascending
"5", # page size. Empty implies default page size.
)
Expand Down
3 changes: 1 addition & 2 deletions waku/node/peer_manager/waku_peer_store.nim
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,7 @@ proc get*(peerStore: PeerStore, peerId: PeerID): RemotePeerInfo =
if peerStore[ENRBook][peerId] != default(enr.Record):
some(peerStore[ENRBook][peerId])
else:
none(enr.Record)
,
none(enr.Record),
protocols: peerStore[ProtoBook][peerId],
agent: peerStore[AgentBook][peerId],
protoVersion: peerStore[ProtoVersionBook][peerId],
Expand Down
12 changes: 4 additions & 8 deletions waku/waku_api/rest/filter/types.nim
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,7 @@ proc toFilterWakuMessage*(msg: WakuMessage): FilterWakuMessage =
if msg.meta.len > 0:
some(base64.encode(msg.meta))
else:
none(Base64String)
,
none(Base64String),
ephemeral: some(msg.ephemeral),
)

Expand Down Expand Up @@ -239,8 +238,7 @@ proc readValue*(
if pubsubTopic.isNone() or pubsubTopic.get() == "":
none(string)
else:
some(pubsubTopic.get())
,
some(pubsubTopic.get()),
contentFilters: contentFilters.get(),
)

Expand Down Expand Up @@ -315,8 +313,7 @@ proc readValue*(
if pubsubTopic.isNone() or pubsubTopic.get() == "":
none(string)
else:
some(pubsubTopic.get())
,
some(pubsubTopic.get()),
contentFilters: contentFilters.get(),
)

Expand Down Expand Up @@ -364,8 +361,7 @@ proc readValue*(
if pubsubTopic.isNone() or pubsubTopic.get() == "":
none(string)
else:
some(pubsubTopic.get())
,
some(pubsubTopic.get()),
contentFilters: contentFilters.get(),
)

Expand Down
3 changes: 1 addition & 2 deletions waku/waku_api/rest/legacy_store/types.nim
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,7 @@ proc toStoreResponseRest*(histResp: HistoryResponse): StoreResponseRest =
if message.meta.len > 0:
some(base64.encode(message.meta))
else:
none(Base64String)
,
none(Base64String),
)

var storeWakuMsgs: seq[StoreWakuMessage]
Expand Down
3 changes: 1 addition & 2 deletions waku/waku_api/rest/lightpush/types.nim
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ proc readValue*(
if pubsubTopic.isNone() or pubsubTopic.get() == "":
none(string)
else:
some(pubsubTopic.get())
,
some(pubsubTopic.get()),
message: message.get(),
)
3 changes: 1 addition & 2 deletions waku/waku_api/rest/relay/types.nim
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,7 @@ proc toRelayWakuMessage*(msg: WakuMessage): RelayWakuMessage =
if msg.meta.len > 0:
some(base64.encode(msg.meta))
else:
none(Base64String)
,
none(Base64String),
ephemeral: some(msg.ephemeral),
)

Expand Down
12 changes: 4 additions & 8 deletions waku/waku_archive/driver/sqlite_driver/queries.nim
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,7 @@ proc createTable*(db: SqliteDatabase): DatabaseResult[void] =
?db.query(
query,
proc(s: ptr sqlite3_stmt) =
discard
,
discard,
)
return ok()

Expand All @@ -98,8 +97,7 @@ proc createOldestMessageTimestampIndex*(db: SqliteDatabase): DatabaseResult[void
?db.query(
query,
proc(s: ptr sqlite3_stmt) =
discard
,
discard,
)
return ok()

Expand Down Expand Up @@ -184,8 +182,7 @@ proc deleteMessagesOlderThanTimestamp*(
?db.query(
query,
proc(s: ptr sqlite3_stmt) =
discard
,
discard,
)
return ok()

Expand All @@ -206,8 +203,7 @@ proc deleteOldestMessagesNotWithinLimit*(
?db.query(
query,
proc(s: ptr sqlite3_stmt) =
discard
,
discard,
)
return ok()

Expand Down
15 changes: 5 additions & 10 deletions waku/waku_archive_legacy/driver/sqlite_driver/queries.nim
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,7 @@ proc createTable*(db: SqliteDatabase): DatabaseResult[void] =
?db.query(
query,
proc(s: ptr sqlite3_stmt) =
discard
,
discard,
)
return ok()

Expand All @@ -112,8 +111,7 @@ proc createOldestMessageTimestampIndex*(db: SqliteDatabase): DatabaseResult[void
?db.query(
query,
proc(s: ptr sqlite3_stmt) =
discard
,
discard,
)
return ok()

Expand All @@ -127,8 +125,7 @@ proc createHistoryQueryIndex*(db: SqliteDatabase): DatabaseResult[void] =
?db.query(
query,
proc(s: ptr sqlite3_stmt) =
discard
,
discard,
)
return ok()

Expand Down Expand Up @@ -226,8 +223,7 @@ proc deleteMessagesOlderThanTimestamp*(
?db.query(
query,
proc(s: ptr sqlite3_stmt) =
discard
,
discard,
)
return ok()

Expand All @@ -248,8 +244,7 @@ proc deleteOldestMessagesNotWithinLimit*(
?db.query(
query,
proc(s: ptr sqlite3_stmt) =
discard
,
discard,
)
return ok()

Expand Down
3 changes: 1 addition & 2 deletions waku/waku_keystore/utils.nim
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@ proc hasKeys*(data: JsonNode, keys: openArray[string]): bool =
return all(
keys,
proc(key: string): bool =
return data.hasKey(key)
,
return data.hasKey(key),
)

# Safely saves a Keystore's JsonNode to disk.
Expand Down
Loading