text:
Govee H6116 RGBIC Light Strip (Bluetooth Device)

 I am starting my Smart home project, but unfortunately I have 3 Govee RGBIC light strips H6116 build into my walls, currenty the product is not been supported in the plugin.

Please explain your feature request in a one or two sentences. I would like to atleast see my Govee H6116 RGBIC Light Strip (Bluetooth Device) in Homekit to switch on/off, integrate into automations / Szenes with colours

Is your feature request related to a problem? Please describe. Product H6116 currently not in "supported Devices" list

Any particular Govee devices that this relates to? H6116

Anything else?
Very much appriciated in advance!

Still getting the error Message posted above
this is my JSON  Config:
"lightDevices": [
    {
        "deviceId": "A8:F1:A4:C1:38:D5:23:02",
        "enableBT": true,
        "customAddress": "ihoment_H6116_2302",
        "adaptiveLightingShift": -1,
        "overrideLogging": "debug"

Hi @Piotronic
Please update to the beta version of the plugin, 4.29.1-beta.0, this device should then be added to homebridge.
In your config, the customAddress option for the light needs to look like a mac address ie in some form of a5:1c:38:ab:cd:a1

@bwp91
Hello, I updated to the Beta and found the correct bluetooth addresse and updated JSON:
        "deviceId": "A8:F1:A4:C1:38:D5:23:02",
        "enableBT": true,
        "customAddress": "a4:c1:38:d5:23:02",
        "adaptiveLightingShift": -1,
        "overrideLogging": "debug"

Switch apears in Homekit as "Off" wenn i try to switch on, I get "no response"

I am still having the issue. Its not possible to control H6116

Hi @Piotronic
Which platform are you running Homebridge on? Raspberry pi?

Yes, Raspberry Pi 4 Model B

Can you make sure all the pi software is up to date using sudo apt update then sudo apt full-upgrade?

Can you make sure all the pi software is up to date using sudo apt update then sudo apt full-upgrade?

Done, but still not working:
[16/04/2022, 21:15:03] [Govee] [H6116] could not be updated as BLE took too long at BluetoothLED.updateDevice (/usr/local/lib/node_modules/homebridge-govee/lib/connection/ble.js:171:15).
[16/04/2022, 21:15:03] [Govee] [H6116] could not be updated as BLE took too long at BluetoothLED.updateDevice (/usr/local/lib/node_modules/homebridge-govee/lib/connection/ble.js:171:15).
[16/04/2022, 21:15:06] [Govee] [noble] found device [a4:c1:38:d5:23:02] [ihoment_H6116_2302].
[16/04/2022, 21:15:06] [Govee] [noble] scanning stopped.
[16/04/2022, 21:15:06] [Govee] [H6116] has been reported [discoverable] via BLE.
[16/04/2022, 21:15:06] [Govee] [noble] Peripheral already connected at Peripheral.connect (/usr/local/lib/node_modules/homebridge-govee/node_modules/@abandonware/noble/lib/peripheral.js:47:26).
[16/04/2022, 21:15:06] [Govee] [H6116] has been reported [disconnected] via BLE.
noble: unknown peripheral a4c138d52302 disconnected!

Can you make sure all the pi software is up to date using sudo apt update then sudo apt full-upgrade?

Done, but still not working: [16/04/2022, 21:15:03] [Govee] [H6116] could not be updated as BLE took too long at BluetoothLED.updateDevice (/usr/local/lib/node_modules/homebridge-govee/lib/connection/ble.js:171:15). [16/04/2022, 21:15:03] [Govee] [H6116] could not be updated as BLE took too long at BluetoothLED.updateDevice (/usr/local/lib/node_modules/homebridge-govee/lib/connection/ble.js:171:15). [16/04/2022, 21:15:06] [Govee] [noble] found device [a4:c1:38:d5:23:02] [ihoment_H6116_2302]. [16/04/2022, 21:15:06] [Govee] [noble] scanning stopped. [16/04/2022, 21:15:06] [Govee] [H6116] has been reported [discoverable] via BLE. [16/04/2022, 21:15:06] [Govee] [noble] Peripheral already connected at Peripheral.connect (/usr/local/lib/node_modules/homebridge-govee/node_modules/@abandonware/noble/lib/peripheral.js:47:26). [16/04/2022, 21:15:06] [Govee] [H6116] has been reported [disconnected] via BLE. noble: unknown peripheral a4c138d52302 disconnected!

Yes i have the exact same problem. I have everything up to date too

Anyone having bluetooth issues can you try the newest beta 4.30.4-beta.2?

Many thanks for your effort, but unfortunately still not responding:
[24/04/2022, 16:57:43] [Govee] [noble] scanning started.
[24/04/2022, 16:57:43] [Govee] [noble] found device [a4:c1:38:d5:23:02] [ihoment_H6116_2302].
[24/04/2022, 16:57:43] [Govee] [noble] scanning stopped.
[24/04/2022, 16:57:43] [Govee] [H6116] has been reported [discoverable] via BLE.
[24/04/2022, 16:57:43] [Govee] [H6116] has been reported [connected] via BLE.
noble: unknown peripheral a4c138d52302 disconnected!
[24/04/2022, 16:57:43] [Govee] [H6116] has been reported [disconnected] via BLE.
[24/04/2022, 16:57:45] [Govee] [H6116] could not be updated as BLE took too long at BluetoothLED.updateDevice (/usr/local/lib/node_modules/homebridge-govee/lib/connection/ble.js:171:15).
[24/04/2022, 16:57:45] [Govee] [H6116] could not be updated as BLE took too long at BluetoothLED.updateDevice (/usr/local/lib/node_modules/homebridge-govee/lib/connection/ble.js:171:15).
[24/04/2022, 16:57:49] [Govee] [H6116] not sending AWS update as not available or enabled.
[24/04/2022, 16:57:49] [Govee] [noble] scanning started.
[24/04/2022, 16:57:49] [Govee] [noble] found device [d5:0c:92:4f:da:e4] [undefined].
[24/04/2022, 16:57:49] [Govee] [H6116] not sending AWS update as not available or enabled.
[24/04/2022, 16:57:54] [Govee] [noble] found device [a4:c1:38:d5:23:02] [ihoment_H6116_2302].
[24/04/2022, 16:57:54] [Govee] [noble] scanning stopped.
[24/04/2022, 16:57:54] [Govee] [H6116] has been reported [discoverable] via BLE.
[24/04/2022, 16:57:54] [Govee] [noble] scanning started.
[24/04/2022, 16:57:55] [Govee] [noble] found device [a4:c1:38:d5:23:02] [ihoment_H6116_2302].
[24/04/2022, 16:57:55] [Govee] [noble] scanning stopped.
[24/04/2022, 16:57:55] [Govee] [H6116] has been reported [discoverable] via BLE.
[24/04/2022, 16:57:56] [Govee] [H6116] could not be updated as BLE took too long at BluetoothLED.updateDevice (/usr/local/lib/node_modules/homebridge-govee/lib/connection/ble.js:171:15).

[10/05/2022, 22:27:03] [Govee] [H6116] not sending AWS update as not available or enabled.
[10/05/2022, 22:27:03] [Govee] [H6116] starting update with params [{"cmd":4,"data":255}].
[10/05/2022, 22:27:03] [Govee] [H6116] starting timer.
[10/05/2022, 22:27:03] [Govee] [H6116] starting scan.
[10/05/2022, 22:27:03] [Govee] [noble] scanning started.
[10/05/2022, 22:27:03] [Govee] [H6116] scanning started.
[10/05/2022, 22:27:03] [Govee] [H6116] starting loop.
[10/05/2022, 22:27:03] [Govee] [noble] found device [9c:8c:6e:4a:7b:a5] [undefined].
[10/05/2022, 22:27:03] [Govee] [H6116] not sending AWS update as not available or enabled.
[10/05/2022, 22:27:03] [Govee] [H6116] starting update with params [{"cmd":1,"data":1}].
[10/05/2022, 22:27:03] [Govee] [H6116] starting timer.
[10/05/2022, 22:27:03] [Govee] [H6116] starting scan.
[10/05/2022, 22:27:03] [Govee] [noble] scanning started.
[10/05/2022, 22:27:03] [Govee] [H6116] scanning started.
[10/05/2022, 22:27:03] [Govee] [H6116] starting loop.
[10/05/2022, 22:27:03] [Govee] [noble] found device [c7:31:30:30:6a:7f] [Govee_H6052_6A7F].
[10/05/2022, 22:27:03] [Govee] [noble] found device [7a:57:5e:43:04:b5] [undefined].
[10/05/2022, 22:27:03] [Govee] [noble] found device [d5:0c:92:4f:da:e4] [undefined].
[10/05/2022, 22:27:03] [Govee] [noble] found device [a4:c1:38:d5:23:02] [ihoment_H6116_2302].
[10/05/2022, 22:27:03] [Govee] [noble] scanning stopped.
[10/05/2022, 22:27:03] [Govee] [H6116] has been reported [discoverable] via BLE.
[10/05/2022, 22:27:03] [Govee] [H6116] attempting to connect.
noble: unknown peripheral a4c138d52302 connected!
[10/05/2022, 22:27:03] [Govee] [noble] scanning started.
[10/05/2022, 22:27:03] [Govee] [H6116] has been reported [connected] via BLE.
[10/05/2022, 22:27:03] [Govee] [H6116] finding device characteristics.
[10/05/2022, 22:27:03] [Govee] [H6116] has been reported [disconnected] via BLE [undefined].
noble: unknown peripheral a4c138d52302 disconnected!
[10/05/2022, 22:27:07] [Govee] [H6116] could not be updated as BLE took too long at BluetoothLED.updateDevice (/usr/local/lib/node_modules/homebridge-govee/lib/connection/ble.js:188:15).
[10/05/2022, 22:27:07] [Govee] [H6116] could not be updated as BLE took too long at BluetoothLED.updateDevice (/usr/local/lib/node_modules/homebridge-govee/lib/connection/ble.js:188:15).

v5.0.1

Can you make sure your raspberry pi software and firmware is up to date with
sudo apt update
from the homebridge terminal?

Hello, eveything was up 2 date

Can you update to and try 5.1.0-beta.1?

updated to 5.1.0-beta.1

Do you use any other plugins that use bluetooth?

homebridge-switchbot-bluetooth
and
homebridge-soundtouch-platform
I think these to use bluetooth and are working

I am seeing a similar issue.
Homebridge Log
[10/06/2022, 16:37:49] [Govee] [Glide Hexa] [AWS] connected event.
[10/06/2022, 16:37:49] [Govee] [Glide Hexa] skipping sync as device status not retrievable.
[10/06/2022, 16:37:50] [Govee] ✓ Setup complete. Join the plugin's Discord community! https://discord.gg/cMGhNtZ3tW
[10/06/2022, 16:37:58] [Govee] [Glide Hexa] has been reported [offline] via API, so update may or may not be successful.
[10/06/2022, 16:37:58] [Govee] [Glide Hexa] [AWS] sending update {"msg":{"cmd":"turn","cmdVersion":0,"data":{"val":1},"transaction":"v_1654904278964000","type":1}}.
[10/06/2022, 16:37:59] [Govee] [Glide Hexa] [AWS] message event [{"msg":{"cmd":"turn","cmdVersion":0,"data":{"val":1},"transaction":"v_1654904278964000","type":1}}].
[10/06/2022, 16:37:59] [Govee] [Glide Hexa] [AWS] receiving update [{"cmd":"turn","cmdVersion":0,"data":{"val":1},"transaction":"v_1654904278964000","type":1,"source":"AWS"}].
[10/06/2022, 16:37:59] [Govee] [Glide Hexa] current state [on].
[10/06/2022, 16:37:59] [Govee] [Glide Hexa] starting update with params [{"cmd":1,"data":1}].
[10/06/2022, 16:37:59] [Govee] [Glide Hexa] starting timer.
[10/06/2022, 16:37:59] [Govee] [Glide Hexa] starting scan.
[10/06/2022, 16:37:59] [Govee] [noble] scanning started.
[10/06/2022, 16:37:59] [Govee] [Glide Hexa] scanning started.
[10/06/2022, 16:37:59] [Govee] [Glide Hexa] starting loop.
[10/06/2022, 16:37:59] [Govee] [noble] found device [34:83:9e:f1:91:12] [undefined].
[10/06/2022, 16:37:59] [Govee] [noble] found device [f6:d4:56:0e:5a:3f] [undefined].
[10/06/2022, 16:37:59] [Govee] [noble] found device [e1:d1:75:d0:0b:90] [undefined].
[10/06/2022, 16:37:59] [Govee] [noble] found device [5b:24:d6:c1:d5:7c] [undefined].
[10/06/2022, 16:37:59] [Govee] [noble] found device [3d:33:63:d5:26:01] [undefined].
[10/06/2022, 16:37:59] [Govee] [noble] found device [c8:39:32:33:5f:67] [Govee_H6061_5F67].
[10/06/2022, 16:37:59] [Govee] [Glide Hexa] has been reported [discoverable] via BLE.
[10/06/2022, 16:37:59] [Govee] [Glide Hexa] attempting to connect.
[10/06/2022, 16:38:00] [Govee] [noble] scanning stopped.
[10/06/2022, 16:38:00] [Govee] [noble] scanning started.
[10/06/2022, 16:38:00] [Govee] [Glide Hexa] has been reported [connected] via BLE.
[10/06/2022, 16:38:00] [Govee] [Glide Hexa] finding device characteristics.
[10/06/2022, 16:38:03] [Govee] [Glide Hexa] could not find device [c8:39:32:33:5f:67].
[10/06/2022, 16:38:03] [Govee] [Glide Hexa] reverting to API as BLE took too long.
[10/06/2022, 16:38:03] [Govee] [Glide Hexa] [API] sending update {"name":"turn","value":"on"}.
[10/06/2022, 16:38:03] [Govee] [Glide Hexa] has been reported [disconnected] via BLE [undefined].
[10/06/2022, 16:38:03] [Govee] Skipping sync as client is busy sending updates.
[10/06/2022, 16:38:03] [Govee] [Glide Hexa] [AWS] message event [{"msg":{"transaction":"o_1654904283843","type":1,"cmd":"turn","data":{"val":1}}}].
[10/06/2022, 16:38:03] [Govee] [Glide Hexa] [AWS] receiving update [{"transaction":"o_1654904283843","type":1,"cmd":"turn","data":{"val":1},"source":"AWS"}].
[10/06/2022, 16:38:19] [Govee] [Glide Hexa] skipping sync as device status not retrievable.
[10/06/2022, 16:38:34] [Govee] [Glide Hexa] skipping sync as device status not retrievable.
[10/06/2022, 16:38:49] [Govee] [Glide Hexa] skipping sync as device status not retrievable.

My Config
{
  "name": "Govee",
  "username": "MY_USSERNAME",
  "password": "MY_PASSWORD",
  "apiKey": "MY_API_KEY",
  "debug": true,
  "disablePlugin": false,
  "refreshTime": 15,
  "controlInterval": 500,
  "lightDevices": [
      {
          "label": "Office Panels",
          "deviceId": "67:C8:C8:39:32:33:5F:67",
          "ignoreDevice": false,
          "disableAWS": false,
          "enableBT": true,
          "customAddress": "C8:39:32:33:5F:67",
          "brightnessStep": 10,
          "adaptiveLightingShift": 15,
          "overrideLogging": "default"
      }
  ],
  "platform": "Govee"
}

Hi @anxjo
If you can install the beta version of the plugin, this will use bluetooth to scan for your temperature sensors just like the homebridge-plugin-govee did. I am merging the functionality of that plugin into this one. So you will no longer need to have both.

Closing this as a bit overwhelmed with issues.
Please update to the beta version of the plugin, and if you are still having issues, do reopen this ticket!
Thanks and apologies if closing prematurely.


text:
could not find device

I get the following Error in the logfile:
[03/09/2022, 15:04:46] [Govee] [H61A2_A73E] could not find device [d4:ad:fc:48:a7:3e]
But the device is present:
[03/09/2022, 15:00:51] [Govee] [H61A2_A73E] current state [off].
[03/09/2022, 15:01:00] [Govee] [H61A2_A73E] current state [on].
[03/09/2022, 15:01:13] [Govee] [H61A2_A73E] current brightness [20%].
[03/09/2022, 15:02:25] [Govee] [H61A2_A73E] current brightness [50%].
[03/09/2022, 15:04:45] [Govee] [H61A2_A73E] current state [off].
[03/09/2022, 15:04:46] [Govee] [H61A2_A73E] starting update with params [{"cmd":1,"data":0}].
[03/09/2022, 15:04:46] [Govee] [H61A2_A73E] starting timer.
[03/09/2022, 15:04:46] [Govee] [H61A2_A73E] starting scan.
[03/09/2022, 15:04:46] [Govee] [H61A2_A73E] scanning started.
[03/09/2022, 15:04:46] [Govee] [H61A2_A73E] starting loop.
[03/09/2022, 15:04:46] [Govee] [H61A2_A73E] could not find device [d4:ad:fc:48:a7:3e].
[03/09/2022, 15:04:46] [Govee] [noble] found device [f0:b3:ec:7c:70:7b] [undefined].
[03/09/2022, 15:04:46] [Govee] [noble] found device [d4:ad:fc:48:a7:3e] [GBK_H61A2_A73E].
[03/09/2022, 15:04:46] [Govee] [H61A2_A73E] has been reported [discoverable] via BLE.
[03/09/2022, 15:04:46] [Govee] [H61A2_A73E] attempting to connect.
[03/09/2022, 15:04:47] [Govee] [H61A2_A73E] has been reported [connected] via BLE.
[03/09/2022, 15:04:47] [Govee] [H61A2_A73E] finding device characteristics.
[03/09/2022, 15:04:47] [Govee] [H61A2_A73E] has been reported [disconnected] via BLE [undefined].
I am using Homebridge and Homebridge UI-X
Homebridge 1.5.0
Raspberry Node.js Version v18.8.0
homebridge-govee v5.2.0
Govee Lightstrip

Closing this as a bit overwhelmed with issues.
Please update to the beta version of the plugin, and if you are still having issues, do reopen this ticket!
Thanks and apologies if closing prematurely.

source: gharchive/issue

license: MIT

license_type: permissive

license_source: github-api


text:
Govee Outdoor Plug Support

From Homebridge logs:
{"device":"ED:C2:D4:AD:FC:47:A4:AE","deviceName":"Outside Plug","model":"H5160","httpInfo":{"groupId":0,"device":"ED:C2:D4:AD:FC:47:A4:AE","sku":"H5160","spec":"0","versionHard":"1.02.00","versionSoft":"1.00.06","deviceName":"Outdoor Plug","deviceExt":{"deviceSettings":"{"wifiName":"XXXXXX","address":"D4:AD:FC:47:A4:AF","bleName":"ihoment_H5160_A4AF","topic":"GD/b847b0140c23c40f77f973cd5a2f151d","wifiMac":"D4:AD:FC:47:A4:AE","pactType":1,"pactCode":1,"wifiSoftVersion":"","wifiHardVersion":"","ic":0,"secretCode":"XXXXXXXXX=","boilWaterCompletedNotiOnOff":1,"subDevices":{"sub_0":{"name":"Plug 1"},"sub_1":{"name":"Plug 2"},"sub_2":{"name":"Plug 3"}},"sku":"H5160","device":"ED:C2:D4:AD:FC:47:A4:AE","deviceName":"Outdoor Plug","versionHard":"1.02.00","versionSoft":"1.00.06","playState":false}","lastDeviceData":"{"online":false}","extResources":"{"skuUrl":"","headOnImg":"","headOffImg":"","ext":"","ic":0}"},"pactType":1,"pactCode":1,"goodsType":90}}

Please explain your feature request in a one or two sentences.
Setup a new Govee plug and the logs from Homebridge said to submit a new issue.

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

Any particular Govee devices that this relates to?
https://www.amazon.com/Govee-Weatherproof-Countdown-Compatible-Assistant/dp/B09TZP2B2D/

Anything else?
Contact me if you need a ything else or someone to test.

Have a wonderful day!

Hi @LMarkham
Since this is brand new device type (with three outlets) please could we message on discord so I can get some extra information about how this device works?
https://discord.gg/cMGhNtZ3tW
thanks!


text:
HA-Bridge doesn't work with Razer Synapse 3 / Entertainment Group support

When trying to link HA-Bridge to Razer Synapse 3 it gives me the message that it needs updating.

I decided to dig into the Razer Synapse logs and I see the following:
2020-05-24 00:21:06.5305 ERROR 34 <no type>.lambda_method => PhilipsHueController.GetBridge => PhilipsHueDeviceDetection.GetBridge [msg] GetBridge: GetEntertainmentGroupList failed.
2020-05-24 00:21:08.3246 ERROR 34 <no type>.lambda_method => PhilipsHueController.PutPair => PhilipsHueDeviceDetection.GetBridge [msg] GetBridge: GetEntertainmentGroupList failed.
2020-05-24 00:21:08.3376 ERROR 34 PhilipsHueController.PutIsBridgeLightingEnabled => PhilipsHueManager.set_IsBridgeLightingEnabled => ChromaSDKWrapper.SetPhilipsHueState [msg] SetPhilipsHueState::Failed True
2020-05-24 00:21:08.3376 ERROR 34 <no type>.lambda_method => PhilipsHueController.GetBridge => PhilipsHueDeviceDetection.GetBridge [msg] GetBridge: GetEntertainmentGroupList failed.
2020-05-24 00:21:10.2655 ERROR 34 <no type>.lambda_method => PhilipsHueController.PutDiscover => PhilipsHueDeviceDetection.GetBridge [msg] GetBridge: GetEntertainmentGroupList failed.
2020-05-24 00:21:10.2745 ERROR 34 PhilipsHueController.PutIsBridgeLightingEnabled => PhilipsHueManager.set_IsBridgeLightingEnabled => ChromaSDKWrapper.SetPhilipsHueState [msg] SetPhilipsHueState::Failed True
2020-05-24 00:21:10.2745 ERROR 34 <no type>.lambda_method => PhilipsHueController.GetBridge => PhilipsHueDeviceDetection.GetBridge [msg] GetBridge: GetEntertainmentGroupList failed.
2020-05-24 00:29:20.3818 ERROR 56 <no type>.lambda_method => PhilipsHueController.PutDiscover => PhilipsHueDeviceDetection.GetBridge [msg] GetBridge: GetEntertainmentGroupList failed.
2020-05-24 00:29:20.3938 ERROR 56 PhilipsHueController.PutIsBridgeLightingEnabled => PhilipsHueManager.set_IsBridgeLightingEnabled => ChromaSDKWrapper.SetPhilipsHueState [msg] SetPhilipsHueState::Failed True
2020-05-24 00:29:20.3998 ERROR 56 <no type>.lambda_method => PhilipsHueController.GetBridge => PhilipsHueDeviceDetection.GetBridge [msg] GetBridge: GetEntertainmentGroupList failed.

I would try the new RC4 to see if that helps.

authors: bwssytems xBytez

repo: bwssytems/ha-bridge

license_source: bigquery


text:
Add donate button

Hi all together,
I'm using the ha bridge for some month now and I'm very happy that I found this nice piece of software. Due to the high interest of other people in ha bridge and the increased activity here, IMHO would be very nice to have a donate button in the webinterface, just to give something back for the good work.
Just my two cents ...

Updated at bwssystems.com

@bwssytems
Can you put an id="donate" in the donate form?  I want to put a link to it from my tutorials, so I can direct people straight to the donate button rather than having them scroll to find it.

Done.

Thanks @audiofreak9

@bwssytems NP!
BTW, "http://bwssystems.com#donate" or "http://bwssystems.com/#donate" both get changed to "http://bwssystems.com/#/donate" and fail to move down your page content to the donate id...bootstrap method?

@audiofreak9 Ok, issue with mapping in angular js, this should work "http://bwssystems.com/#/#donate"

Well that didn't work on the target server...angularJs is killing it

Well not http is used, just the link "bwssystems.com/#/#donate"

Ok, so that's not working either.  If I right click and "Open in a new tab" it works.  So I thought add target="_blank", but nope won't work either.   It seems like this is quite a widely discussed "bug" in angular on the web.  Talk about $anchorScroll, but that does not fix linking from my site to yours only internal hash linking. OR You need to

set the <base href> without the trailing slash, if set,
configure hashPrefix
It all seems not worth the effort for the outcome.


text:
Cannot run Harmony Hub activities or control devices

After getting my Harmony Hub and ha-bridge (v. 4.0.0) to work together I encountered a new problem: Activities and device operations are simply not working. Nothing is happening.
Steps to reproduce on my system:

From the Harmony Activities tab I clicked "Build Item" to turn on / off my TV activity.

The device that gets created has the following options:
Name: TV Target: Wohnzimmer (name of Harmony Hub) Device Type Activity Map Type: Harmony Activity Map ID: 5093105  On items: Harmony Activity; Target Item: {"name":"5093105","hub":"Wohnzimmer"} Off Items: Harmony Activity; Target Item: {"name":"-1","hub":"Wohnzimmer"}

From the Bridge Devices tab in ha-bridge I click "Test ON" or "Test OFF" but nothing happens.

The log shows the following error message:
01-23-2017 20:47:22.938	ERROR		spark.webserver.MatcherFilter
After setting log level to DEBUG
[...]
01-23-2017 20:49:10.465	DEBUG	get splat	spark.Request 01-23-2017 20:49:10.465	DEBUG	hue state change requested: test from 192.168.178.72 body: {"on":false}	com.bwssystems.HABridge.hue.HueMulator 01-23-2017 20:49:10.466	DEBUG	Decode Json for url items: [{"item":"{\"name\":\"-1\",\"hub\":\"Wohnzimmer\"}","type":"harmonyActivity"}]	com.bwssystems.HABridge.hue.HueMulator 01-23-2017 20:49:10.466	DEBUG	executing HUE api request to change harmonyActivity to Harmony: Fire TV	com.bwssystems.HABridge.plugins.harmony.HarmonyHome 01-23-2017 20:49:10.467	ERROR		spark.webserver.MatcherFilter 01-23-2017 20:49:11.869	DEBUG	isSSDPDiscovery Found message to be an M-SEARCH message.	com.bwssystems.HABridge.upnp.UpnpListener 01-23-2017 20:49:11.870	DEBUG	isSSDPDiscovery Got SSDP packet from 192.168.178.61:47287, body: M-SEARCH * HTTP/1.1  Host: 239.255.255.250:1900  Content-Length: 0  MAN: "ssdp:discover"  MX: 2  ST: urn:schemas-upnp-org:device:MediaServer:1 com.bwssystems.HABridge.upnp.UpnpListener 01-23-2017 20:49:13.003	DEBUG	httpMethod:get, uri: /system/logmsgs	spark.webserver.MatcherFilter 01-23-2017 20:49:13.004	DEBUG	get params	spark.Request 01-23-2017 20:49:13.004	DEBUG	get splat	spark.Request 01-23-2017 20:49:13.004	DEBUG	Get logmsgs.
The ha-bridge log file shows the following errors:
2017-01-23 20:50:55,047 [qtp360752523-14] ERROR spark.webserver.MatcherFilter - com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING         at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:220)         at com.google.gson.Gson.fromJson(Gson.java:879)         at com.google.gson.Gson.fromJson(Gson.java:944)         at com.google.gson.Gson.fromJson(Gson.java:917)         at com.bwssystems.HABridge.plugins.harmony.HarmonyHome.deviceHandler(HarmonyHome.java:138)         at com.bwssystems.HABridge.hue.HueMulator.changeState(HueMulator.java:793)         at com.bwssystems.HABridge.hue.HueMulator.lambda$21(HueMulator.java:261)         at spark.RouteImpl$1.handle(RouteImpl.java:58)         at spark.webserver.MatcherFilter.doFilter(MatcherFilter.java:162)         at spark.webserver.JettyHandler.doHandle(JettyHandler.java:61)         at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)         at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)         at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52)         at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)         at org.eclipse.jetty.server.Server.handle(Server.java:517)         at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:302)         at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)         at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:245)         at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)         at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)         at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)         at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)         at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)         at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)         at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING         at com.google.gson.internal.bind.JsonTreeReader.expect(JsonTreeReader.java:139)         at com.google.gson.internal.bind.JsonTreeReader.beginObject(JsonTreeReader.java:70)         at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:209)         ... 24 common frames omitted

