Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2507 commits
Select commit Hold shift + click to select a range
1a28482
chore(shard.lock): fix issue with driver lib
stakach Mar 28, 2025
7485277
feat(place/meet): improve node already exists error
stakach Mar 28, 2025
b590b58
fix(floorsense/desk_list): handle controllers lacking desk api (#550)
viv-4 Mar 28, 2025
49f38fd
feat: add booking_checkin_notifier driver
stakach Mar 31, 2025
ab38095
chore(place/staff_api): add some debugging output
stakach Mar 31, 2025
6537a8a
feat(place/staff_api): add asset_id and limit params to query_bookings
stakach Mar 31, 2025
ace2366
feat(place/staff_api): add period_end_default_in_min setting
stakach Mar 31, 2025
8a7acb2
fix(floorsense/desks_websocket): sync_locker_list ignoring desks wher…
stakach Apr 2, 2025
614ddbe
feat(auto_release): [PPT-1903|PPT-1901|PPT-1900|MT-346] more settings…
chillfox Apr 2, 2025
5af2b74
feat(cisco/xapi): only fetch new auth token when needed, add workspac…
naqvis Apr 2, 2025
c8f41b6
fix(qsc/q_sys_remote): better handling of mutes
stakach Apr 2, 2025
875ba67
feat(place/meet): add support for modules with a . in the name
stakach Apr 3, 2025
80ba1b6
chore(bookings/grant_area_access): ensure latest driver lib
stakach Apr 4, 2025
ffbec18
chore(place/staff_api): add queue size to introspection
stakach Apr 7, 2025
fcdf823
feat(place/desk_bookings_locations): include map_ids
stakach Apr 7, 2025
eef752d
fix(gallagher/zone_schedule): only apply changes in zone state
stakach Apr 10, 2025
26d4e49
feat(cisco/led_sync): New logic driver to sync Cisco Webex Nagivator …
w-le Apr 10, 2025
5dde342
feat(place/staff_api): add domain helper
stakach Apr 14, 2025
12b18af
fix(shard.lock): bump crystal client
stakach Apr 14, 2025
856320b
fix(crestron/nvx_tx): improve sync detection feedback
stakach Apr 15, 2025
7186894
Revert "fix(crestron/nvx_tx): improve sync detection feedback"
stakach Apr 15, 2025
d808aa0
chore(crestron): bump versions
stakach Apr 15, 2025
e3dafdc
chore(calendar): bump version
stakach Apr 15, 2025
249a17f
feat: update to use decimal codes and start from checkin time
stakach Apr 16, 2025
1ac2fc5
chore(place/room_booking_approval): delete useless alternate version
w-le Apr 16, 2025
71f947b
chore: bump driver version
stakach Apr 16, 2025
dd69e4a
feat(crestron): nvx osd and updates parsing
stakach Apr 16, 2025
77a21bc
fix(gallagher/zone_schedule): don't save current state
stakach Apr 16, 2025
2dc3f90
feat(williams_av/wave_cast_fm): add hearing notice text
stakach Apr 17, 2025
f060078
feat(place/meet): route on join and mic room mutes
stakach Apr 17, 2025
07b9d6b
feat(place/meet): add a local_inputs status
stakach Apr 17, 2025
0fc45b8
feat(place/meet): provide bindings for local camera lists
stakach Apr 17, 2025
f666d69
feat(epson/proj): optionally poll video/audio mute. As it is unsoppor…
w-le May 5, 2025
74498ff
feat(epson/proj): handle lamp hrs responses with a space
w-le May 5, 2025
856448c
chore(epson/proj): Clearer logging and var names
w-le May 5, 2025
2597079
revert(0fc45b8): local camera bindings need e2e test first. See PR
w-le May 5, 2025
3b7fd1e
feat(place/meet): power on preview_outputs on startup (#556)
w-le May 6, 2025
64dd48f
feat(epson/proj): optionally disable muting. potentially fix scope bu…
w-le May 6, 2025
4232c51
fix(epson/proj): handle buggy '::::PWR' response from device
w-le May 6, 2025
d28ac75
feat(place/meet): provide bindings for local camera lists (#558)
w-le May 12, 2025
4341c27
feat(place/meet): mute microphones on shutdown
stakach May 12, 2025
3c50c17
feat(place/meet): filter available cameras to cam type inputs
stakach May 12, 2025
9be386f
feat(place/meet): ensure video unmuted on route
stakach May 12, 2025
76614fb
feat(place/meet): new room accessory format
stakach May 13, 2025
66e272c
feat(place/meet): add accessory execution helper
stakach May 13, 2025
71622c4
feat(place/meet): add breakdown actions on join modes
stakach May 13, 2025
0296aef
feat(tv_one): add window stacker logic
stakach May 14, 2025
75fb1a2
feat(place/bookings): syllabus_plus helper to detect config errors
stakach May 14, 2025
abc91e1
fix(place/bookings): syllabus_plus_resource_check add rand sleep
stakach May 14, 2025
87c2bac
fix(place/bookings): improve syllabus plus check error message
stakach May 14, 2025
5d965a1
chore(shard.lock): bump driver shard
stakach May 15, 2025
dc8ed95
fix(place/meet): expose room mutes to mic controls
stakach May 15, 2025
6f05b6c
chore(place/meet_readme): document join breakdowns
stakach May 16, 2025
827fe4f
fix(shard.lock): bump driver lib
stakach May 16, 2025
39e5174
chore(README): update notes on driver dev tooling url
stakach May 19, 2025
8399527
feat(vergesense_api): fix last reported sensor timestamp
stakach May 20, 2025
014bdf3
feat(vergesense_api): fix space timestamp
stakach May 20, 2025
f9bcb52
feat(exterity/avedia_player/m93xx): add menu shell support
stakach May 20, 2025
bb5224c
fix(amx/svsi): enumerate virtual switcher properly
stakach May 21, 2025
8e8cc53
feat(crestron): add basic series4 monitoring driver
stakach May 21, 2025
b4bda03
feat(visitor_mailer): [PPT-2012] visitor jwt + kiosk url (#557)
chillfox May 22, 2025
ad81990
fix: update libssh2 for better event loop compatibility
stakach May 26, 2025
f055578
fix(exterity/m93): bump libssh2
stakach May 26, 2025
c7d2d98
fix(philips/dynalite): don't retry comms
stakach May 26, 2025
a0beb40
fix(tv_one/window_stacker): display binding name
stakach May 27, 2025
65ab0d0
feat(place/meet): add unroute_all, exec accessories on source system
stakach May 27, 2025
1b4d273
fix(place/meet): available_accessories needs to be stored locally
stakach May 27, 2025
ccb6296
fix(place/meet): missing return in accessory exec
stakach May 27, 2025
5146435
fix(place/meet): mic_room_selection should search available mics
stakach May 28, 2025
21337ea
feat(place/meet): allow multiple mutes for room control
stakach May 28, 2025
cb3f779
fix(place/meet): merged outputs should not be displayed
stakach May 28, 2025
b878a98
fix(place/booking_check_in_helper): use calendar module to get user d…
stakach May 29, 2025
23aea60
fix(visitor_mailer.cr): use calendar over staff_api driver
stakach May 29, 2025
b8cf6aa
Revert "fix(visitor_mailer.cr): use calendar over staff_api driver"
stakach May 29, 2025
f2428a0
feat: add middle_atlantic/rack_link driver (#559)
stakach Jun 2, 2025
a60e5f2
chore(middle_atlantic/rack_link): add documentation link
stakach Jun 2, 2025
81ecae9
feat(bookings/grant_area_access): add some whitelist helpers
stakach Jun 3, 2025
40f4335
fix(bookings/grant_area_access): minor tweaks to helpers
stakach Jun 3, 2025
23ce499
fix(bookings/grant_area_access): ensure no duplicates in whitelist
stakach Jun 3, 2025
913ff6e
fix(bookings/grant_area_access): sorting whitelist
stakach Jun 3, 2025
2206b28
fix(place/meet): volume changes should be proxied to remote rooms
stakach Jun 4, 2025
38bf659
chore(control_point.cr): add some additional comments
stakach Jun 4, 2025
ebd6730
chore(sms.cr): update comments
stakach Jun 4, 2025
1bf1179
feat(philips/dynalite): settings to control transport behaviour
stakach Jun 5, 2025
2a7976b
feat(place/meet): fix mic mutes on shutdown
stakach Jun 5, 2025
2ebd135
fix(docker-compose.yml): version warning when running test harness
stakach Jun 5, 2025
213208e
fix(place/http_pinger): curl to only perform one request
stakach Jun 11, 2025
a457eb8
chore(shard.lock): bump dependencies
stakach Jun 12, 2025
09d160e
chore(docs): update guides to match docs.placeos.com for AI
stakach Jun 13, 2025
98061e1
feat(gallagher/rest_api): add support for additional events
stakach Jun 13, 2025
b46c183
feat(epson/projector): add support for IMEVENT processing
stakach Jun 13, 2025
b8941bf
chore(docs): add information on how to use state
stakach Jun 13, 2025
456684d
feat(place/staff_api): add upload helpers
stakach Jun 16, 2025
88d5942
feat(place/staff_api): add cache options to upload
stakach Jun 17, 2025
693850f
feat: add MS user photo cacher
stakach Jun 17, 2025
19ce38f
feat: add MS user photo cacher
stakach Jun 17, 2025
3fdea4b
fix(microsoft/user_photo_cache): md5 hash algorithm
stakach Jun 17, 2025
5139316
fix(microsoft/user_photo_cache): remove suspended check
stakach Jun 17, 2025
918ca6b
fix(microsoft/user_photo_cache): check files are actually cached
stakach Jun 17, 2025
cd706f7
feat(microsoft/user_photo_cache): add upload_id to user models
stakach Jun 18, 2025
576ee7f
fix(microsoft/user_photo_cache): user body must be a string
stakach Jun 18, 2025
ee73946
feat(place/user_group_mappings): support muliple authority ids
stakach Jun 18, 2025
f4ca122
feat: add demo camera for UI testing
stakach Jun 19, 2025
1421740
fix(demo/camera): add some mutexes around methods
stakach Jun 19, 2025
97134b8
feat(panasonic/camera): improve priorities on commands
stakach Jun 19, 2025
a934349
chore(cisco/room_kit): stability improvement in base lib
stakach Jun 19, 2025
28e18d5
fix(aver/cam520_pro): improve responsiveness
stakach Jun 19, 2025
7b7f31f
fix(sony/camera): improve responsiveness
stakach Jun 19, 2025
6740de6
chore(rhombus/security_interop): updated door security interface
stakach Jun 22, 2025
b5a174a
fix(auto_release): [PPT-2001] skip_created_after_start always being t…
chillfox Jun 25, 2025
7217d82
feat(zoom): add driver
stakach Jun 30, 2025
b53490e
feat(place/booking_check_in_helper): cc other relevant staff
stakach Jul 1, 2025
28dff51
fix(bookings/grant_area_access): fallback to email if username not found
stakach Jul 1, 2025
883b72d
feat(place/meet): add route to all helper
stakach Jul 1, 2025
127cd15
fix(crestron/occupancy_sensor): consider up to date if responding
stakach Jul 1, 2025
32d5695
fix(crestron/occupancy_sensor): update sensor timestamp
stakach Jul 1, 2025
b0c496a
feat(place/booking_check_in_helper): fallback for user name fetch
stakach Jul 2, 2025
7c017b5
Add Zoom Rooms Cloud REST API Control Driver (#561)
camreeves Jul 3, 2025
2795fa2
feat(place/meet): add support for lighting levels and spot lights
stakach Jul 3, 2025
91f39de
fix(place/meet): lighting level bindings
stakach Jul 3, 2025
4bccdf1
feat(zoom): add list meetings
stakach Jul 7, 2025
d6b3041
fix(zoom/rooms_api): list meetings using rooms user_id
stakach Jul 7, 2025
8b7f8d5
fix(epson/projector): strip `:` chars before processing response
stakach Jul 8, 2025
db3ffad
feat(location_services): check if staff have opted out of being located
stakach Jul 9, 2025
bc26626
fix(place/bookings): presence sensors may be ignored
stakach Jul 9, 2025
114f895
feat: PPT-2065 Sennheiser TCCM driver (#560)
naqvis Jul 9, 2025
345c429
feat: PPT-1936 Added new webex workspace integration driver (#546)
naqvis Jul 9, 2025
ce8c816
feat: PPT-1684 HPE Aruba driver (#547)
naqvis Jul 9, 2025
5959b90
fix(place/meet): present all only to available outputs
stakach Jul 9, 2025
1484f80
fix(cisco/room_kit): bump ssh transport
stakach Jul 10, 2025
77b3561
chore(demo/test_ssh): bump version
stakach Jul 10, 2025
e134edf
chore(ssh): bump deps
stakach Jul 10, 2025
9f1a2dc
feat(sony): add bravia pro driver
stakach Jul 14, 2025
fb840d0
feat(humly): [PPT-1741] add humly REST API driver (#568)
chillfox Jul 14, 2025
29b5fd8
feat(hid): add origo rest api driver
stakach Jul 15, 2025
3244c4f
feat(hid/origo): cleanup and simplify driver
stakach Jul 15, 2025
16958b4
fix(hid/origo): pass status update
stakach Jul 15, 2025
633b880
fix(hid/origo): implement pass templates
stakach Jul 15, 2025
f483af4
fix(hid/origo): authentication
stakach Jul 16, 2025
2074de5
fix(visitor_mailor): [PPT-2118] make event_title be the actual title …
chillfox Jul 17, 2025
d5368da
fix(visitor_mailer): [PPT-2117|PPT-2122] use linked event details (#567)
chillfox Jul 17, 2025
14582dd
feat(zoom/rooms_api): refactor and add live_meeting calls
stakach Jul 24, 2025
4fe041c
feat(zoom): add UI interface layer
stakach Jul 28, 2025
dcc2192
feat(zoom): improved separation of concerns
stakach Jul 28, 2025
bd3732e
feat(zoom): document zoom room usage
stakach Jul 29, 2025
2a3d1e4
chore(zoom): rename audio_mute, mic_mute
stakach Jul 29, 2025
4b90a3a
fix(zoom): password required and removed deprecated keys
stakach Jul 29, 2025
dbcf530
fix(hid): improve domain selection
stakach Jul 29, 2025
677cfd7
fix(hid): domain selection
stakach Jul 29, 2025
e2e3fc9
fix(hid): content-type header on post
stakach Jul 29, 2025
87e8f33
feat(hid): invite api implemented
stakach Jul 30, 2025
6746d45
fix(hid): schema responses are in arrays
stakach Jul 30, 2025
863838b
fix(hid): end to end testing
stakach Jul 30, 2025
47e295c
feat(integriti_hid_virtual_pass): support multiple virtual cards
stakach Jul 30, 2025
bd78233
feat: add epiphan pearl driver (#564)
stakach Jul 30, 2025
e73455e
feat(biamp/tesira_ssh): add ssh protocol support for tesira
stakach Aug 1, 2025
51f0838
fix(biamp/tesira_ssh): remove telnet reference
stakach Aug 1, 2025
3011de3
fix(biamp/tesira_ssh): use unix newlines for SSH
stakach Aug 1, 2025
799bee8
fix(biamp/tesira_ssh): send a new line
stakach Aug 1, 2025
c475ee7
fix(biamp/tesira_ssh): send verbose after welcome message
stakach Aug 1, 2025
9065236
fix(biamp/tesira_ssh): ensure all requests are terminated correctly
stakach Aug 1, 2025
8acf3c8
fix(biamp/tesira_ssh): send commands using unix style
stakach Aug 1, 2025
faa3dc3
feat(place/desk/allocations): add driver
stakach Aug 4, 2025
8834aca
fix(place/desk/allocations): allocated_to can be nil
stakach Aug 4, 2025
c19b68f
fix(place/desk/allocations): building and level codes
stakach Aug 4, 2025
1b4bfc7
feat(zoom/rooms_api): add support for a separate sdk client id
stakach Aug 6, 2025
d4e71d3
fix(zoom/rooms_api): define instance variable type
stakach Aug 6, 2025
64abfe8
fix(zoom_meeting): extract pwd from URI encoded links
w-le Aug 6, 2025
7b315e7
fix(auto_release): [PPT-2001] default work preferences (#566)
chillfox Aug 7, 2025
7257b7b
Revert "fix(visitor_mailer): [PPT-2117|PPT-2122] use linked event det…
chillfox Aug 7, 2025
133679e
fix(zoom/zr-csapi): replace ai's driver with mine
w-le Aug 15, 2025
c3d07e0
fix(zoom/zr-csapi): fix response logic
w-le Aug 15, 2025
d77d345
fix(zoom/zr-csapi): fix response logic
w-le Aug 15, 2025
a740767
fix(zoom/zr-csapi): \r instead of \n
w-le Aug 15, 2025
250b675
feat(shure/intellimix): added new driver
w-le Aug 19, 2025
67c11bf
fix(shure/intellimix): default port
w-le Aug 19, 2025
18ad14e
feat(zoom/zr_csapi): Add Zoom Room CSAPI
naqvis Aug 20, 2025
b0d9639
feat(zoom/csapi): responses to execs
w-le Aug 21, 2025
c067efa
fix(shure/intellimix): Fix AI code
w-le Aug 21, 2025
3276f3a
chore(shure/intellimix): capitalization
w-le Aug 21, 2025
24b89e8
feat(shure/intellimix): add new driver (#576)
w-le Aug 21, 2025
8e53a19
fix(sony/cgi): Use Digest auth
w-le Aug 21, 2025
d0592e7
fix(sony/cgi): don't use HEAD request
w-le Aug 21, 2025
549712a
fix(sony/cgi): auth uri
w-le Aug 21, 2025
292e487
chore(sony/cgi): add auth debugging
w-le Aug 21, 2025
3a9002b
chore(sony/cgi): add auth debugging
w-le Aug 21, 2025
7f9d723
chore(sony/cgi): more auth debugging
w-le Aug 21, 2025
cc40385
fix(zoom/csapi): detection of bookings updated event
w-le Aug 22, 2025
612a5df
fix(zoom/csapi): typo in bookings updated event
w-le Aug 22, 2025
3bbf7e9
feat(sony/cgi): add powerable interface. fix tests
w-le Aug 22, 2025
2daa78c
chore(sony/cgi): polling interval is a setting
w-le Aug 22, 2025
ebe9c7b
fix(sony/cgi): polling interval is a setting
w-le Aug 22, 2025
4912d12
fix(sony/cgi): url parsing
w-le Aug 22, 2025
d874d12
fix(sony/cgi): add focus to presets
w-le Aug 22, 2025
5a9942a
fix(sony/cgi): try other Digest auth shard
w-le Aug 22, 2025
247756d
fix(sony/cgi): add focus to status vars
w-le Aug 22, 2025
745b453
fix(sony/cgi): recall home
w-le Aug 22, 2025
5bb3634
feat(sony/cgi): add digest auth
w-le Aug 22, 2025
a2b76cc
feat(sony/cgi): add reconnection interval as workaround for digest au…
w-le Aug 22, 2025
08e7eff
feat(sony/cgi): add reconnection interval as workaround for digest au…
w-le Aug 22, 2025
adf0029
fix(sony/cgi): fix digest auth
w-le Aug 22, 2025
41b83e6
Merge branch 'master' into sony/cgi
w-le Aug 22, 2025
317fb27
feat(shure/intellimix): implement muteable interface
w-le Aug 22, 2025
421b154
feat(shure/intellimix): implement muteable interface
w-le Aug 22, 2025
70ce59b
feat(sony/cgi): add autoframing
w-le Aug 25, 2025
d4ee660
feat(sony/cgi): add autoframing
w-le Aug 25, 2025
df6218b
fix(sony/cgi): autoframing
w-le Aug 25, 2025
f4f361e
fix(sony/cgi): autoframing
w-le Aug 25, 2025
4105e14
feat(solution2/parking): Added Solution2 PMS Driver (#574)
naqvis Aug 25, 2025
80ba2b9
fix(panasonic/nt_control): mute state may not be known
w-le Aug 25, 2025
fee3db6
feat(crestron/nvx_rx): support disabling specific outputs
w-le Aug 26, 2025
d5373b7
chore(crestron/nvx_rx): debug ws send
w-le Aug 26, 2025
fdc487f
feat(zoom/booking_converter): add booking_in_progress
w-le Aug 27, 2025
ce03b10
feat(zoom/csapi): add in_call state
w-le Aug 27, 2025
1e9c26c
fix(zoom/csapi): add in_call state
w-le Aug 27, 2025
ad869b0
fix(zoom/csapi): add in_call state
w-le Aug 27, 2025
130ce56
feat(panasonic/nt_control): optionally disable lamp hrs query
w-le Aug 27, 2025
61a7a54
fix(zoom/csapi): debug in_call state
w-le Aug 27, 2025
18cafa1
fix(zoom/csapi): call_state key name
w-le Aug 27, 2025
d7e3c1c
feat(epiphan/pearl): expose number of active recordings
w-le Aug 27, 2025
032a499
fix(panasonic/nt_control): optionally disable lamp hrs query
w-le Aug 28, 2025
08bee73
chore(panasonic/nt_control): debug query_lamp_hours setting
w-le Aug 28, 2025
4803a35
chore(panasonic/nt_control): default: don't query lamp hours, as it e…
w-le Aug 28, 2025
09ca66b
feat(gobroght/desks): [PPT-2198] Added group information (#581)
naqvis Aug 28, 2025
d99d4c3
feat(place/staff_api): add start/stop module func
w-le Sep 2, 2025
a4d392e
feat(zoom/csapi): add stop wireless shareing. Crestron/nvx: add input3/4
kvu-ucla Sep 3, 2025
d29de73
fix(place/staff): syntax
w-le Sep 4, 2025
cad7b66
feat(place/bookings): configurable poll delay after book_now. Expose …
w-le Sep 4, 2025
1bb29b8
feat(place/bookings): configurable poll delay after book_now. Expose …
w-le Sep 4, 2025
b213682
feat(place/staff-api): create_booking additional fields
stakach Sep 7, 2025
0a8d191
fix(bookings/grant_area_access): raising on invalid zone names
stakach Sep 7, 2025
6853c3d
feat(crestron/nvx_rx): output muting with AvioV2
w-le Sep 8, 2025
e9eb72a
chore(zoom/csapi): stub for sensor data
w-le Sep 8, 2025
87ad2ec
fix(crestron/nvx_rx): output muting with AvioV2
w-le Sep 8, 2025
f9308dc
feat(place/desk/allocations): syncing and updating allocations
stakach Sep 15, 2025
c81a3ca
fix(place/staff-api): apply insecure settings to place client
stakach Sep 15, 2025
9bc8ae8
fix(panasonic/camera): don't retry pan commands
stakach Sep 16, 2025
1655193
fix(sony/camera/cgi_protocol): keep processing queue after HTTP conne…
stakach Sep 16, 2025
2a24ef3
feat(arista/wifi): add webhook receiver with logging only
w-le Sep 17, 2025
0e7f8c4
fix(panasonic/projector): command queue pause on make break
stakach Sep 17, 2025
ec3b9fe
fix(crestron/occupancy_sensor): queue remains online after a network …
stakach Sep 17, 2025
e4ca341
feat(auto_release): add #explain_state (#583)
chillfox Sep 17, 2025
c03cb05
chore(sony/displays/bravia): add debug logging
stakach Sep 17, 2025
e84493f
chore(arista/wifi): work around issue with Bool settings
w-le Sep 18, 2025
6011dc3
fix(crestron/occupancy_sensor): improve debugging
stakach Sep 18, 2025
f166491
fix(crestron/occupancy_sensor): improve auth flow
stakach Sep 18, 2025
cbff1d3
fix(crestron/occupancy_sensor): add more debug information
stakach Sep 18, 2025
312ecc9
chore(crestron/occupancy_sensor): add ? to authenticated getter
stakach Sep 18, 2025
e1f5e08
chore(crestron/occupancy_sensor): add authentication debug info
stakach Sep 18, 2025
820d70a
feat(zoom/csapi): copy changes from client
w-le Sep 18, 2025
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"
48 changes: 48 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Build and Publish Drivers
on:
push:
branches: [master]

env:
CRYSTAL_VERSION: latest
PLACE_BUILD_TAG: nightly

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

# 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 }} \
--branch ${{ github.ref_name }}
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 }}
# CLOUD_BUILD_SERVER: CLOUD_BUILD_SERVICE_ROOT_ENDPOINT
# GIT_TOKEN: GIT_TOKEN_FOR_PRIVATE_REPO_IF_REQUIRED
PLACE_BUILD_TAG: ${{ env.PLACE_BUILD_TAG }}
BUILD_SERVICE_DISABLED: false
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@v4
- 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:
- latest
include:
- stable: false
crystal: nightly
steps:
- id: changes
uses: trilom/file-changes-action@v1.2.4
with:
output: ' '
- uses: actions/checkout@v4
- 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 }}
BUILD_SERVICE_DISABLED: true
CRYSTAL_VERSION: ${{ matrix.crystal }}
- name: Upload failure logs
if: ${{ failure() }}
uses: actions/upload-artifact@v4
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:
- latest
include:
- stable: false
crystal: nightly
steps:
- uses: actions/checkout@v4

- 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 }}
BUILD_SERVICE_DISABLED: false
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@v4
with:
name: logs-${{ matrix.crystal }}-${{ github.sha }}
path: .logs/*.log
24 changes: 24 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Deploy docs

on:
push:
branches: [ master ]

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: crystal-lang/install-crystal@v1
with:
crystal: latest
- name: "Install shards"
run: shards install --skip-postinstall --skip-executables
- name: "Generate docs"
run: crystal docs
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs
Loading