Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1218 commits
Select commit Hold shift + click to select a range
20dbfa6
fix(cisco collab): attempt to init connection if no login detected
stakach Oct 27, 2021
0aeac9f
chore(cisco collab): tweak connection initialisation timers
stakach Oct 27, 2021
2bccc53
fix(cisco room kit): ensure feedback only registered after init
stakach Oct 28, 2021
8bc8d3b
fix(cisco room kit): echo off not needed
stakach Oct 28, 2021
fb6d193
fix(cisco room kit): ensure feedback is registered
stakach Oct 28, 2021
e3ccf83
fix(cisco room kit): use named commands and ensure json output in use
stakach Oct 28, 2021
c5d9e62
fix(cisco roomkit): ensure feedback is hooked up
stakach Oct 28, 2021
c4a87d7
feat(place meet): add joining room support
stakach Oct 29, 2021
c11ae77
fix(place meet): adhere to merge outputs settings
stakach Oct 29, 2021
4b49530
fix(place meet): perform custom actions on mode switch
stakach Oct 29, 2021
2327b27
fix(place meet): init_joining on settings update
stakach Oct 29, 2021
b3a95a7
fix(cisco collab endpoint): disconnect if not receiving responses
stakach Oct 29, 2021
5e2963d
fix(cisco collab endpoint): invalid assignment
stakach Oct 29, 2021
9da59f2
fix(place meet): fix compilation issues
stakach Oct 29, 2021
a39a332
fix(place meet): needs to expose local mics
stakach Oct 29, 2021
a66bea3
feat(place meet): allow configuring which devices to shutdown
stakach Oct 30, 2021
16d5bcd
feat(place meet): persist joining room state
stakach Oct 30, 2021
c6cedac
fix(place meet): need joining settings early if join_selected
stakach Oct 30, 2021
0955e73
fix(place meet): select an unjoined mode on shutdown
stakach Oct 30, 2021
9e60323
fix(place meet): don't merge rooms if not included in the join
stakach Oct 30, 2021
6344ab9
fix(place meet): always unlink systems when requested on shutdown
stakach Oct 30, 2021
07450a4
fix(place meet): simulate routes on remote systems properly
stakach Oct 31, 2021
24aa112
fix(place meet): ignore selected input if tab available
stakach Oct 31, 2021
a5b985a
fix(place meet): ignore selected input if tab available
stakach Oct 31, 2021
fdcacfc
feat(place meet readme): describe how joining config works
stakach Oct 31, 2021
8c0e2aa
fix(cisco ui extender): subscribe events when driver is ready
stakach Nov 10, 2021
8e3dcfb
fix(cisco ui extender spec): binds on ready
stakach Nov 10, 2021
49593ca
feat(ashrae bacnet): allow saving of known devices
stakach Nov 10, 2021
b8628a3
fix(cisco ui extender): paths are case sensitive
stakach Nov 11, 2021
fba0e66
fix(cisco ui extender): fix monitoring path
stakach Nov 11, 2021
65cac2e
fix(cisco ui extender): add additional specs and debug output
stakach Nov 11, 2021
02ae1ee
fix(cisco ui extender): change how events are processed
stakach Nov 11, 2021
e88e183
fix(cisco collaboration): parsing Value hash key
stakach Nov 11, 2021
7815f81
fix(cisco ui extender): ensure we rebind after VC disconnect
stakach Nov 12, 2021
1bf5dd7
fix(lutron vive bacnet): wait for response before polling again
stakach Nov 15, 2021
4c243f7
feat(ashrae bacnet): use the queuing system to prioritise tasks
stakach Nov 15, 2021
1b7ad5a
fix(cisco collaboration endpoint): ensure init was successful
stakach Nov 15, 2021
d98ef40
fix(ashrae bacnet): ensure queue isn't blocked on timeouts
stakach Nov 15, 2021
d333d5b
feat(cisco collb / ui extender): add more debugging output
stakach Nov 16, 2021
758369d
fix(cisco collaboration endpoint): fail if control not registered
stakach Nov 16, 2021
004a4df
fix(cisco collaboration endpoint): fail if control not registered
stakach Nov 16, 2021
ab5ce45
Added an ability to use null values for iaq in the sensors (#269)
grkek Nov 16, 2021
1dd048b
fix(ashrae bacnet): low write timeouts and no client retries
stakach Nov 16, 2021
a7860fe
chore(cisco ui extender): add some additional logging
stakach Nov 16, 2021
fdc3f74
fix(cisco ui extender): don't clear subscrptions
stakach Nov 16, 2021
fbc9bd7
fix(cisco collaboration endpoint): don't fail on register
stakach Nov 16, 2021
8916742
Revert "fix(cisco ui extender): don't clear subscrptions"
stakach Nov 16, 2021
0d56b70
fix(cisco collaboration endpoint): ensure feedback paths are accurate
stakach Nov 16, 2021
c85bec5
chore(shard.lock): bump driver version
stakach Nov 16, 2021
5805663
fix(meraki locations): don't stop processing on single failure
stakach Nov 17, 2021
fdaafce
fix(meraki locations): return sensors if location is unknown
stakach Nov 17, 2021
5412f67
fix(amber tech grandview): status should execute even if queue offline
stakach Nov 17, 2021
4138f85
chore(shard.lock): bump drivers
stakach Nov 17, 2021
7df6589
feat(amber_tech grandview): add some headers to requests
stakach Nov 17, 2021
135960b
chore(shard.lock): bump driver
stakach Nov 17, 2021
c9a849e
fix(cisco ui extender): monitor placeos namespace
stakach Nov 17, 2021
65ad34a
Revert "fix(cisco ui extender): monitor placeos namespace"
stakach Nov 17, 2021
62fd054
fix(cisco ui extender): delay rebinding after a subscription clear
stakach Nov 17, 2021
c63002d
fix(cisco ui extender): don't block subscription reactor
stakach Nov 18, 2021
8117388
fix(place area management): have both people count average and sum
stakach Nov 18, 2021
8778dc1
fix(cisco collaboration endpoint): clear flags before blocking callback
stakach Nov 18, 2021
d5a135a
fix(cisco collaboration endpoint): check if tokeniser set
stakach Nov 18, 2021
36d0f9c
fix(cisco collaboration endpoint): fix missing type preventing compil…
stakach Nov 18, 2021
4bbda3c
Revert "fix(cisco ui extender): delay rebinding after a subscription …
stakach Nov 18, 2021
51b3728
fix(ashrae bacnet): improve polling requests
stakach Nov 18, 2021
2d7b490
fix(cisco collaboration endpoint): ensure successful init
stakach Nov 18, 2021
8d59ff6
fix(cisco ui extender): don't mark a failed connection ready
stakach Nov 18, 2021
7beda2b
fix(cisco collaboration endpoint): request JSON output as early as po…
stakach Nov 18, 2021
a4eeebc
fix(cisco/meraki): Client.vlan is now a String not Int32 (#270)
w-le Nov 18, 2021
e540d1d
fix(cisco collaboration endpoint): ensure we have schedules in place
stakach Nov 18, 2021
8f87e1f
fix(cisco collab): don't use queue for setting output mode
stakach Nov 18, 2021
f41172d
fix(cisco collab): wait a small amount of time before after login
stakach Nov 18, 2021
cb5d08b
fix(cisco collab): randomise connection of driver on load
stakach Nov 18, 2021
f6ab6fc
fix(cisco collab): reduce the delay time
stakach Nov 18, 2021
5fe6969
fix(cisco collab): don't sleep on_load
stakach Nov 18, 2021
0c8b4c7
chore(shard.lock): bump driver version
stakach Nov 18, 2021
6f0888d
chore(shard.lock): bump driver version
stakach Nov 19, 2021
ea335c3
chore(shard.lock): bump driver version
stakach Nov 20, 2021
6fcf218
fix(place meet): camera input selection type
stakach Nov 22, 2021
c5b1e56
fix(place meet): when merging tabs, merge the unmapped JSON
stakach Nov 22, 2021
a553ad0
fix(vergesense/mqttt_export): remove root topic (#271)
pkheav Nov 22, 2021
6a547d2
chore(drivers): run crystal tool format (#272)
pkheav Nov 22, 2021
8742f4c
feat(location services): downcase emails for lookup
stakach Nov 23, 2021
25ba3ab
feat(floorsense desks): add locker sharing functions
stakach Nov 23, 2021
2eabcd1
feat(floorsense desks): add method for setting privacy
stakach Nov 23, 2021
fb5a81e
fix(floorsense custom booking sync)
stakach Nov 24, 2021
34f52d5
Revert "fix(vergesense/mqttt_export): remove root topic (#271)" (#274)
pkheav Nov 24, 2021
c4fbf94
fix(floorsense custom booking sync): improper place release
stakach Nov 24, 2021
e94cf92
chore(floorsense): crystal tool format
stakach Nov 24, 2021
d0a5227
fix(place meet): mixer mute
stakach Nov 24, 2021
22022be
feat(vergesense location service): add desk sensor values to location…
stakach Nov 25, 2021
1fe4914
fix(floorsense custom booking sync): mark bookings are checked out
stakach Nov 25, 2021
76e6ef4
feat(floorsense desks websocket): add privacy and locker functions
stakach Nov 26, 2021
57705fe
feat(vergesense location service): optionally return empty spaces
stakach Nov 30, 2021
8bca763
fix(cisco meraki): close rate limiter on unload
stakach Dec 2, 2021
6a86221
chore(place staff api): fix spelling
stakach Dec 2, 2021
283e4df
fix(vergesense location service): make return_empty_spaces optional
stakach Dec 3, 2021
7125c83
fix(place staff api): fix issue with `default_verify_param`
stakach Dec 6, 2021
ae1147a
feat(juniper mist): add mist driver (#275)
stakach Dec 6, 2021
8a96127
feat(place meet): add QSC dialling extension
stakach Dec 7, 2021
08bc2ea
Vive leap (#276)
stakach Dec 20, 2021
16e1348
chore(docs): fix crystal docs generation (#244)
stakach Dec 20, 2021
f0792ec
fix(place router spec): broken in `crystal docs` fix up
stakach Dec 20, 2021
079b1e0
fix(place router): when muting a route, only mute the appropriate layer
stakach Dec 21, 2021
277a982
fix(place meet): order of operations
stakach Dec 21, 2021
a299c0b
feat(place area management): add measurement hints
stakach Dec 22, 2021
e73f01e
feat(floorsense desks): add desk control, group and setting listing
stakach Jan 10, 2022
bc6af1c
Fixing property type on Floorsense::UserGroup (#279)
cacique-coder Jan 12, 2022
cdf3017
feat(place booking check in): add auto cancellation support
stakach Jan 13, 2022
9b2390a
fix(place bookings checkin helper): use bookings namespace for emails
stakach Jan 13, 2022
c6718f4
feat: SecureOS driver (#278)
chillfox Jan 18, 2022
dc1dcd5
fix(vergesense): space_ref_id can be nil
stakach Jan 24, 2022
6b2a966
feat: add Meraki mqtt driver (#280)
stakach Jan 25, 2022
7baaf52
fix(meraki mqtt): handle differences in topic key names
stakach Jan 25, 2022
f959b43
fix(mqtt): bump dependencies
stakach Jan 25, 2022
57da38e
feat(drivers): add place demo drivers
stakach Jan 27, 2022
3e4a16e
feat(meraki mqtt): enable toggling of empty desks
stakach Jan 27, 2022
893d5b1
fix(place area management): check at location count
stakach Jan 31, 2022
4365424
chore(shards.lock): bump dependencies
stakach Feb 11, 2022
554a5d9
chore(place bookings): add debugging to change notifications
stakach Feb 14, 2022
9655f6f
fix(place bookings): don't clear subscriptions on sensor check
stakach Feb 14, 2022
8056992
feat: add kontakt io driver
stakach Feb 16, 2022
8ea4867
feat(kontakt.io): test streaming API
stakach Feb 16, 2022
b6a5910
fix(konkat.io): add undocumented fields for eventHub
stakach Feb 16, 2022
16152b4
fix(place meet): ensure driver loads functions correctly
stakach Feb 20, 2022
f836d9c
Improvements/floorsense reservation lockers (#281)
cacique-coder Feb 21, 2022
12070ed
feat(place checkin helper): add spec, additional logging
stakach Feb 22, 2022
356adec
chore(shard.yml): bump versions
stakach Feb 22, 2022
7bd6530
fix(place bookings): pending set once meeting checked in
stakach Feb 22, 2022
b07f244
chore(shard.lock): bump dependencies
stakach Feb 23, 2022
4f4be27
fix(amber tech grandview): increase delay between requests
stakach Feb 23, 2022
86b4480
fix(ambertech grandview): requires a 2 second delay between requests
stakach Feb 24, 2022
b897e78
chore(amber_tech grandview): add default setting
stakach Feb 24, 2022
8d4ae79
feat(meraki dashboard): add bluetooth location support
stakach Feb 24, 2022
3ca81ca
chore(amber_tech grandview): formatting
stakach Feb 24, 2022
53a34d9
fix(meraki scanning): nearest_ap_tags is optional
stakach Feb 24, 2022
3939485
fix(floorsense): Add missing query string symbol to split slave-list …
cacique-coder Feb 25, 2022
5c52248
feat(kontakt): add mac to username mappings
stakach Feb 28, 2022
5416e34
feat(place check in helper): setting to ignore long meetings
stakach Feb 28, 2022
a4a2edd
feat(kontakt): add contact tracing reporting
stakach Mar 2, 2022
725a923
feat(kontakt cloud): improve logging for debugging
stakach Mar 2, 2022
66a7c2e
fix(kontakt cloud): doesn't like encoded params
stakach Mar 2, 2022
1f678f1
chore(kontakt cloud): improve spec
stakach Mar 2, 2022
884665d
fix(kontakt tracing): checking ownership
stakach Mar 2, 2022
25b718f
fix(place meet): not cloning tab presentation source
stakach Mar 7, 2022
f0b3381
chore(deps): bump actions/checkout from 2 to 3 (#286)
dependabot[bot] Mar 7, 2022
5c1ddb1
build: update for broken shard reference
caspiano Mar 9, 2022
88d7192
feat: add Webex InstantConnect driver (#283)
tassja Mar 14, 2022
b88e85c
feat(place staff api): add support for API keys
stakach Mar 14, 2022
9c6af59
feat(juniper mist): simplify driver settings
stakach Mar 14, 2022
a36f972
feat(juniper mist): add site list helper function
stakach Mar 14, 2022
e845212
adding desk_scan and activate booking into floorsense driver (#290)
cacique-coder Mar 14, 2022
7204c17
chore(webex instant connect): fix formatting
stakach Mar 14, 2022
90b17c9
feat: add crestron nvx drivers (#289)
stakach Mar 15, 2022
d8797c5
feat(place meet): power on inputs on tab selection
stakach Mar 15, 2022
19a1988
feat(place bookings): add checkin helper
stakach Mar 16, 2022
04de541
feat: add philips dynalite driver (#292)
stakach Mar 21, 2022
2d897a7
Add Webex bot drivers (#285)
grkek Mar 22, 2022
5a9301d
feat(kontaktio): propagate errors in contact tracing
stakach Mar 23, 2022
3e89066
feat(kontakt io tracing): query 1 day at a time to avoid errors
stakach Mar 23, 2022
e48c2e7
feat(kontakt io tracing): remove duplicates from the report
stakach Mar 23, 2022
10dcf89
fix(kontakt io tracing): remove duplicates from the report
stakach Mar 23, 2022
2d3c336
feat(vergesense location services): allow for custom desk space types
stakach Mar 24, 2022
154ccf7
feat(place bookings): add booking notifier (#282)
stakach Mar 24, 2022
4f1dece
chore(shard.lock): bump dependencies
stakach Mar 28, 2022
7cc59fc
chore(shard.lock): peg crystal-email due to breaking change
stakach Mar 28, 2022
5050df9
feat(place/bookings): add offline image status
stakach Mar 28, 2022
c1b95ef
fix(place/bookings): use room_image as the setting
stakach Mar 28, 2022
8f46f3c
feat(place/bookings): configure if the room is bookable or not
stakach Mar 29, 2022
b298103
feat(place/bookings): add support for offline image and colour
stakach Mar 29, 2022
0a53229
feat(place/bookings): add custom QR code colour setting
stakach Mar 29, 2022
9f8945c
feat(floorsense/desks_websocket): add missing functions
stakach Mar 29, 2022
77c9db7
chore(.gitignore): add src symlink
stakach Mar 30, 2022
b98e347
chore(helvar/net): fix file permissions
stakach Mar 30, 2022
024aab0
feat(meraki/mqtt): average desk occupancy over time
stakach Mar 31, 2022
d15dbc6
chore(meraki/mqtt): add some comments on plotting points
stakach Mar 31, 2022
0282705
chore: run crystal tool format
stakach Mar 31, 2022
1bfa460
feat(pattr/chat_bot): POC integration driver
stakach Mar 31, 2022
ce352cb
feat: add demo location service
stakach Mar 31, 2022
60f0707
fix(pattr/chat_bot): webhook response not working
stakach Apr 1, 2022
d3316d9
feat: add rhombus security interop (#297)
stakach Apr 4, 2022
f19c343
fix(rhombus\security_mock): doors not exposed
stakach Apr 4, 2022
33fa5d4
feat(staff-api): add utm_source and limit_override params for booking…
cacique-coder Apr 4, 2022
cdb219d
style: lint
w-le Apr 4, 2022
afd822b
chore(deps): bump actions/cache from 2 to 3.0.1 (#299)
dependabot[bot] Apr 4, 2022
d3bea5f
fix(kontakt/contact_tracing): use 6 hour windows
stakach Apr 5, 2022
84f89a9
feat(rhombus/security): make signature optional
stakach Apr 5, 2022
7ea2f38
chore(place/logic_example): add example failure
stakach Apr 5, 2022
e83fc42
feat(place/booking_check_in_helper): improve how ignored bookings are…
stakach Apr 6, 2022
4ae3be1
fix(extron/matrix): poll to maintain connection
stakach Apr 11, 2022
e515063
feat(place/staff_api): add edit and delete event logic
stakach Apr 11, 2022
69883d0
add fields to the user model (#302)
Apr 14, 2022
9dded7d
chore(deps): bump actions/cache from 3.0.1 to 3.0.2 (#303)
dependabot[bot] Apr 18, 2022
72efbef
chore(deps): bump actions/upload-artifact from 2 to 3 (#301)
dependabot[bot] Apr 18, 2022
07bcd1d
fix(floorsense/desks_websocket): obtain locker list when controller i…
stakach Apr 19, 2022
ed90b03
fix(floorsense/User): User.pin and .privacy types
Apr 20, 2022
cc16134
chore(shard.lock): bump deps
stakach Apr 29, 2022
45e0e56
style: maintain docs and fix repository ameba failures (#312)
caspiano May 2, 2022
c0b5a39
ci: use centralised style workflow
caspiano May 2, 2022
a41ca27
add limit/offset to user_list (#322)
May 11, 2022
f07618b
add limit/offset (#324)
May 12, 2022
7e4a9d7
fix(vergesense/room_sensor): sensor state might not be available
stakach May 12, 2022
b11d9bc
fix(vergesense/room_sensor): block return value unknown
stakach May 12, 2022
d221ef3
fix(place/bookings): search for sensors unless a sensor is found
stakach May 12, 2022
6e50b4f
feat(drivers/kontakt_io): add sensor services (#328)
stakach May 19, 2022
97d62a7
feat(staff-api): add merge metadata method (#327)
cacique-coder May 19, 2022
f20898c
fix(kontakt/sensor_service): don't fail if floor mapping is missing
stakach May 20, 2022
611879c
feat(kontakt_io): add location support
stakach May 23, 2022
4dc1492
fix(kontakt_io): location support
stakach May 23, 2022
335fa6c
chore(shard.lock): bump deps
stakach May 26, 2022
62e8b40
feat: build (#238)
caspiano May 27, 2022
72167e2
style(kontakt_io/sensor_service): ameba fix
caspiano May 27, 2022
2e6fc45
feat: add start time to booking and meeting location service requests
stakach May 30, 2022
e00a59c
adding signal method to staff_api (#330)
cacique-coder May 30, 2022
75cf400
chore(shard.lock): bump deps
stakach May 31, 2022
bc3b829
feat(place/calendar): add delegated calendar support
stakach May 31, 2022
d725f52
fix(place/calendar_delegated): error response body
stakach May 31, 2022
090f5af
fix(place/calendar_delegated): listing events
stakach May 31, 2022
c46c634
refactor: split up place/calendar for improved clarity (#323)
stakach May 31, 2022
b015d28
fix(microsoft/graph_api): fix require path
stakach May 31, 2022
f4feb7a
fix(google/workplace_api): fix require path
stakach May 31, 2022
b3d0ef2
feat(place/staff_api): add delete user and create user
stakach May 31, 2022
90030ac
fix(place/staff_api): update event should patch
stakach Jun 1, 2022
30f3bdd
fix(staff_api): compilation issue
stakach Jun 1, 2022
12f7f6b
feat(place/staff_api): add support for reviving users
stakach Jun 1, 2022
ca16afe
fix(place/calendar_delegated): ensure correct system id
stakach Jun 3, 2022
f402f8d
fix(PlaceOS/staff-api): return values for create user and query user …
cacique-coder Jun 7, 2022
4051547
feat(philips): add DyNet 2 protocol (#335)
stakach Jun 9, 2022
ee392ec
chore(philips\dynet_text): add some additional logging
stakach Jun 9, 2022
15ead7f
fix(philips\dynet_text): can respond with leading null byte
stakach Jun 9, 2022
cbf58a8
feat(philips\dynet_text): add support joins
stakach Jun 9, 2022
c3dd69c
feat(bacnet): add datapoints logic for analytics (#336)
stakach Jun 14, 2022
34e4c35
feat: add qbic touch panel (#338)
stakach Jun 15, 2022
8c19185
chore(qbic/touch_panel): change default generic name
stakach Jun 16, 2022
ebe3068
fix(qbic\touch_panel): improve polling
stakach Jun 16, 2022
1b1efda
feat(lutron/vive_bacnet): poll power values
stakach Jun 16, 2022
d36c389
feat(vergesense): add signs of life
stakach Jun 16, 2022
24fd50c
fix(place/bookings): ensure state is correct outside of poll period
stakach Jun 19, 2022
52129d2
feat(place/calendar): improve request throughput
stakach Jun 20, 2022
2597393
fix(vergesense): extract signs_of_life from reports
stakach Jun 20, 2022
45029e1
chore(shard.lock): bump dependencies
stakach Jun 24, 2022
175b4b5
Add Quantum driver
grkek Jun 27, 2022
7792e96
Fix merge conflicts with the shard.lock
grkek Jun 27, 2022
7746141
Update the initialization with a getter
grkek Jun 27, 2022
3b9c294
Error on client being null
grkek Jul 21, 2022
ae92c78
feat(lutron/quantum): add area query
w-le Aug 24, 2022
46e9586
feat(lutron/quantum): add zones query
w-le Aug 24, 2022
74600b0
fix(lutron/quantum): scenes?
w-le Aug 24, 2022
ffd5f28
chore(shard.lock): patch quantum
w-le Aug 24, 2022
31f6b42
feat(lutron/quantum): get area,zones. fix get scenes
w-le Aug 26, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
61 changes: 61 additions & 0 deletions .ameba.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
Excluded:
- repositories/**/*.cr

Lint/DebugCalls:
Excluded:
- drivers/**/*_spec.cr

# NOTE: These should all be reviewed on an individual basis to see if their
# complexity can be reasonably reduced.
Metrics/CyclomaticComplexity:
Description: Disallows methods with a cyclomatic complexity higher than `MaxComplexity`
MaxComplexity: 10
Excluded:
- drivers/helvar/net.cr
- drivers/mulesoft/booking_api.cr
- drivers/samsung/displays/mdc_protocol.cr
- drivers/cisco/dna_spaces.cr
- drivers/cisco/meraki/dashboard.cr
- drivers/cisco/switch/snooping_catalyst.cr
- drivers/gantner/relaxx/protocol_json.cr
- drivers/place/bookings.cr
- drivers/place/area_management.cr
- drivers/place/smtp.cr
- drivers/hitachi/projector/cp_tw_series_basic.cr
- drivers/panasonic/projector/nt_control.cr
- drivers/lumens/dc193.cr
Enabled: false
Severity: Convention

Lint/UselessAssign:
Description: Disallows useless variable assignments
# NOTE: Not enabled due to the extremely large hit count.
# Discussion with driver authors on whether this pattern is intended.
Enabled: false
Severity: Warning

Style/VerboseBlock:
Description: Identifies usage of collapsible single expression blocks.
ExcludeCallsWithBlock: false
ExcludeMultipleLineBlocks: true
ExcludeOperators: false
ExcludePrefixOperators: false
ExcludeSetters: true
Enabled: false
Severity: Convention

Style/VariableNames:
Description: Enforces variable names to be in underscored case
# NOTE: Not enabled due to the extremely large hit count.
# Discussion with driver authors on whether this pattern is intended.
Enabled: false
Severity: Convention

# NOTE: These appear to be triggered by assignment in case expressions, could be an ameba bug
Lint/ShadowingOuterLocalVar:
Description: Disallows the usage of the same name as outer local variables for block
or proc arguments.
Excluded:
- drivers/cisco/switch/snooping_catalyst.cr
Enabled: true
Severity: Warning
33 changes: 33 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
name: Bug report
about: Create a report to help us improve
title: 'Bug: A concise description of the behaviour'
labels: bug
assignees: ''

---

**Describe the bug**

A clear and concise description of what the bug is.

**To Reproduce**

Steps to reproduce the behaviour or a minimal code snippet that demonstrates the behaviour.

**Expected behaviour**

A clear and concise description of what you expected to happen.

**Screenshots or a paste of terminal output**

If applicable, add screenshots to help explain your problem.

**Versions (please complete the following information):**

- Output of `$ crystal version`
- Driver version [e.g. 3.x]

**Additional context**

Add any other context about the problem here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/driver_migration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Driver Migration
about: Migrate existing Ruby Engine Driver to Crystal
title: 'Driver Migration: Migrate existing Ruby driver'
labels: driver
assignees: ''

---

**Driver to be Migrated**

Information about the driver to be migrated.

**Link to Existing Driver**

Link to existing Driver on Ruby Drivers Repo.

**Additional context**

Add any other context about the problem here.
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/driver_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
name: Driver Request
about: Request a new driver to be created
title: 'Driver Request: Information required to create a new driver'
labels: driver
assignees: ''

---

**Driver Type**

Logic/Device/SSH/Websocket

**Manufacturer**

Manufacturer of device, software or service

**Model/Service**

Model or Service

**Link to or Attach Device API or Protocol**

If applicable, add screenshots to help explain your problem.

**Describe any desired functionality**

- Control all aspects of device

**Additional context**

Add any other context about the driver request here.
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: Feature request
about: Suggest an idea for this project
title: 'RFC: Concise description of desired feature'
labels: ''
assignees: ''

---

**Is your feature request related to a problem? Please describe.**

A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**

A clear and concise description of what you want to happen.

**Describe alternatives you've considered**

A clear and concise description of any alternative solutions or features you've considered.

**Additional context**

Add any other context or screenshots about the feature request here.
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
42 changes: 42 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Build and Publish Drivers
on:
push:
branches: [master]

env:
CRYSTAL_VERSION: 1.4.1

jobs:
build:
name: Build
runs-on: ubuntu-latest
environment: Build
steps:
- uses: actions/checkout@v3

# Binary Cache Logic
#############################################################################################

- uses: actions/cache@v3
with:
path: binaries
key: drivers-${{ env.CRYSTAL_VERSION }}-${{ github.run_id }}
restore-keys: drivers-${{ env.CRYSTAL_VERSION }}-

#############################################################################################

- uses: FranzDiebold/github-env-vars-action@v2 # https://github.com/github/feedback/discussions/5251
- name: Build Drivers
run: |
./harness build \
--discover \
--strict-driver-info \
--repository-uri https://github.com/${{ github.repository }} \
--repository-path ./repositories/local \
--ref ${{ github.sha }}
env:
CRYSTAL_VERSION: ${{ env.CRYSTAL_VERSION }}
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
AWS_SECRET: ${{ secrets.AWS_SECRET }}
AWS_KEY: ${{ secrets.AWS_KEY }}
AWS_REGION: ${{ secrets.AWS_REGION }}
136 changes: 136 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
name: CI

on:
push:
branches: [master]
pull_request:
branches: [master]
schedule:
- cron: "0 6 * * 1"

env:
PARALLEL_TESTS: 10
PARALLEL_BUILDS: 2

jobs:
docs:
if: false # Temporarily disable as docs just _do not work_ for a driver
name: "Crystal Docs"
runs-on: ubuntu-latest
continue-on-error: true
container: crystallang/crystal
steps:
- uses: actions/checkout@v3
- name: Install Shards
run: shards install --ignore-crystal-version
- name: Docs
run: crystal docs

style:
name: "Style"
uses: PlaceOS/.github/.github/workflows/crystal-style.yml@main

subset-report:
name: "Subset Report - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }}"
runs-on: ubuntu-latest
continue-on-error: ${{ !matrix.stable }}
strategy:
fail-fast: false
matrix:
stable: [true]
crystal:
- 1.3.2
- 1.4.1
include:
- stable: false
crystal: nightly
steps:
- id: changes
uses: trilom/file-changes-action@v1.2.4
with:
output: ' '
- uses: actions/checkout@v3
- name: Cache shards
uses: actions/cache@v3
with:
path: lib
key: ${{ hashFiles('shard.lock') }}
- name: Driver Report
# Skip subset report if dependencies have changed
if: ${{ !contains(steps.changes.outputs.files, 'shard.yml') && !contains(steps.changes.outputs.files, 'shard.lock') }}
run: |
./harness \
report \
--verbose \
--tests=${{ env.PARALLEL_TESTS }} \
--builds=${{ env.PARALLEL_BUILDS }} \
${{ steps.changes.outputs.files }}
env:
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
AWS_REGION: ${{ secrets.AWS_REGION }}
CRYSTAL_VERSION: ${{ matrix.crystal }}
- name: Upload failure logs
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: logs-${{ matrix.crystal }}-${{ github.sha }}
path: .logs/*.log

full-report:
name: "Full Report - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }}"
needs: subset-report
runs-on: ubuntu-latest
continue-on-error: ${{ !matrix.stable }}
strategy:
fail-fast: false
matrix:
stable: [true]
crystal:
- 1.3.2
- 1.4.1
include:
- stable: false
crystal: nightly
steps:
- uses: actions/checkout@v3

- name: Cache shards
uses: actions/cache@v3
with:
path: lib
key: ${{ hashFiles('shard.lock') }}

# Binary Cache Logic
#############################################################################################

- uses: actions/cache@v3
with:
path: binaries
key: drivers-${{ env.CRYSTAL_VERSION }}-${{ github.run_id }}
restore-keys: drivers-${{ env.CRYSTAL_VERSION }}-

#############################################################################################

- name: Driver Report
run: |
./harness \
report \
--verbose \
--tests=${{ env.PARALLEL_TESTS }} \
--builds=${{ env.PARALLEL_BUILDS }}
env:
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
AWS_REGION: ${{ secrets.AWS_REGION }}
CRYSTAL_VERSION: ${{ matrix.crystal }}
- name: Show build container logs
if: ${{ failure() }}
run: docker-compose logs build
- name: Show drivers container logs
if: ${{ failure() }}
run: docker-compose logs drivers
- name: Upload failure logs
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: logs-${{ matrix.crystal }}-${{ github.sha }}
path: .logs/*.log
14 changes: 11 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
doc
lib
*.dwarf
*.rdb
.DS_Store
.crystal
.shards
app
*.dwarf
bin
doc
docs
binaries
lib
.logs
repositories/*
src
File renamed without changes.
1 change: 0 additions & 1 deletion .travis.yml

This file was deleted.

16 changes: 16 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug",
"type": "gdb",
"request": "launch",
"target": "./bin/test-harness",
"cwd": "${workspaceRoot}",
"preLaunchTask": "Compile",
"setupCommands": [
{ "text": "-gdb-set follow-fork-mode child" }
]
}
]
}
Loading