Yep, just found this myself for Harmony items.

authors: DaRealDan bwssytems


text:
feat: implement barebones styleguidist

Types of Changes
What types of changes does your code introduce? Put an x in all the boxes that apply:

[ ] Bug fix (non-breaking change which fixes an issue, please reference the issue id)
[ ] New feature (non-breaking change which adds functionality, make sure to open an associated issue first)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] My change requires a change to the documentation
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[ ] All new and existing tests passed

Description
[Place a meaningful description here.]

:tada: This PR is included in version 2.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

source: gharchive/pull-request

repo: bylapidist/components


text:
ruby: manually manage packet_buffer lifetime

The trilogy client eagerly allocate a 32kiB buffer, and grows it as needed. It's never freed not shrunk until the connection is closed.
For basic usage it's not a big deal, but some applications may have dozens if not hundreds of connections that are mostly idle. A common case being multi-tenant applications with horizontal sharding. In such cases you only ever query one database but have open connections to many databases.
This situation might lead to a lot of memory retained by trilogy connections and never really released.
Ideally you'd want to use a buffer pool, but because we call rb_ext_ractor_safe(true), we'd need such pool to be ractor safe, which means either being synchronized or having one pool per ractor.
This commit simply malloc and free the buffer directly to prove the approach works, and a pool could be fitted on top.
Before:
>> t = Trilogy.new(database: "test")
>> ObjectSpace.memsize_of(t)
=> 66176
>> t.query("select '#{"a" * 10_000_000}' as a"); nil
>> ObjectSpace.memsize_of(t)
=> 16810624

