Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2412 commits
Select commit Hold shift + click to select a range
cbb7388
fix(inner_range/integriti_hid_virtual_pass): add spec
stakach Feb 10, 2025
da61624
feat(integriti_hid_virtual_pass): add account check
stakach Feb 10, 2025
8cbbc57
fix(integriti_hid_virtual_pass): login_name sometimes empty
stakach Feb 10, 2025
d70f5cb
fix(integriti_hid_virtual_pass): user presence check
stakach Feb 10, 2025
70ba430
chore(locker_booking_sync_spec): add additional tests
stakach Feb 10, 2025
bb7e5ea
feat(auto_release_locker): simplify deployment requirements
stakach Feb 10, 2025
4b84e30
feat(inner_range/integriti): add license custom field
stakach Feb 10, 2025
347bfd5
feat(inner_range/integriti): add card number exclusions
stakach Feb 11, 2025
94bb937
feat(staff_api): add auth_authority request
stakach Feb 11, 2025
0094c17
feat(place/attendee_scanner): reduce config required
stakach Feb 11, 2025
3e2f89d
chore(attendee_scanner): update description
stakach Feb 11, 2025
33c8e58
feat(room_at_capacity_mailer): [PPT-1721|PPT-1852] notify when people…
chillfox Feb 12, 2025
3846226
chore(shard.lock): bump dependencies
stakach Feb 13, 2025
7fa2a60
feat(integriti_user_sync): ensure number plate configured
stakach Feb 14, 2025
11ee7fd
feat(inner_range/integriti): add name filters to user query
stakach Feb 14, 2025
c8784bf
feat(integriti_user_sync): add car park access details
stakach Feb 14, 2025
16e5a00
feat(place/meet): function with disabled devices
stakach Feb 14, 2025
ceb7ada
feat(inner_range/integriti): add details to guest access response
stakach Feb 17, 2025
1b3bc3a
feat(integriti_visitor_access): initial commit
stakach Feb 17, 2025
a7ad840
chore: update harness message
stakach Feb 17, 2025
4f5124e
chore(shard.lock): bump deps
stakach Feb 17, 2025
dce6973
fix(integriti_visitor_access): split models into a separate file
stakach Feb 17, 2025
250a45e
fix(place/bookings): improve defaults
stakach Feb 18, 2025
4571ee0
fix(at_capacity_mailer): #check_capacity (#541)
chillfox Feb 18, 2025
fd11c14
feat(integriti_booking_check_in): add driver
stakach Feb 19, 2025
a9d4758
fix(inner_range/integriti): review filter values need to be integers
stakach Feb 19, 2025
aeef0ea
feat(security_booking_check_in): add driver
stakach Feb 20, 2025
324031a
fix(floorsense/locker_location_service): support staff can manage loc…
stakach Feb 26, 2025
04b7022
feat(bookings): expose next host email
stakach Feb 27, 2025
6ff2503
chore(inner_range/integriti): document event ids
stakach Feb 27, 2025
5c4038d
feat(gallagher/zone_schedule): grant hosts zone control
stakach Feb 27, 2025
2caccf4
feat(place/bookings): allow templated QR codes
stakach Feb 27, 2025
6b69c8a
fix(inner_range/integriti): guest may not enter a last name
stakach Feb 27, 2025
d1c8fb4
fix(place/bookings): use @calendar_id as it may differ from system.email
stakach Feb 28, 2025
32e985b
feat(cloud_xapi): PPT-1818 added webx cloud xapi driver (#542)
naqvis Feb 28, 2025
8e4cf17
feat(place/booking_notifier): pass booking instance
stakach Mar 3, 2025
2118e0b
feat(place/booking_approval_workflows): pass booking instance
stakach Mar 3, 2025
f6fe8ba
fix(place/booking_approver): take into account booking instance
stakach Mar 3, 2025
822d78f
fix(gallagher/zone_schedule): add cardholder id
stakach Mar 3, 2025
c5905ac
feat(gallagher/rest_api): return access zone details
stakach Mar 3, 2025
a9d5909
feat(gallagher/rest_api): add get_access_zone and door requests
stakach Mar 3, 2025
47e7858
fix(gallagher/zone_schedule): need to use access_groups not access_zones
stakach Mar 3, 2025
05496e4
feat(place/staff-api): add booking extension data update
stakach Mar 4, 2025
c0a8e28
feat(locker_booking_sync): use ext data instead of process_state
stakach Mar 4, 2025
8b0b5d1
feat(inner_range/integriti_user_sync): users can have multiple number…
stakach Mar 5, 2025
45160b2
fix(inner_range/integriti_user_sync): limit to a single number plate …
stakach Mar 5, 2025
1bea20d
feat(inner_range/integriti_user_sync): store last result of run
stakach Mar 5, 2025
652f087
fix(inner_range/integriti_user_sync): handle missing keys
stakach Mar 6, 2025
618b958
fix(inner_range/integriti_user_sync): registered licence plates shoul…
stakach Mar 6, 2025
d5eefe8
feat(floorsense/locker_location_service): add release all function
stakach Mar 6, 2025
fea02d8
feat(place/demo/lockers): add release_all_lockers function
stakach Mar 6, 2025
5135bc2
fix(place/booking_approver): approve recurring master
stakach Mar 6, 2025
157b44b
fix(locker_booking_sync): staff api user may not exist
stakach Mar 9, 2025
ed1cf8d
fix(floorsense/locker_location): fix active status flag
stakach Mar 10, 2025
29b6ae4
fix(place/booking_approver): only approve master bookings
stakach Mar 10, 2025
d4d2ab7
feat(bookings/grant_area_access): adds support for whitelisting secur…
stakach Mar 10, 2025
c4c898b
feat(cloud_xapi): PPT-1818 phase#2 added UI extension commands (#543)
naqvis Mar 10, 2025
367f999
feat(floorsense/desks_websocket): add desk_details function
stakach Mar 11, 2025
5be759a
feat(place/meet): expose channel details
stakach Mar 11, 2025
16901a6
chore(avedia_player/m93xx): strip out channel_details
stakach Mar 11, 2025
f08c8b6
feat(auto_release): [PPT-1905|PPT-1802] improve logging, notify after…
chillfox Mar 12, 2025
1e900c9
fix(room_at_capacity_mailer): [PPT-1902] json parse type error (#544)
chillfox Mar 13, 2025
a2361a6
refactor: [PPT-1818] added response body in raised exception
naqvis Mar 13, 2025
a945571
feat(meet): mute on shutdown
stakach Mar 13, 2025
dff9428
feat(comm_box/v3x_v4): add driver
stakach Mar 13, 2025
8aac830
refactor: [PPT-1818] added debug payload setting to toggline payload …
naqvis Mar 17, 2025
d169828
fix(cloud_xapi/models): Capitalize argument and value
naqvis Mar 17, 2025
ce92ee3
fix(cloud_xapi/models): Capitalize argument and value
naqvis Mar 17, 2025
ca964c4
feat: PPT-1818 added configuration get/set methods
naqvis Mar 17, 2025
3da0d01
fix(cloud_xapi): updated content-type for patch calls
naqvis Mar 17, 2025
f57cadc
fix(exterity/r93xx): login process
stakach Mar 18, 2025
e7ef778
fix(avedia_player/r93xx): add some additional debugging
stakach Mar 18, 2025
0cfedfc
fix(place/staff_api): resolve deprecation warning
stakach Mar 18, 2025
36b76c9
fix(crestron/occupancy_sensor): improve long polling
stakach Mar 19, 2025
3fecd4d
fix(crestron/occupancy_sensor): reduce memory usage
stakach Mar 19, 2025
db9eca2
chore: test new interface
stakach Mar 20, 2025
f4577e1
chore(crestron/occupancy_sensor): add memory profiling
stakach Mar 21, 2025
c2b0ba0
chore: update sensor interface
stakach Mar 21, 2025
50f2466
chore(crestron/occupancy_sensor): memory profiling
stakach Mar 21, 2025
a303971
fix(crestron/occupancy_sensor): prefer connection reuse
stakach Mar 21, 2025
09670d8
chore: bump dependencies with shared tls context
stakach Mar 24, 2025
95fbdc1
chore(place/staff_api): add memory tooling
stakach Mar 24, 2025
c9635aa
fix(place/staff_api): share a placeos client
stakach Mar 24, 2025
dee79c1
fix(place/staff_api): prevent race condition configuring placeos_client
stakach Mar 25, 2025
0ec1238
fix(place/staff_api): remove on_load callback
stakach Mar 25, 2025
37cd591
chore(place/staff_api): remove perf_tools
stakach Mar 25, 2025
7b781cf
feat(gallagher/zone_schedule): add feature to disable unlock
stakach Mar 26, 2025
0d54e46
feat(bookings/grant_area_access): optionally email any issues
stakach Mar 26, 2025
dcb3ea1
fix(bookings/grant_area_access): email formatting
stakach Mar 26, 2025
0ed91eb
chore(gallagher/zone_schedule): add more logging
stakach Mar 27, 2025
24cfe58
fix(gallagher/zone_schedule): key check algorithm
stakach Mar 27, 2025
42a4be7
chore(shard.lock): bump dependencies
stakach Mar 27, 2025
f857ee9
chore(shard.lock): bump dependencies
stakach Mar 28, 2025
9e0ce97
chore(demo/lockers): security level is support
stakach Mar 28, 2025
f7dae49
fix(shard.lock): driver dependency
stakach Mar 28, 2025
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
c712f04
feat(visitor_mailer): add asset name cache
chillfox Jul 30, 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