After:
>> t = Trilogy.new(database: "test")
>> ObjectSpace.memsize_of(t)
=> 33408
>>  t.query("select '#{"a" * 10_000_000}' as a"); nil
>> ObjectSpace.memsize_of(t)
=> 33408

@tenderlove @jhawthorn @matthewd do you think it'd be worth implementing a buffer pool?
Also, annoyingly, each client is still 33kiB large because there's another fixed size 32kiB buffer for reading, it could probably receive a similar treatment.

Finalized as https://github.com/trilogy-libraries/trilogy/pull/214

repo: byroot/trilogy


text:
Update implementation and tests for the trap redesign

Hi, this updates the implementation and tests for the trap redesign (bytecodealliance/wasmtime#5149, https://github.com/bytecodealliance/wasmtime/pull/5215).
Fixes #173

The ExitCode property is moved from TrapException/TrapAccessor to WasmtimeException, as the WASI exit code now needs to be retrieved from an wasmtime_error_t*.
The Frames property is moved from TrapException to WasmtimeException, since both errors and traps can have traces now.
The functionality of passing the original .NET exception as InnerException (see #172) is moved from the TrapException to the WasmtimeException, since host-created traps (with wasmtime_trap_new()) are now returned as error (wasmtime_error_t*).
(While theoretically it could happen that the returned wasmtime_error_t* has actually another cause than the error returned at the host-to-wasm transition, I assume this won't be the case, similar as to a .NET exception that would just bubble up the stack once thrown.)

Currently, tests that are still failing are the following:

FuelConsumptionTests: Waiting for bytecodealliance/wasmtime#5230

It appears that OutOfFuel trap code is missing from the C API, which is why the fuel tests I think are crashing.

Fix upstream at https://github.com/bytecodealliance/wasmtime/pull/5230.

I added the OutOfFuel trap code and fixed the definition of wasmtime_trap_code (see https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-h84q-m8rr-3v9q) , so once bytecodealliance/wasmtime#5230 is merged, I think this should be complete :slightly_smiling_face:

Thanks! Now that it has merged, once the dev artifact is published with that commit, I'll restart CI for this PR and merge.

Sorry, I forgot to update the exception messages in the FuelConsumptionTests (checked with a locally built Wasmtime).

It looks like the CI is now failing for a legitimate reason in the examples, as we're currently expecting a TrapException and not WasmtimeException.  The former seems correct to me, though?

Sorry, I hadn't thought of checking the examples. Wasmtime now seems to return the not enough fuel remaining in store message as wasmtime_error_t* instead of wasm_trap_t*, so the example should probably be updated to catch a WasmtimeException, similar to the change in the FuelConsumptionTests:
https://github.com/bytecodealliance/wasmtime-dotnet/blob/b7dbedf0589908980d5bf3b2a68ac0e7a4468790/tests/FuelConsumptionTests.cs#L85-L89
(Note however, that the all fuel consumed by WebAssembly message is still returned as wasm_trap_t*, with the new OutOfFuel code.)
I can take a look at this tomorrow, unless you beat me to it :slightly_smiling_face:

I'll push up the fix.

Thanks again for fixing this!

authors: kpreisser peterhuene

repo: bytecodealliance/wasmtime-dotnet


text:
Adds packed floating point min max

Can you add (or port) CLIF run tests, please?

👍 Will do. I suppose we want keep the file names the same adding only the relevant tests, or do we want to take a different approach such as adding the entire file but somehow disabling tests that are not yet supported?

+1 Will do. I suppose we want keep the file names the same adding only the relevant tests, or do we want to take a different approach such as adding the entire file but somehow disabling tests that are not yet supported?

Whichever is the simplest; adding the whole file and commenting out tests we're not passing sounds fine to me.

From a quick look, lgtm, but I think that @abrown is the most appropriate reviewer here :-)

repo: bytecodealliance/wasmtime


text:
wit-component: clean up type exports.

This PR refactors encoding in wit-component to only export types from the
default interface and stop exporting types from instance types used in imports.
It also makes "type only" encodings more explicit with InterfaceEncoder that
will encode the types from a single interface only.

@alexcrichton I've changed this PR to continue to export types from wit-component, but it cleans things up a little bit so that we don't export types from the instance types used in imported interfaces.

repo: bytecodealliance/wit-bindgen


text:
flink版本有支持1.13吗

Is your feature request related to a problem? Please describe
A clear and concise description of what the problem is.
Example: 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.

当前只支持flink 1.11，roadmap中有支持多版本flink

多版本的支持是在flink基础api不变的情况下向下兼容的么，即bitsail一个版本能运行在flink 1.11-1.14多个版本上？

@sjq1992 计划是这样的，flink接口不兼容的情况加基于不同的版本编译

issue created #108

repo: bytedance/bitsail


text:
对哪些敏感信息识别

该工具能够对哪些敏感信息进行识别？

sdk 的 conf.yml里面 github.com/bytedance/godlp@v1.2.15/conf.yml

repo: bytedance/godlp


text:
feat: add new node method "IndexOrGetWithIdx"

ref #588

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

authors: Bisstocuz CLAassistant

repo: bytedance/sonic


text:
Feature/university class schedule

This change is

Review status: 0 of 25 files reviewed at latest revision, 19 unresolved discussions.

app/src/main/java/edu/byu/suite/features/classSchedule/controller/UniversityClassScheduleListActivity.java, line 16 at r2 (raw file):

 * Created by cwoodfie on 12/21/16.
 */

Comment this

app/src/main/java/edu/byu/suite/features/classSchedule/controller/ViewCourseDetailsActivity.java, line 42 at r2 (raw file):

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		course = getIntent().getParcelableExtra(ViewCoursesActivity.COURSE);

Why do you do these before calling super.onCreate? I thought you had to call the super first

app/src/main/java/edu/byu/suite/features/classSchedule/controller/ViewCourseDetailsActivity.java, line 59 at r2 (raw file):

	@Override
	protected ByuRecyclerAdapter<DefaultRow> getPopulatedAdapter(ClassScheduleResponseWrapper.RegOfferingsService.Response response) {
		CourseCatalogInformation courseInfo = response.getCourseCatalogInformation().get(0);

Comment here

app/src/main/java/edu/byu/suite/features/classSchedule/controller/ViewCoursesActivity.java, line 36 at r2 (raw file):

	protected ByuRecyclerAdapter<Course> getPopulatedAdapter(ClassScheduleResponseWrapper.RegOfferingsService.Response response) {
		return new DefaultRecyclerAdapter<>(response.getCourses(), R.layout.default_list_item_detail_below, (data, view, position) ->
				startActivity(new Intent(this, ViewCourseDetailsActivity.class).putExtras(getIntent()).putExtra(COURSE, data)));

What is putExtras doing?

app/src/main/java/edu/byu/suite/features/classSchedule/controller/ViewSectionDetailsActivity.java, line 33 at r2 (raw file):

		getSupportActionBar().setSubtitle(course.getCourseTitle());

		List<DefaultRow> rows = new ArrayList<>();

Comment here

app/src/main/java/edu/byu/suite/features/classSchedule/controller/ViewSectionDetailsActivity.java, line 64 at r2 (raw file):

	}

	private String fixCase(String string) {

Isn't there already something like this in StringUtils? Why don't you use that?

app/src/main/java/edu/byu/suite/features/classSchedule/controller/ViewSectionsActivity.java, line 53 at r2 (raw file):

			if (filter && section.getAvailableSeats() == 0) {
				iterator.remove();

Why aren't you using CollectionUtils.filter here?

app/src/main/java/edu/byu/suite/features/classSchedule/controller/ViewSectionsActivity.java, line 57 at r2 (raw file):

			}

			if (section.getSequence().equals("parent")) {

Comment

app/src/main/java/edu/byu/suite/features/classSchedule/model/ClassScheduleResponseWrapper.java, line 11 at r2 (raw file):

 */

public class ClassScheduleResponseWrapper {

Doesn't this already exist in support? Why did you make it again?

app/src/main/java/edu/byu/suite/features/classSchedule/model/CourseCatalogInformation.java, line 23 at r2 (raw file):

	private String titleCode;
	private List<String> headerList;
	private ArrayList<Section> courseSections;

Use List here

app/src/main/java/edu/byu/suite/features/classSchedule/model/Section.java, line 183 at r2 (raw file):

	@Override
	public CharSequence getDetailText() {

Could you simplify this?

app/src/main/java/edu/byu/suite/features/classSchedule/service/ClassScheduleClient.java, line 43 at r2 (raw file):

		@GET("v1/")
		@Headers("Accept:application/json")
		Call<ClassScheduleResponseWrapper> getAvailableYearTerms();

Doesn't this api exist in support as well?

app/src/main/java/edu/byu/suite/features/vending/controller/VendingMainActivity.java, line 23 at r2 (raw file):

	private DefaultRecyclerAdapter<DefaultRow> adapter = new DefaultRecyclerAdapter<>(Arrays.asList(

Awesome. You're doing good work. You deserve a raise.

app/src/main/res/layout/class_schedule_fragment_sections.xml, line 16 at r2 (raw file):

			android:layout_height="match_parent"
			android:padding="8dp"
			android:text="@string/no_sections_in_the_inn"

Rename this

app/src/main/res/layout/course_detail_list_item.xml, line 1 at r2 (raw file):

<?xml version="1.0" encoding="utf-8"?>

Why are you using this instead of default_list_item_detail_below?

app/src/main/res/layout/recycler_view_activity.xml, line 1 at r2 (raw file):

<?xml version="1.0" encoding="utf-8"?>

Cool, put this in all the other activities that just use a recycler view as well

app/src/main/res/values/strings.xml, line 243 at r2 (raw file):

	<string name="clocked_out">Clocked Out</string>
	<string name="clocked_in">Clocked In</string>
	<string name="no_sections_in_the_inn">No sections available.</string>

Rename this

support/src/main/java/edu/byu/support/adapter/DefaultRow.java, line 8 at r2 (raw file):

public class DefaultRow implements Defaultable {
	private String text;

Why'd you change this? Will this break anything else?

support/src/main/java/edu/byu/support/client/classRegistrationClient/ClassScheduleClient.java, line 5 at r2 (raw file):

import com.google.gson.FieldNamingPolicy;
import com.google.gson.GsonBuilder;

Put that newline back, I can't believe you keep doing stuff like this. One more slip up and you'll get fired.

Comments from Reviewable

Review status: 0 of 25 files reviewed at latest revision, 19 unresolved discussions.

app/src/main/java/edu/byu/suite/features/classSchedule/controller/UniversityClassScheduleListActivity.java, line 16 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Comment this

No thanks.

app/src/main/java/edu/byu/suite/features/classSchedule/controller/ViewCourseDetailsActivity.java, line 42 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Why do you do these before calling super.onCreate? I thought you had to call the super first

These are used in getCall, which is called by super.onCreate. I thought so as well but it works so yolo

app/src/main/java/edu/byu/suite/features/classSchedule/controller/ViewCourseDetailsActivity.java, line 59 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Comment here

Done.

app/src/main/java/edu/byu/suite/features/classSchedule/controller/ViewCoursesActivity.java, line 36 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
What is putExtras doing?

putExtras takes all the extras from another intent and puts them in this intent. I use it here (and in many intents in this feature) because the deeper activities use information from most of, if not all, the previous activities

app/src/main/java/edu/byu/suite/features/classSchedule/controller/ViewSectionDetailsActivity.java, line 33 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Comment here

Done.

app/src/main/java/edu/byu/suite/features/classSchedule/controller/ViewSectionDetailsActivity.java, line 64 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Isn't there already something like this in StringUtils? Why don't you use that?

Yes. I didn't use that because it wasn't null safe. I use this one to prepare parameters for addRowIfNotEmpty, so if I pass in a null, I want it to come out null too

app/src/main/java/edu/byu/suite/features/classSchedule/controller/ViewSectionsActivity.java, line 53 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Why aren't you using CollectionUtils.filter here?

I'm going to iterate through the list anyways, I figured there was no point in iterating twice

app/src/main/java/edu/byu/suite/features/classSchedule/controller/ViewSectionsActivity.java, line 57 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Comment

Done.

app/src/main/java/edu/byu/suite/features/classSchedule/model/ClassScheduleResponseWrapper.java, line 11 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Doesn't this already exist in support? Why did you make it again?

I made it again because I didn't want to have to worry about changing something and breaking something else. With the way I did it, University Class Schedule is completely decoupled from all other features. Therefore I can do whatever I want in the model classes and not worry about breaking something else, or about something else breaking me. For example, if two features want to use a model class as Defaultable, but they want to display different information, who gets to decide how to implement getText and getDetailText? I decided it would be best to simply avoid that.

app/src/main/java/edu/byu/suite/features/classSchedule/model/CourseCatalogInformation.java, line 23 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Use List here

These are passed through a parcel. If you want to pass a List through a parcel, you either have to write your own implementation, or use an ArrayList. I figured it would be easiest just to have gson serialize it to an ArrayList initially so that I could use it as such without having to worry about creating a copy or anything like that

app/src/main/java/edu/byu/suite/features/classSchedule/model/Section.java, line 183 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Could you simplify this?

Maybe. I didn't think about it too hard but this seemed like the best combination of simplicity and efficiency. If I just use the else clause, the dereferencing of children in the for loop throws a null pointer exception. We could just wrap the for loop in a null check but then we'd be needlessly instantiating a string builder. If you see things differently, I will change it.

app/src/main/java/edu/byu/suite/features/classSchedule/service/ClassScheduleClient.java, line 43 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Doesn't this api exist in support as well?

There is an api in support that has the first call. I don't use it for the same reason as given above for the model classes, but also because it has another endpoint that requires the user to be logged in, so the auth type is bearer token. In this I use the less restrictive auth type public bearer token. To me, this seemed to be the best way to do it.

app/src/main/java/edu/byu/suite/features/vending/controller/VendingMainActivity.java, line 23 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Awesome. You're doing good work. You deserve a raise.

Aww, thanks

app/src/main/res/layout/class_schedule_fragment_sections.xml, line 16 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Rename this

I named it in accordance with the spirit of the Christmas season and refuse to rename it.

app/src/main/res/layout/course_detail_list_item.xml, line 1 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Why are you using this instead of default_list_item_detail_below?

default_list_item_detail_below has maxLines="1" on the detailText. This doesn't. I need more than one line in the detail text sometimes. Such is life.

app/src/main/res/layout/recycler_view_activity.xml, line 1 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Cool, put this in all the other activities that just use a recycler view as well

Are you sure you want me to do this?

app/src/main/res/values/strings.xml, line 243 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Rename this

Again, I named this in accordance with the spirit of the Christmas season and I refuse to change the name.

support/src/main/java/edu/byu/support/adapter/DefaultRow.java, line 8 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Why'd you change this? Will this break anything else?

I changed it because it was less bothersome than changing the type in my code. It broke vending but I went and looked and it was bad code anyways so I fixed it and made it better. I don't think it will break anything in the future, and if it does, we should probably reconsider what we're even trying to do.

support/src/main/java/edu/byu/support/client/classRegistrationClient/ClassScheduleClient.java, line 5 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Put that newline back, I can't believe you keep doing stuff like this. One more slip up and you'll get fired.

Please don't fire me I promise I'll try to be more careful and change the settings in Android Studio so it doesn't do that anymore, I swear it wasn't me

Comments from Reviewable

Reviewed 1 of 26 files at r1, 9 of 84 files at r3.
Review status: 10 of 99 files reviewed at latest revision, 23 unresolved discussions.

app/src/main/AndroidManifest.xml, line 707 at r1 (raw file):

			<meta-data
				android:name="description"
				android:value="Browse course offerings." />

Put in the iOS description

app/src/main/AndroidManifest.xml, line 710 at r3 (raw file):

			<meta-data
				android:name="featureId"
				android:value="universityClassSchedule" />

I don't think this is the correct feature id... "courseCatalog" is what we have in iOS

app/src/main/java/edu/byu/suite/features/aedLocator/controller/AllAedsListFragment.java, line 43 at r3 (raw file):

		recyclerView.setAdapter(adapter);

		return recyclerView;

Why can you just return the recycler view here? Don't you need the full fragment's view?

app/src/main/java/edu/byu/suite/features/classSchedule/service/ClassScheduleClient.java, line 19 at r3 (raw file):

 */

public class ClassScheduleClient extends ByuClient {

I think we might already have a client for this in reusable clients... That will probably change a lot of your code...

Comments from Reviewable

Reviewed 7 of 26 files at r1, 70 of 84 files at r3.
Review status: 85 of 99 files reviewed at latest revision, 24 unresolved discussions.

app/src/main/res/drawable/icon_class_catalog.png, line 0 at r3 (raw file):
Can we name this icon_university_class_schedule

app/src/main/res/layout/class_schedule_fragment_sections.xml, line 16 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
I named it in accordance with the spirit of the Christmas season and refuse to rename it.

Rename this

app/src/main/res/layout/course_detail_list_item.xml, line 1 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
default_list_item_detail_below has maxLines="1" on the detailText. This doesn't. I need more than one line in the detail text sometimes. Such is life.

Double check that there isn't another version of default_list_item_detail_below. I think Hammad might have done this once...

app/src/main/res/values/strings.xml, line 243 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Again, I named this in accordance with the spirit of the Christmas season and I refuse to change the name.

Well Christmas will be over when you get back. :) You can rename it then

support/src/main/res/layout/activity_recycler_view.xml, line 1 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Are you sure you want me to do this?

Lol. Didn't you do it already?

Comments from Reviewable

Reviewed 6 of 26 files at r1, 3 of 5 files at r2, 5 of 84 files at r3.
Review status: all files reviewed at latest revision, 24 unresolved discussions.

app/src/main/java/edu/byu/suite/features/classSchedule/controller/ViewSectionsActivity.java, line 57 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Done.

I don't see any comment here... Did you forget a push?

app/src/main/java/edu/byu/suite/features/classSchedule/model/ClassScheduleResponseWrapper.java, line 11 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
I made it again because I didn't want to have to worry about changing something and breaking something else. With the way I did it, University Class Schedule is completely decoupled from all other features. Therefore I can do whatever I want in the model classes and not worry about breaking something else, or about something else breaking me. For example, if two features want to use a model class as Defaultable, but they want to display different information, who gets to decide how to implement getText and getDetailText? I decided it would be best to simply avoid that.

Does that issue exist? I definitely want these tightly coupled, because are the exact same objects from the same service. I understand the issue with the defaultable stuff, but we'll cross that bridge when we get there

app/src/main/java/edu/byu/suite/features/classSchedule/service/ClassScheduleClient.java, line 43 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
There is an api in support that has the first call. I don't use it for the same reason as given above for the model classes, but also because it has another endpoint that requires the user to be logged in, so the auth type is bearer token. In this I use the less restrictive auth type public bearer token. To me, this seemed to be the best way to do it.

Just augment the existing one. That's why we put it in support :)

Comments from Reviewable

Review status: all files reviewed at latest revision, 24 unresolved discussions.

app/src/main/AndroidManifest.xml, line 707 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Put in the iOS description

Done.

app/src/main/AndroidManifest.xml, line 710 at r3 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
I don't think this is the correct feature id... "courseCatalog" is what we have in iOS

Done.

app/src/main/java/edu/byu/suite/features/aedLocator/controller/AllAedsListFragment.java, line 43 at r3 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Why can you just return the recycler view here? Don't you need the full fragment's view?

The full fragment's view is the recycler view. I realized that there's no purpose in having a container (e.g., LinearLayout, RelativeLayout) if you're only going to have one thing inside of it. A recycler view is perfectly capable of composing a fragment's entire view

app/src/main/java/edu/byu/suite/features/classSchedule/controller/ViewSectionsActivity.java, line 57 at r2 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
I don't see any comment here... Did you forget a push?

no it's right there, on the line above

app/src/main/java/edu/byu/suite/features/classSchedule/model/ClassScheduleResponseWrapper.java, line 11 at r2 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Does that issue exist? I definitely want these tightly coupled, because are the exact same objects from the same service. I understand the issue with the defaultable stuff, but we'll cross that bridge when we get there

K i'll fix the model. We are at that bridge already but I figured out a way to cross it so no worries

app/src/main/java/edu/byu/suite/features/classSchedule/service/ClassScheduleClient.java, line 43 at r2 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Just augment the existing one. That's why we put it in support :)

If I just use the client in support then I'll have to change the auth type from BEARER_TOKEN_PUBLIC (in mine) to BEARER_TOKEN (in support), which would make the feature require login which is dumb. I could refactor the one in support and make it two clients if you really want me to use the one there. I think that might be a better idea anyways because the one client in support has endpoints from two different apis which doesn't really seem like a really cohesive thing anyways.

app/src/main/res/drawable/icon_class_catalog.png, line  at r3 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Can we name this icon_university_class_schedule

Done.

app/src/main/res/layout/class_schedule_fragment_sections.xml, line 16 at r2 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Rename this

No

app/src/main/res/values/strings.xml, line 243 at r2 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Well Christmas will be over when you get back. :) You can rename it then

Nope

support/src/main/res/layout/activity_recycler_view.xml, line 1 at r2 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Lol. Didn't you do it already?

Yeah I wrote this comment before I ran out of things to do and got desperate

Comments from Reviewable

Review status: 79 of 116 files reviewed at latest revision, 24 unresolved discussions.

support/src/main/java/edu/byu/support/client/courseCatalogClient/ClassScheduleClient.java, line 19 at r3 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
I think we might already have a client for this in reusable clients... That will probably change a lot of your code...

Done.

Comments from Reviewable

Review status: 79 of 119 files reviewed at latest revision, 15 unresolved discussions.

app/src/main/res/layout/course_detail_list_item.xml, line 1 at r2 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Double check that there isn't another version of default_list_item_detail_below. I think Hammad might have done this once...

I couldn't find one, but I moved mine to support so others can use it too

Comments from Reviewable

Reviewed 58 of 58 files at r4, 5 of 7 files at r5.
Review status: 117 of 119 files reviewed at latest revision, 10 unresolved discussions.

a discussion (no related file):
Move StudentScheduleClient into it's feature

app/src/main/AndroidManifest.xml, line 707 at r1 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Done.

Looks like iOS has a typo. Put "and" before "even".

app/src/main/java/edu/byu/suite/features/classSchedule/UniversityClassScheduleListActivity.java, line 16 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
No thanks.

The only comments I need have to do with the getPopulatedAdapter. Could you put a comment about what that's supposed to be doing?

app/src/main/java/edu/byu/suite/features/classSchedule/ViewCourseDetailsActivity.java, line 42 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
These are used in getCall, which is called by super.onCreate. I thought so as well but it works so yolo

Could you explain this one to me more?

app/src/main/java/edu/byu/suite/features/testingcenter/model/scores/Content.java, line 5 at r4 (raw file):

import java.util.List;

import edu.byu.support.client.courseCatalogClient.model.YearTerm;

Let's rename this to something more generic (since it's used for more than courseCatalog). Maybe RegistrationClient?

app/src/main/res/layout/class_schedule_fragment_sections.xml, line 16 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
No

Yes please

app/src/main/res/values/strings.xml, line 243 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
Nope

Yes please

support/src/main/java/edu/byu/support/client/courseCatalogClient/ClassScheduleClient.java, line 43 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
If I just use the client in support then I'll have to change the auth type from BEARER_TOKEN_PUBLIC (in mine) to BEARER_TOKEN (in support), which would make the feature require login which is dumb. I could refactor the one in support and make it two clients if you really want me to use the one there. I think that might be a better idea anyways because the one client in support has endpoints from two different apis which doesn't really seem like a really cohesive thing anyways.

Did you end up doing this?

Comments from Reviewable

Reviewed 3 of 58 files at r4, 2 of 7 files at r5.
Review status: all files reviewed at latest revision, 10 unresolved discussions.

Comments from Reviewable

Review status: all files reviewed at latest revision, 10 unresolved discussions.

a discussion (no related file):
Previously, romrell4 (Eric Romrell) wrote…
Move StudentScheduleClient into it's feature

We decided not to do that

app/src/main/AndroidManifest.xml, line 707 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Looks like iOS has a typo. Put "and" before "even".

Done.

app/src/main/java/edu/byu/suite/features/classSchedule/UniversityClassScheduleListActivity.java, line 16 at r2 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
The only comments I need have to do with the getPopulatedAdapter. Could you put a comment about what that's supposed to be doing?

Done.

app/src/main/java/edu/byu/suite/features/classSchedule/ViewCourseDetailsActivity.java, line 42 at r2 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Could you explain this one to me more?

yeah

app/src/main/java/edu/byu/suite/features/testingcenter/model/scores/Content.java, line 5 at r4 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Let's rename this to something more generic (since it's used for more than courseCatalog). Maybe RegistrationClient?

Done.

app/src/main/res/layout/class_schedule_fragment_sections.xml, line 16 at r2 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Yes please

No please

app/src/main/res/values/strings.xml, line 243 at r2 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Yes please

Eric come on where's your Christmas spirit

support/src/main/java/edu/byu/support/client/courseCatalogClient/ClassScheduleClient.java, line 43 at r2 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Did you end up doing this?

Yeah I refactored everything

Comments from Reviewable

Review status: 86 of 119 files reviewed at latest revision, 10 unresolved discussions.

app/src/main/java/edu/byu/suite/features/classSchedule/UniversityClassScheduleListActivity.java, line 41 at r5 (raw file):

	protected abstract ByuRecyclerAdapter<DataType> getPopulatedAdapter(ClassScheduleResponseWrapper.RegOfferingsService.Response response);

	protected abstract Call<ClassScheduleResponseWrapper> getCall();

comment here as well

Comments from Reviewable

Reviewed 1 of 90 files at r3, 20 of 70 files at r4, 45 of 45 files at r6.
Review status: all files reviewed at latest revision, 4 unresolved discussions.

app/src/main/java/edu/byu/suite/features/classSchedule/ViewCourseDetailsActivity.java, line 42 at r2 (raw file):
Previously, coreywoodfield (Corey Woodfield) wrote…
yeah

Comment here

Comments from Reviewable

Review status: all files reviewed at latest revision, 5 unresolved discussions.

a discussion (no related file):
Remove "View" from activity names (and layouts if necessary)

Comments from Reviewable

Review status: 108 of 119 files reviewed at latest revision, 5 unresolved discussions.

a discussion (no related file):
Previously, romrell4 (Eric Romrell) wrote…
Remove "View" from activity names (and layouts if necessary)

Done.

app/src/main/java/edu/byu/suite/features/classSchedule/UniversityClassScheduleListActivity.java, line 41 at r5 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
comment here as well

Done.

app/src/main/java/edu/byu/suite/features/classSchedule/ViewCourseDetailsActivity.java, line 42 at r2 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Comment here

Done.

Comments from Reviewable

Reviewed 10 of 75 files at r4, 2 of 50 files at r6, 16 of 16 files at r7, 1 of 1 files at r8.
Review status: all files reviewed at latest revision, 2 unresolved discussions.

Comments from Reviewable

Reviewed 2 of 75 files at r4, 1 of 50 files at r6, 1 of 16 files at r7, 2 of 2 files at r9.
Review status: all files reviewed at latest revision, 2 unresolved discussions.

Comments from Reviewable

Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


text:
hotfix/favorites -> dev

This change is

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


text:
dev -> master

This change is

Reviewed 2 of 2 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Reviewed 3 of 3 files at r2.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Reviewed 1 of 1 files at r3.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

repo: byu-oit/ios-byuSuite


text:
Namespace Manager Bug

Unable to generate a TMR netlist
ValueError: Applying name would result in a naming conflict
namespace_manager -> init.py
Line 107  -  if parent and parent in self.namespaces:
possible fix  - if parent and element in self.namespaces:

This issue is actually in spydrnet not tmr

repo: byuccl/spydrnet-tmr


text:
Solution: Timezone as string not working in config

I took a shot at issue #108 . I came a solution that so far has been working for me, but this might need more testing.
I also adapted the tests accordingly.
In case you have comments or suggestions on how to solve this in a better way, I'm open on improving the PR.

Coverage remained the same at 100.0% when pulling 41c9a6fa308b0ca7b6b2a3639394fd6aaaf33963 on xrx:timezones into 03aaa03d3f4ae0032f00d04bf621dcf8228f9301 on c-rack:master.

Coverage remained the same at 100.0% when pulling 41c9a6fa308b0ca7b6b2a3639394fd6aaaf33963 on xrx:timezones into 03aaa03d3f4ae0032f00d04bf621dcf8228f9301 on c-rack:master.

Coverage remained the same at 100.0% when pulling 41c9a6fa308b0ca7b6b2a3639394fd6aaaf33963 on xrx:timezones into 03aaa03d3f4ae0032f00d04bf621dcf8228f9301 on c-rack:master.

Coverage remained the same at 100.0% when pulling 41c9a6fa308b0ca7b6b2a3639394fd6aaaf33963 on xrx:timezones into 03aaa03d3f4ae0032f00d04bf621dcf8228f9301 on c-rack:master.

Thanks a lot! 👍

authors: c-rack coveralls xrx

repo: c-rack/quantum-elixir


text:
Fix encoding issue reported in #58

Removed the manual setting of requests.encoding and have load_text read from cache every time. Now it it able to load text of encoding other than utf-8.
Test case in issue #58:
Running in shell

python -m gutenberg.acquire.text 2000 2000.txt

Before this patch:

......
Yo, Juan Gallo de Andrada, escribano de C�mara del Rey nuestro se�or, de
los que residen en su Consejo, certifico y doy fe que, habiendo visto por
los se�ores d�l un libro intitulado El ingenioso hidalgo de la Mancha,
compuesto por Miguel de Cervantes Saavedra, tasaron cada pliego del dicho
libro a tres maraved�s y medio; el cual tiene ochenta y tres pliegos, que
al dicho precio monta el dicho libro docientos y noventa maraved�s y medio,
en que se ha de vender en papel; y dieron licencia para que a este precio
se pueda vender, y mandaron que esta tasa se ponga al principio del dicho
libro, y no se pueda vender sin ella. Y, para que dello conste, di la
presente en Valladolid, a veinte d�as del mes de deciembre de mil y
seiscientos y cuatro a�os.
......

Now:

......
Yo, Juan Gallo de Andrada, escribano de Cámara del Rey nuestro señor, de
los que residen en su Consejo, certifico y doy fe que, habiendo visto por
los señores dél un libro intitulado El ingenioso hidalgo de la Mancha,
compuesto por Miguel de Cervantes Saavedra, tasaron cada pliego del dicho
libro a tres maravedís y medio; el cual tiene ochenta y tres pliegos, que
al dicho precio monta el dicho libro docientos y noventa maravedís y medio,
en que se ha de vender en papel; y dieron licencia para que a este precio
se pueda vender, y mandaron que esta tasa se ponga al principio del dicho
libro, y no se pueda vender sin ella. Y, para que dello conste, di la
presente en Valladolid, a veinte días del mes de deciembre de mil y
seiscientos y cuatro años.
......

Thanks for the PR. To make sure that this stays fixed: could you please add a test for the issue reported in #58 that fails before this PR and passes afterwards?

Coverage decreased (-0.01%) to 93.953% when pulling 35c5f4869d49bec4ee28c5a50622f150409ad294 on lifuhuang:master into 0daa6da160c1044ee38a24073e9a56cf695a1615 on c-w:master.

Thank you for suggestion. I have added the test case reported in issue.

Coverage decreased (-0.01%) to 93.953% when pulling 77ad41af2410b8ddde8d0e852604b1d33ca925fc on lifuhuang:master into 0daa6da160c1044ee38a24073e9a56cf695a1615 on c-w:master.

Looks good to me. @sethwoodworth @MasterOdin: are you happy to merge this?

Coverage decreased (-0.01%) to 93.953% when pulling 0c507c29d1ac4e8d683a7695b61b48f75860d56e on lifuhuang:master into 0daa6da160c1044ee38a24073e9a56cf695a1615 on c-w:master.

I'm good with it

authors: MasterOdin c-w coveralls lifuhuang

repo: c-w/Gutenberg


text:
🛑 www.hollen.sk is down

In cdba44b, www.hollen.sk (http://www.hollen.sk/sk/Home.html) was down:

HTTP code: 403
Response time: 305 ms

Resolved: www.hollen.sk is back up in 1f7f715.


text:
🛑 www.lamac.sk is down

In a2802ae, www.lamac.sk (https://www.lamac.sk) was down:

HTTP code: 503
Response time: 864 ms

Resolved: www.lamac.sk is back up in 3ded4f8 after 6 minutes.


text:
How to parse a java file?

For example,I want to parse a java file.
src="source/test.java"
But when I use tree = javalang.parse.parse(src) it failed.
I am totally new at this area.Would you mind helping me?Thank you

I meet the same problem. Did you find the solution?

f = open( filename , "rb")
source = f.read()
f.close()
tree = javalang.parse.parse(source)
It's my solution.

1
I can't get ast from java path like above
but my friend did

Hi buddy this won't work . as the parse method expects java code not the location of java code . so you should read this using
data = open("./source/test.java").read()
tree = javalang.parse.parse(data)

authors: Ddd1101 DennisShaw mvkarthikeyan

license: mit


text:
filter-functionality added

Description
Implemented filtering functionality on the tutorial homepage to allow users to filter tutorials by date created, title, owner or keyword. This resolves the issue where users were unable to efficiently navigate and find specific tutorials in the presence of a large number of entries.
Related Issue
Resolves issue #18
Motivation and Context
With the introduction of filtering, users can now easily locate relevant tutorials based on specific criteria, improving usability and accessibility.
Screenshots or GIF (In case of UI changes):
https://github.com/c2siorg/Codelabz/assets/90304648/a9efeed6-b66d-46d3-ab0d-460b93593972
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

@shivareddy6 @Maahi10001  @ABHISHEK-PANDEY2 could you please review the PR


text:
Building with rollup

In this PR the following changes were made:

Updates dependencies (mostly grunt and its tasks + phantom-prebuilt)
Rearranges the structure of /src folder to reflect the module structure (Chart, Axis, ChartInternal)

No file should contain both Chart.prototype and ChartInternal.prototype declarations. In that case, said file was split in two.
src/core.js was removed. Different parts of its code went to src/chart/index.js, src/axis/index.js, src/chartinternal/index.js, src/chart/head.js and src/chart/tail.js

Modifies the grunt concat:dist task structure to reflect said rearrangement
Three additional concat tasks were added to generate es6_module/axis.js, es6_module/chart.js and es6_module/chartinternal.js
Adds as grunt-rollup task and its entry point es6_modules/rollup.entry.js.
Running grunt build_rollup will recreate each module in es6_modules and use rollup to create c3.es6.js file in the root folder.

After running grunt build (with the new src structure), running npm test yielt the same 5 failures that are already happening. in dev :+1:
After running grunt build_rollup, and modifying karma.conf.js to load c3.es6.js instead of c3.js, the result is the same. :tada:  (still short of 5 tests)

Ref: #1648

This is some terrific work; will try to get around to reviewing it sometime this week! :+1:

@amenadiel Apologies for the lack of progress on reviewing this PR thus far; it's a big one and I think it does quite a lot well. Am questioning whether chartInternal.js should be split up a bit, but I ultimately like the approach you've taken.
Even if this isn't merged immediately, I think that I might take it and use it as the basis for v1.0.0, which I and a few others are starting to begin considering. Hang tight!

I've rebased against master and pushed to v1-dev. I'm going to do a thorough code clean-up and work off that branch for experimentation purposes for the next bit.

Closing in favor of #2037. Thanks for the constribution anyway.

authors: aendrew amenadiel kt3k


text:
switch mail to Flask-Mail

This PR switches to Flask-Mail and closes #7

I've tested this today with the production account on dergeraet.c3w.at


text:
Command line interface

Is your feature request related to a problem? Please describe.
When using the library in a prototyping phase you're required to write some basic script that will take the input file, parse it then print some information such as in the examples.
Describe the solution you'd like
A command line interface would allow new users to test out some of the functionality without writing any extra scripts, validate their LDFs and such. Also in some cases you may want to interface the parser with other tools or programming languages and one of the ways to do that is by piping stdout to stdin.
Initial list of features

Print out LDF Information (Version, Node count, etc.)
Print extended Node, Signal, Frame information, preferably accessible like signal tables, frame layout
Frame and Signal encoding/decoding
Export LDF to JSON

In the future

Visualization of frames, schedule tables
Machine interface with structured output
Queries such as finding nodes, etc.

The initial list of features is done except for frame and signal encoding. The output of the commands is concise and doesn't really go beyond the scope of the command, for example info with details enabled will include a list of signal widths and names, for more details you have to use the subcommand for the specific signal or frame.
The output is structured well enough for bash script usage, if more info is needed then there's the export command and the JSON can be parsed.
As far as extra features go I think for machine interface the complete JSON output is more than enough. Once the schedule table parsing is done then may worth a revisit for some visualization.
Closing this for now. For more requests please open a new issue and reference this one.


text:
Minimal consensus and descriptors for arti

The full consensus and descriptors are big. We want to create a custom smaller set that is stable enough so that frequent updates are not necessary. This involves the following steps:

[ ] Script to create smaller version of consensus + descriptors (says top 256 stable nodes; pick nodes with Stable flags set, pick higher-bandwidth nodes)
[ ] Side-load these files into Arti (e.g., from file or in-memory String)

I think Tor can already query for a batch of microdescriptors; so probably want to reuse that format. Alternatively, we can modify Arti to download these via URL that we pass as config if that is easier to do.
Ideally, this would be an extension on top of arti so that we don't have to fork arti proper, but that might not be possible at the moment.

@laurent-girod is this done?

Yes, this is done via the script gen_fresh_dirinfo-py.

authors: laurent-girod wouterl


text:
Solid Server icon broken

Summary:
Connery's solid server app has a broken icon on production.
Checklist

[x] I am running the latest version
[x] I checked the documentation and found no answer
[x] I checked to make sure that this issue has not already been filed
[x] I'm reporting the issue to the correct repository (for multi-repository projects)
[x] I have provided sufficient information for the team

Oops, sorry, not sure how it became public, switched back to private.   Though brings up an interesting point that maybe we will eventually want a minimum set of required fields before they can be published publicly.

Oops, sorry, not sure how it became public, switched back to private.   Though brings up an interesting point that maybe we will eventually want a minimum set of required fields before they can be published publicly.

authors: conneryn robblovell


text:
Add an API to the installer that allows 3rd party plugins to install dependencies.

As being discussed here: https://groups.google.com/forum/#!topic/cloud9-sdk/OCfTbrqE2ek
Goals

Install dependencies for third party plugins
Take different operating systems into account.
Minimize the need to rely on shell scripting (to prevent fragmentation across OSes)
Display progress in a terminal like log view
Allow toggling between verbose and not so verbose
Detect compatibility mismatches with software already installed.

Common Tasks:

Displaying of installation messages (including simple form controls like checkboxes)
Present an overview of what will be installed and allow the user to deselect some optional packages
Install native packages (yum, rpm, apt-get, brew, etc)
Install runtime modules (npm, gem, etc)
Allow the executing of shell scripts via hooks (pre-install, install, post-install ...)
Requirement checks (e.g. "does not run on windows")

Assumptions

Users have sudo rights on their box

Future:

Customize Wizard steps (including custom pages with form controls)

API Proposal
I'll make this proposal using a set of code example.
The installation wizard will have 3 Pages:

Introduction text
Overview of what will be installed
Installation screen with output log

var installer = imports.installer;

// The callback is only called if the dependencies for that version are not installed yet
installer.create("my-plugin", "1.0.0", function(session){
    session.introduction = require("text!./intro.html");
    session.preInstallScript = require("text!./pre-install.sh");
    session.postInstallScript = require("text!./post-install.sh");
    // session.architectures = ["x64", "x86"];

    // Downloads and unpacks a tar.gz into a directory
    session.install({
        "tar.gz": [
            {
                "url": "http://nodejs.org/dist/$NODE_VERSION/node-v0.10.28-$OS-$ARG.tar.gz",
                "target": "~/.c9/node"
            }, {
                "url": "https://raw.githubusercontent.com/c9/install/master/packages/extend/c9-vfs-extend.tar.gz",
                "target": "~/.c9/c9-vfs-extend"
            }
        ]
    });

    // Will try to install tmux via apt-get, yum, etc (OR) and fall backs
    // on failure to a custom install script
    session.install({
        "name": "tmux",
        "description": "Tmux - the terminal multiplexer"
    }, {
        "apt-get": ["tmux"],
        "yum": ["tmux"],
        "custom": require("text!./compile-tmux.sh")
    });

    // Installation tasks are stacked (AND) by using an array as the 2nd
    // argument to install()
    session.install({
        "name": "collab-deps",
        "description": "Dependencies for the collaboration features of Cloud9",
        "cwd": "~/.c9"
    }, [
        {
            "npm": ["sqlite3@2.1.18", "sequelize@2.0.0-beta.0"]
        },
        {
            "tar.gz": [
                {
                    "url": "https://raw.githubusercontent.com/c9/install/master/packages/sqlite3/linux/sqlite3.tar.gz",
                    "target": "~/.c9/lib/sqlite3"
                }
            ]
        },
        {
            "symlink": [
                {
                    "source": "~/.c9/lib/sqlite3/sqlite3",
                    "target": "~/.c9/bin/sqlite3"
                }
            ]
        }
    ]);

    // By specifying optional:true the user can disable the installation of this package
    session.install({
        "name": "Nak",
        "description": "Fast file searches for Cloud9",
        "cwd": "~/.c9",
        "optional": true
    }, {
        "npm": ["https://github.com/c9/nak/tarball/c9"]
    });

    // "Requires" will check any required versions. There's also
    // "version-greater", "version-lesser", which can be combined
    // The 3rd argument of install() is an optional function that validates
    // the installation of the package.
    session.install({
        "name": "Pty.js",
        "description": "Pseudo Terminal support. Needed by the Cloud9 Terminal",
        "cwd": "~/.c9",
        "requires": [
            {
                "command": "python --version 2>&1",
                "version-equal": "2.7",
                "message:": "Python version 2.7 is required to install pty.js."
            }
        ]
    }, {
        "npm": ["node-gyp", "pty.js@0.2.3"]
    }, function(done){
        session.run(
            '"~/.c9/node/bin/node" -e "console.log(require(\'pty.js\'))"',
            function(err, stdout, stderr){
                var err;
                if (!stdout || stdout.indexOf("createTerminal") == -1)
                    err = new Error("Unknown exception installing pty.js: " + stdout);
                done(err);
            });
    });

    // Show the installation screen
    session.start();
});

// Support for package managers are pluggable
installer.addPackageManager("apt-get", plugin);
installer.addPackageManager("npm", plugin);

Suggestions via the mailinglist:

How do you feel about replacing "apt-get" and "yum" with e.g. "ubuntu" and "fedora"?
Distributions sharing a common package format might not follow the same naming conventions, or have outdated repositories (e.g. ubuntu llvm-3.5, debian llvm-3.4).
To omit having to create a package manager every time, you could add
installer.addPackageManagerAlias("ubuntu", "debian");

or something similar. If the current distribution does not have a specific dependency line, but an alias has, that one could be evaluated instead.

Updated API:
var installer = imports.installer;

// The callback is only called if the dependencies for that version are not installed yet
installer.create("my-plugin", "1.0.0", function(session){
    session.introduction = require("text!./intro.html");
    session.preInstallScript = require("text!./pre-install.sh");
    session.postInstallScript = require("text!./post-install.sh");
    // session.architectures = ["x64", "x86"];

    // Downloads and unpacks a tar.gz into a directory
    session.install({
        "tar.gz": [
            {
                "url": "http://nodejs.org/dist/$NODE_VERSION/node-v0.10.28-$OS-$ARG.tar.gz",
                "target": "~/.c9/node"
            }, {
                "url": "https://raw.githubusercontent.com/c9/install/master/packages/extend/c9-vfs-extend.tar.gz",
                "target": "~/.c9/c9-vfs-extend"
            }
        ]
    });

    // Will try to install tmux via apt-get, yum, etc (OR) and fall backs
    // on failure to a custom install script
    session.install({
        "name": "tmux",
        "description": "Tmux - the terminal multiplexer"
    }, {
        "ubuntu": ["tmux"],
        "centos": ["tmux"],
        "custom": require("text!./compile-tmux.sh")
    });

    // Installation tasks are stacked (AND) by using an array as the 2nd
    // argument to install()
    session.install({
        "name": "collab-deps",
        "description": "Dependencies for the collaboration features of Cloud9",
        "cwd": "~/.c9"
    }, [
        {
            "npm": ["sqlite3@2.1.18", "sequelize@2.0.0-beta.0"]
        },
        {
            "tar.gz": [
                {
                    "url": "https://raw.githubusercontent.com/c9/install/master/packages/sqlite3/linux/sqlite3.tar.gz",
                    "target": "~/.c9/lib/sqlite3"
                }
            ]
        },
        {
            "symlink": [
                {
                    "source": "~/.c9/lib/sqlite3/sqlite3",
                    "target": "~/.c9/bin/sqlite3"
                }
            ]
        }
    ]);

    // By specifying optional:true the user can disable the installation of this package
    session.install({
        "name": "Nak",
        "description": "Fast file searches for Cloud9",
        "cwd": "~/.c9",
        "optional": true
    }, {
        "npm": ["https://github.com/c9/nak/tarball/c9"]
    });

    // "Requires" will check any required versions. There's also
    // "version-greater", "version-lesser", which can be combined
    // The 3rd argument of install() is an optional function that validates
    // the installation of the package.
    session.install({
        "name": "Pty.js",
        "description": "Pseudo Terminal support. Needed by the Cloud9 Terminal",
        "cwd": "~/.c9",
        "requires": [
            {
                "command": "python --version 2>&1",
                "version-equal": "2.7",
                "message:": "Python version 2.7 is required to install pty.js."
            }
        ]
    }, {
        "npm": ["node-gyp", "pty.js@0.2.3"]
    }, function(done){
        session.run(
            '"~/.c9/node/bin/node" -e "console.log(require(\'pty.js\'))"',
            function(err, stdout, stderr){
                var err;
                if (!stdout || stdout.indexOf("createTerminal") == -1)
                    err = new Error("Unknown exception installing pty.js: " + stdout);
                done(err);
            });
    });

    // Show the installation screen
    session.start();
});

// Support for package managers are pluggable
installer.addPackageManager("ubuntu", plugin);
installer.addPackageManager("npm", plugin);

// Add aliases to support a broader range of platforms
installer.addPackageManagerAlias("ubuntu", "debian");
installer.addPackageManagerAlias("centos", "rhel", "fedora");

Use cases:

Installing a plugin with dependencies
Running Cloud9 for the first time on an SSH workspace
Running Cloud9 SA for the first time on a machine
Updating a plugin with new dependencies
Updating multiple plugins with new dependencies
A plugin gets into an error state and triggers the installer

This is what the implementation of a "package manager" looks like.
define(function(require, exports, module) {
    main.consumes = ["Plugin", "installer", "proc"];
    main.provides = ["installer.ubuntu"];
    return main;

    function main(options, imports, register) {
        var Plugin = imports.Plugin;
        var installer = imports.installer;
        var proc = imports.proc;

        var binBash = options.binBash || "bash";

        var plugin = new Plugin("Ajax.org", main.consumes);

        /**
         * Installs a .deb package
         */
        function execute(task, options, onData, callback) {
            var script = 'set -e\n'
                + 'sudo apt-get install ' + task;

            proc.pty(binBash, {
                args: ["-c", script],
                cwd: options.cwd || null
            }, function(err, pty){
                if (err) return callback(err);

                // Pipe the data to the onData function
                pty.on("data", function(chunk){
                    onData(chunk, pty);
                });

                // When process exits call callback
                pty.on("exit", function(code){
                    if (!code) callback();
                    else callback(new Error("Failed. Exit code " + code));
                });
            });
        }

        var available;
        function isAvailable(callback){
            if (typeof available != "undefined")
                return callback(available);

            proc.execFile("which", { args: ["apt-get"] }, function(err, stdout){
                if (err) return callback(false);

                available = stdout.length > 0;
                callback(available);
            });
        }

        plugin.on("load", function() {
            installer.addPackageManager("ubuntu", plugin);
            installer.addPackageManagerAlias("ubuntu", "debian");
        });
        plugin.on("unload", function() {
            installer.removePackageManager("ubuntu");
            available = undefined;
        });

        plugin.freezePublicAPI({ execute: execute, isAvailable: isAvailable });

        register(null, {
            "installer.ubuntu": plugin
        });
    }
});


text:
feat(tests): nightwatch

🚀

Outdated.

repo: cTux/vitejs-react-ts-template


text:
Manage additional 4xx HTTP status code #186

relates to #186

Thanks for this and sorry for the delay in getting it merged.

authors: bagerard cablehead

repo: cablehead/python-consul


text:
🛑 CBTB Coffee House Shop is down

In a8c53dc, CBTB Coffee House Shop (https://shop.cbtb.coffee/) was down:

HTTP code: 403
Response time: 1255 ms

Resolved: CBTB Coffee House Shop is back up in 876e769.

repo: cachetech/service-status


text:
🛑 CBTB Coffee House Shop is down

In af82503, CBTB Coffee House Shop (https://shop.cbtb.coffee/) was down:

HTTP code: 403
Response time: 1243 ms

Resolved: CBTB Coffee House Shop is back up in 2f5da9e after 18 minutes.


text:
🛑 CBTB Coffee House Shop is down

In 71f6644, CBTB Coffee House Shop (https://shop.cbtb.coffee/) was down:

HTTP code: 403
Response time: 1674 ms

Resolved: CBTB Coffee House Shop is back up in cc32485.