required properties of multipart/form-data not supported

I am getting an unexpected validation error with multipart/form-data content-type. It appears the middleware is not properly identifying the picture property within the multipart/form-data request.
Openapi endpoint
  /users/picture:
    put:
      summary: Set user's picture
      operationId: setUserPicture
      x-controller: users
      x-operation: setUserPicture
      tags:
        - Users
      security:
        - bearerAuth: []
      requestBody:
        description: Picture data that is one of gif, jpeg, png
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                picture:
                  type: string
                  format: binary
              required:
                - picture
      responses:
        200:
          description: OK
        401:
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: "#/components/schemas/AuthError"

Running result:

I can confirm that this bug exists. I'll take a look at it today. Thanks.

Are you using a particular body parser for your multipart/form-data?

good idea, thanks for checking.
I am using multer express middleware. I didn't expect it to be an issue because I was thinking the openapi-enforcer-middleware would run before the multer middleware does? I have the multer middleware installed on just the endpoint/operation code whereas I have the openapi-enforcer-middleware installed at the top-level of the app: app.use(enforcer.middleware())
here is the relevant code that uses multer:
const multer = require("multer");

const upload = multer({
  storage: multer.memoryStorage(),
  limits: { fileSize: 200000 }
});

// set user's picture
const setUserPicture = [
  authMiddleware,
  upload.single("picture"),
  async (req, res) => {
    const supportedContentTypes = ["image/gif", "image/jpeg", "image/png"];
    const { buffer, mimetype } = req.file;
    const { id } = req.user;

    if (!supportedContentTypes.includes(mimetype)) {
      res.status(415).send();
      return;
    }

    try {
      await User.scope("picture").update(
        { picture: buffer, pictureContentType: mimetype },
        { where: { id } }
      );
      res.set({ "Content-Location": `/users/${id}/picture` });
      res.send();
    } catch (err) {
      console.log(err);
      res.status(500).send();
    }
  }
];

The enforcer middleware validates the incoming request prior to calling your controller functions, so by not having parsed the body prior to calling the enforcer middleware we run into the error that it believes the picture was never sent.
I have an idea of how to make this work that will probably be functional tomorrow (Tuesday).

I created an NPM package called openapi-enforcer-multer that should solve this problem for you.
Tackling file uploads for the openapi-enforcer-middleware has been on my to do list for a while, so this was an opportunity to do that.
Check out those docs and let me know if you have any questions. Thanks.

can you add openapi-enforcer-multer as a github repo? on npm, there is no link to a github repo

there are a couple issues id like to post there if you can create a repo for it

Yes, I can do that. Thanks for the reminder. I need to get approval to make it public, but that usually happens pretty fast.

It is now public: https://github.com/byu-oit/openapi-enforcer-multer


FS-4916 and FS-5253 add workflows support for uploading and add tests for these functionalities

This Pull Request contains major changes such as:

Changing entirely upload procedure from external URL

Add store parameters support to upload procedure from external URL

Add workflows support for uploading from external URL

Add workflows support for uploading from local file (multipart=True)

Add tests for uploading from external URL including store parameters

Coverage decreased (-0.4%) to 94.851% when pulling b7556184f5313cfc6d3fcb81cbe75dc9385610ce on feature/fs-4916_add_workflows into e1773e2254d2a451216e13ce8ecb4f69f863ac82 on develop.

Coverage decreased (-0.4%) to 94.851% when pulling b7556184f5313cfc6d3fcb81cbe75dc9385610ce on feature/fs-4916_add_workflows into e1773e2254d2a451216e13ce8ecb4f69f863ac82 on develop.


feat: 8bit index

Use int8 or E5M2 to index vectors

@VoVAllen I think this can be closed right?  With #170 done

@JoePassanante We've done the fp16 index so far, but not int8 index yet. However, user can use Scalar quantization now which is very similar to 8bit index.

Here is the how we use int8 to storage vector.
Given a vector of F32, [a_0, a_1, a_2, ..., a_n], we aim to find the maximum and minimum values. The maximum value, max, is the greatest among {a_0, a_1, a_2, ..., a_n}, and the minimum value, min, is the smallest.
We can transform F32 to I8 using the formula (a - min) / (max - min) * 255, resulting in a vector of I8, [b_0, b_1, b_2, ..., b_n]. Here 255 is the range size that the int8 type can cover, which is the difference between -128 and 127.

But there are some problems,  as this article mentioned(https://qdrant.tech/articles/scalar-quantization/),  vectori8 is faster than  fp32. Those codes show than them use vnni ( i8*i8 -> i16 under simd, in short ) to speed up the process.
https://github.com/qdrant/quantization/blob/939fdb627a8edcf92fd71e3c79017156690850e9/quantization/cpp/avx2.c#L33-L46.
I don't know whether the rust/llvm would auto-vectorize the process. If so , how to write the code without using raw simd instructions.
By the way, have we ever write benchmarks to compare the performance between FP32 and UINT8 quantization ，，， since I think quantization also introduces some overhead?
Another problem is that to if we want to use vnni to speed up the process, we need to introduce some precomputed results. How should we refactor the distance function in trait G,  since we need to pass more parameters.

I don't know whether the rust/llvm would auto-vectorize the process.

maybe we can have a try
pgvecto.rs uses multiversion for auto-vectorized versions of functions. You may search for its usage in the code.

How should we refactor the distance function in trait G, since we need to pass more parameters.

Add a new distance function to G. There is no good solution.

What is the method of qdrant in your diagram?

By the way, have we ever write benchmarks to compare the performance between FP32 and UINT8 quantization ，，， since I think quantization also introduces some overhead?

Based on my preliminary experiment, quantized by row seems have better results. https://colab.research.google.com/drive/1X_DZjZyy9HO7SrURJZiUzNsjt6muarBH?usp=sharing

I don't know whether the rust/llvm would auto-vectorize the process.

Need experiments. But I think int8 should be supported

Another problem is that to if we want to use vnni to speed up the process, we need to introduce some precomputed results. How should we refactor the distance function in trait G, since we need to pass more parameters.

Good question. I think we can keep the square sum of the elements, for both L2 and cos distance

What is the method of qdrant in your diagram?

Given a vector of F32 with shape(10000, 100), qdrant will split it into multi-parts like segments in out approach. For example, we take vector[0:1000] as first segment, it will calculate min/max value for the whole vector with shape(1000,100), and than use the min/max value to quantize. When a vector q query this segment, it will quantize q (this process need to be done only once for each segment. And it will use q'( q after quantization) to compute similarity. Since the min/max value is same for the segment, the computational cost will be reduced.

By the way, have we ever write benchmarks to compare the performance between FP32 and UINT8 quantization ，，， since I think quantization also introduces some overhead?

Based on my preliminary experiment, quantized by row seems have better results. https://colab.research.google.com/drive/1X_DZjZyy9HO7SrURJZiUzNsjt6muarBH?usp=sharing

I want to know that have we ever conducted a comparison in terms of computational efficiency?

@my-vegetable-has-exploded No performance number yet. But 8bit should be much faster 32bit with proper AVX instruction

@my-vegetable-has-exploded No performance number yet. But 8bit should be much faster 32bit with proper AVX instruction

Sorry for the misunderstanding. I am asking if 8-bit scalar quantization (which we already implement) would  improved computational efficiency?
https://github.com/tensorchord/pgvecto.rs/blob/c6dabc79ea3e0a47effb14c7a2b5ecbccbdff7af/crates/service/src/prelude/global/f32_cos.rs#L70-L71
The reason I'm concerned about this is that it introduces a cast from u8 back to f32 and still use f32 to compute the result.

Shouldn't cast to f32 to compute. In SQ, the input vector is fp32, so the computation between i8 and fp32 might have better precision, at the cost of computational  efficiency. In i8 type, you only have the i8 representation. Use fp32 or i8 should have the same result, but i8 can be much faster


Revert "Added new logo"

Reverts praekelt/molo-ndoh-yep#26

@bruskiza what's the status of this change? Still needed?

Not needed.


Publish updated rebuff pypi package

Current python SDK does not match the detect api pattern. See #45
We have plans for a major change to the SDK which will be communicating later this week, but in the meantime we should publish a new package.

We will publish a 0.0.5 version that uses the same API pattern as in previous pypi rebuff packages. Version 0.1.0 will be the new standalone python SDK described in #52

Tagged v.0.0.5 and published:
https://pypi.org/project/rebuff/0.0.5/#history


Support nesting custom forms

We need to combine cf:list and cf:form.
Solution
Custom tags cf:form and cf:field could define attribute formName to indicate which belongs to which.

It can be solved by creating another instance from CustomForm library.


HA Bridge wont auto boot during startup with latest version Raspbian

Hi,
Thanks for your great work, it works really well for me so far.
However, recently I setup a new pi with latest V4.1.4 Raspbian, I follow the instruction to setup, everything works and HA Bridge site load successfully.
But after I restart the Pi, HA bridge wont load. I reflash the SD card and redo the whole process again and the result is the same.
Previously it was Raspbian Jessie, latest 1 is Raspbian Stretch. Maybe there's some changes that caused this?
Below is the log after I manually start habridge
:~ $ sudo systemctl start habridge.service
~ $ tail -f /var/log/syslog
Oct 26 17:05:39 raspberrypi systemd[1]: Started Session c3 of user pi.
Oct 26 17:06:13 raspberrypi systemd[1]: Started HA Bridge.
Oct 26 17:06:14 raspberrypi java[4974]: 2018-10-26 17:06:14,288 [main] INFO com.bwssystems.HABridge.HABridge - HA Bridge startup sequence...
Oct 26 17:06:14 raspberrypi java[4974]: 2018-10-26 17:06:14,321 [main] INFO com.bwssystems.HABridge.BridgeSettings - reading from config file: /home/pi/habridge/data/habridge.config
Oct 26 17:06:14 raspberrypi java[4974]: Exception in thread "main" java.lang.NullPointerException
Oct 26 17:06:14 raspberrypi java[4974]: #011at com.bwssystems.HABridge.BridgeSettings.buildSettings(BridgeSettings.java:169)
Oct 26 17:06:14 raspberrypi java[4974]: #011at com.bwssystems.HABridge.HABridge.main(HABridge.java:56)
Oct 26 17:06:14 raspberrypi systemd[1]: habridge.service: Main process exited, code=exited, status=1/FAILURE
Oct 26 17:06:14 raspberrypi systemd[1]: habridge.service: Unit entered failed state.
Oct 26 17:06:14 raspberrypi systemd[1]: habridge.service: Failed with result 'exit-code'.
Any advice? Thanks!

Below is the log after I manually start habridge
:~ $ sudo systemctl start habridge.service
~ $ tail -f /var/log/syslog
Oct 26 17:05:39 raspberrypi systemd[1]: Started Session c3 of user pi.
Oct 26 17:06:13 raspberrypi systemd[1]: Started HA Bridge.
Oct 26 17:06:14 raspberrypi java[4974]: 2018-10-26 17:06:14,288 [main] INFO  com.bwssystems.HABridge.HABridge - HA Bridge startup sequence...
Oct 26 17:06:14 raspberrypi java[4974]: 2018-10-26 17:06:14,321 [main] INFO  com.bwssystems.HABridge.BridgeSettings - reading from config file: /home/pi/habridge/data/habridge.config
Oct 26 17:06:14 raspberrypi java[4974]: Exception in thread "main" java.lang.NullPointerException
Oct 26 17:06:14 raspberrypi java[4974]: #011at com.bwssystems.HABridge.BridgeSettings.buildSettings(BridgeSettings.java:169)
Oct 26 17:06:14 raspberrypi java[4974]: #011at com.bwssystems.HABridge.HABridge.main(HABridge.java:56)
Oct 26 17:06:14 raspberrypi systemd[1]: habridge.service: Main process exited, code=exited, status=1/FAILURE
Oct 26 17:06:14 raspberrypi systemd[1]: habridge.service: Unit entered failed state.
Oct 26 17:06:14 raspberrypi systemd[1]: habridge.service: Failed with result 'exit-code'.
Any advice? Thanks!

I tried another command to start ha-bridge and log shown below:
:~ $ /usr/bin/java -jar -Dconfig.file=/home/pi/habridge/data/habridge.config /home/pi/habridge/ha-bridge-5.2.1.jar
2018-10-26 17:41:44,783 [main] INFO  com.bwssystems.HABridge.HABridge - HA Bridge startup sequence...
2018-10-26 17:41:44,817 [main] INFO  com.bwssystems.HABridge.BridgeSettings - reading from config file: /home/pi/habridge/data/habridge.config
2018-10-26 17:41:44,832 [main] WARN  com.bwssystems.HABridge.BridgeSettings - Error reading the file: /home/pi/habridge/data/habridge.config - Does not exist or is not readable. continuing...
2018-10-26 17:41:44,861 [main] INFO  com.bwssystems.HABridge.BridgeSettings - Adding <IP_ADDRESS> as our default upnp config address.
2018-10-26 17:41:44,865 [main] INFO  com.bwssystems.HABridge.HABridge - HA Bridge (v5.2.1) initializing....
2018-10-26 17:41:45,116 [main] INFO  spark.staticfiles.StaticFilesConfiguration - StaticResourceHandler configured with folder = /public
2018-10-26 17:41:45,168 [main] INFO  com.bwssystems.HABridge.SystemControl - System control service started....
2018-10-26 17:41:45.311:INFO::Thread-0: Logging initialized @1346ms to org.eclipse.jetty.util.log.StdErrLog
2018-10-26 17:41:45,446 [main] INFO  com.bwssystems.HABridge.util.UDPDatagramSender - Initializing UDP response Socket...
2018-10-26 17:41:45,466 [main] INFO  com.bwssystems.HABridge.util.UDPDatagramSender - UDP response Socket initialized to: 50000
2018-10-26 17:41:45,479 [main] INFO  com.bwssystems.HABridge.plugins.http.HTTPHome - HTTP Home created.
2018-10-26 17:41:45,496 [main] INFO  com.bwssystems.HABridge.plugins.harmony.HarmonyHome - Harmony Home created. No Harmony devices configured.
2018-10-26 17:41:45,504 [main] INFO  com.bwssystems.HABridge.plugins.NestBridge.NestHome - Nest Home created. No Nest configured.
2018-10-26 17:41:45,507 [main] INFO  com.bwssystems.HABridge.plugins.hue.HueHome - Hue passthru Home created. No Hue passtrhu systems configured.
2018-10-26 17:41:45,513 [main] INFO  com.bwssystems.HABridge.plugins.hal.HalHome - HAL Home created. No HAL devices configured.
2018-10-26 17:41:45,518 [main] INFO  com.bwssystems.HABridge.plugins.mqtt.MQTTHome - MQTT Home created. No MQTT Clients configured.
2018-10-26 17:41:45,523 [main] INFO  com.bwssystems.HABridge.plugins.hass.HassHome - HomeAssistant Home created. No HomeAssistants configured.
2018-10-26 17:41:45,527 [main] INFO  com.bwssystems.HABridge.plugins.homewizard.HomeWizardHome - HomeWizard Home created. No HomeWizard gateways configured.
2018-10-26 17:41:45,530 [main] INFO  com.bwssystems.HABridge.plugins.exec.CommandHome - Command Home for system program execution created.
2018-10-26 17:41:45,534 [main] INFO  com.bwssystems.HABridge.plugins.tcp.TCPHome - TCP Home created.
2018-10-26 17:41:45,540 [main] INFO  com.bwssystems.HABridge.plugins.udp.UDPHome - UDP Home created.
2018-10-26 17:41:45,543 [main] INFO  com.bwssystems.HABridge.plugins.vera.VeraHome - Vera Home created. No Veras configured.
2018-10-26 17:41:45,546 [main] INFO  com.bwssystems.HABridge.plugins.fibaro.FibaroHome - Fibaro Home created. No Fibaros configured.
2018-10-26 17:41:45,550 [main] INFO  com.bwssystems.HABridge.plugins.domoticz.DomoticzHome - Domoticz Home created. No Domoticz devices configured.
2018-10-26 17:41:45,553 [main] INFO  com.bwssystems.HABridge.plugins.somfy.SomfyHome - Somfy Home created. No Somfys configured.
2018-10-26 17:41:45,547 [Thread-0] INFO  spark.embeddedserver.jetty.EmbeddedJettyServer - == Spark has ignited ...
2018-10-26 17:41:45,556 [Thread-0] INFO  spark.embeddedserver.jetty.EmbeddedJettyServer - >> Listening on <IP_ADDRESS>:80
2018-10-26 17:41:45,561 [main] INFO  com.bwssystems.HABridge.plugins.lifx.LifxHome - LifxDevice Home created. No LifxDevices configured.
2018-10-26 17:41:45,565 [main] INFO  com.bwssystems.HABridge.plugins.openhab.OpenHABHome - OpenHAB Home created. No OpenHABs configured.
2018-10-26 17:41:45,569 [main] INFO  com.bwssystems.HABridge.plugins.fhem.FHEMHome - FHEM Home created. No FHEMs configured.
2018-10-26 17:41:45.574:INFO:oejs.Server:Thread-0: jetty-9.4.z-SNAPSHOT
2018-10-26 17:41:45,599 [main] INFO  com.bwssystems.HABridge.plugins.broadlink.BroadlinkHome - Broadlink Home created. No Broadlinks configured.
2018-10-26 17:41:45,609 [main] WARN  com.bwssystems.HABridge.dao.DeviceRepository - Error reading the file: data/device.db - Does not exist or is not readable. continuing...
2018-10-26 17:41:45,618 [main] WARN  com.bwssystems.HABridge.dao.GroupRepository - Error reading the file: data/group.db - Does not exist or is not readable. continuing...
2018-10-26 17:41:45,619 [main] INFO  com.bwssystems.HABridge.devicemanagmeent.DeviceResource - HABridge device management service started....
2018-10-26 17:41:45,695 [main] INFO  com.bwssystems.HABridge.hue.HueMulator - Hue emulator service started....
2018-10-26 17:41:45.765:INFO:oejs.session:Thread-0: DefaultSessionIdManager workerName=node0
2018-10-26 17:41:45.765:INFO:oejs.session:Thread-0: No SessionScavenger set, using defaults
2018-10-26 17:41:45.778:INFO:oejs.session:Thread-0: Scavenging every 660000ms
2018-10-26 17:41:45,817 [Thread-0] ERROR com.bwssystems.HABridge.HABridge - Could not start ha-bridge webservice on port [80] due to: Permission denied

This is the log right after i setup ha-bridge on a new card. it load successfully first time before rebooting.
Last login: Tue Oct  9 20:43:57 2018
pi@raspberrypi:~ $ cd /home/pi
pi@raspberrypi:~ $ mkdir habridge
pi@raspberrypi:~ $ cd habridge
pi@raspberrypi:~/habridge $ wget https://www.dropbox.com/s/xzdno5s97s8o5nr/ha-bridge-5.2.1.jar
--2018-10-26 17:52:36--  https://www.dropbox.com/s/xzdno5s97s8o5nr/ha-bridge-5.2.1.jar
Resolving www.dropbox.com (www.dropbox.com)... <IP_ADDRESS>, 2620:100:6031:1::a27d:5101
Connecting to www.dropbox.com (www.dropbox.com)|<IP_ADDRESS>|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: /s/raw/xzdno5s97s8o5nr/ha-bridge-5.2.1.jar [following]
--2018-10-26 17:52:37--  https://www.dropbox.com/s/raw/xzdno5s97s8o5nr/ha-bridge-5.2.1.jar
Reusing existing connection to www.dropbox.com:443.
HTTP request sent, awaiting response... 302 Found
Location: https://uc5652ff5cd91f03beef28153cea.dl.dropboxusercontent.com/cd/0/inline/AT-XIE5hiVo2WePrBmYKG1ySxmZHv1ek5kWsTTvaO2Cn0onJjpyWByWJHwDq3n4RLOhr3H1bxbfraXL76dk9hXt8KixtvBXRhL70cqA58KOPzYZCjGWfr7gABhSBQ22Sv51bmVUrAZamzMrCHein2id4hf00Awq7dWancE9VUF45JzZiGfOR826XPcT5HzOVNm4/file [following]
--2018-10-26 17:52:37--  https://uc5652ff5cd91f03beef28153cea.dl.dropboxusercontent.com/cd/0/inline/AT-XIE5hiVo2WePrBmYKG1ySxmZHv1ek5kWsTTvaO2Cn0onJjpyWByWJHwDq3n4RLOhr3H1bxbfraXL76dk9hXt8KixtvBXRhL70cqA58KOPzYZCjGWfr7gABhSBQ22Sv51bmVUrAZamzMrCHein2id4hf00Awq7dWancE9VUF45JzZiGfOR826XPcT5HzOVNm4/file
Resolving uc5652ff5cd91f03beef28153cea.dl.dropboxusercontent.com (uc5652ff5cd91f03beef28153cea.dl.dropboxusercontent.com)... <IP_ADDRESS>, 2620:100:6031:6::a27d:5106
Connecting to uc5652ff5cd91f03beef28153cea.dl.dropboxusercontent.com (uc5652ff5cd91f03beef28153cea.dl.dropboxusercontent.com)|<IP_ADDRESS>|:443... connected.
HTTP request sent, awaiting response... 302 FOUND
Location: /cd/0/inline2/AT_BNk1iYsADQ8HW3KBGpjcmV-TYXkqBV-jJDLNvMnjzcv3fAaX93pgokkLhteJwnG7iX8NyjwzryMxQeTgYHO1b66LwzfqWRhugvauR01_8zHe2qeICTBRVPEEZ-PDbi7MRXDBbbNgbs8F8-9Q-U9QuFdNKx3fYr96TngSFmFllXzrjcptGRy3VHdRL4eq90vKVJm7hOidS4WZ5_s9oc9FYVFAFQX9QlD_ajO1riY4S2b_e9MpW_7xjssVQYKip14DuR9HV7GwRZS38BXrOH-FKEf63f_A-Lv3HXAnzj1XQ_INp2UDPA1ydyZTu4o-4mhPGU9qmyAMzvc8vzacjOV2OpPCq7Ta1QSdIyEAqb7yrPm7JpoVfWmcUgPtE3HWD3idEW8lGm2p8dCp1SiaJNHmj342HVJrDoYVJaUcEc2nxxkc9zLiJedyOljLFZXzIYIo/file [following]
--2018-10-26 17:52:38--  https://uc5652ff5cd91f03beef28153cea.dl.dropboxusercontent.com/cd/0/inline2/AT_BNk1iYsADQ8HW3KBGpjcmV-TYXkqBV-jJDLNvMnjzcv3fAaX93pgokkLhteJwnG7iX8NyjwzryMxQeTgYHO1b66LwzfqWRhugvauR01_8zHe2qeICTBRVPEEZ-PDbi7MRXDBbbNgbs8F8-9Q-U9QuFdNKx3fYr96TngSFmFllXzrjcptGRy3VHdRL4eq90vKVJm7hOidS4WZ5_s9oc9FYVFAFQX9QlD_ajO1riY4S2b_e9MpW_7xjssVQYKip14DuR9HV7GwRZS38BXrOH-FKEf63f_A-Lv3HXAnzj1XQ_INp2UDPA1ydyZTu4o-4mhPGU9qmyAMzvc8vzacjOV2OpPCq7Ta1QSdIyEAqb7yrPm7JpoVfWmcUgPtE3HWD3idEW8lGm2p8dCp1SiaJNHmj342HVJrDoYVJaUcEc2nxxkc9zLiJedyOljLFZXzIYIo/file
Reusing existing connection to uc5652ff5cd91f03beef28153cea.dl.dropboxusercontent.com:443.
HTTP request sent, awaiting response... 200 OK
Length: 9311637 (8.9M) [application/java-archive]
Saving to: ‘ha-bridge-5.2.1.jar’
ha-bridge-5.2.1.jar 100%[===================>]   8.88M  3.42MB/s    in 2.6s
2018-10-26 17:52:41 (3.42 MB/s) - ‘ha-bridge-5.2.1.jar’ saved [9311637/9311637]
pi@raspberrypi:~/habridge $ cd /etc/systemd/system
pi@raspberrypi:/etc/systemd/system $ sudo nano habridge.service
pi@raspberrypi:/etc/systemd/system $ sudo systemctl daemon-reload
pi@raspberrypi:/etc/systemd/system $ sudo systemctl start habridge.service
pi@raspberrypi:/etc/systemd/system $ sudo systemctl enable habridge.service
Created symlink /etc/systemd/system/multi-user.target.wants/habridge.service → /etc/systemd/system/habridge.service.
pi@raspberrypi:/etc/systemd/system $ tail -f /var/log/syslog
Oct 26 09:53:17 raspberrypi java[1345]: 2018-10-26 17:53:17,849 [main] INFO  com.bwssystems.HABridge.hue.HueMulator - Hue emulator service started....
Oct 26 09:53:17 raspberrypi java[1345]: 2018-10-26 17:53:17.885:INFO:oejs.session:Thread-0: DefaultSessionIdManager workerName=node0
Oct 26 09:53:17 raspberrypi java[1345]: 2018-10-26 17:53:17.886:INFO:oejs.session:Thread-0: No SessionScavenger set, using defaults
Oct 26 09:53:17 raspberrypi java[1345]: 2018-10-26 17:53:17.903:INFO:oejs.session:Thread-0: Scavenging every 600000ms
Oct 26 09:53:17 raspberrypi java[1345]: 2018-10-26 17:53:17.989:INFO:oejs.AbstractConnector:Thread-0: Started ServerConnector@10849ea{HTTP/1.1,[http/1.1]}{<IP_ADDRESS>:80}
Oct 26 09:53:17 raspberrypi java[1345]: 2018-10-26 17:53:17.991:INFO:oejs.Server:Thread-0: Started @2626ms
Oct 26 09:53:17 raspberrypi java[1345]: 2018-10-26 17:53:17,994 [main] INFO  com.bwssystems.HABridge.upnp.UpnpSettingsResource - Description xml service started....
Oct 26 09:53:18 raspberrypi java[1345]: 2018-10-26 17:53:18,013 [main] INFO  com.bwssystems.HABridge.upnp.UpnpListener - UPNP Discovery Listener starting....
Oct 26 09:53:18 raspberrypi java[1345]: 2018-10-26 17:53:18,015 [main] INFO  com.bwssystems.HABridge.upnp.UpnpListener - UPNP Discovery Listener running and ready....
Oct 26 09:53:20 raspberrypi systemd[1]: Reloading.

Ok, i found that the issue of habridge.service can be solved by changing port from 80 to 8080. However, Alexa cant discover devices, below are the logs after enable UPNP trace:
<IP_ADDRESS> is Pi's ip
<IP_ADDRESS> is Echo's ip
I'm using Echo 2, so I've checked the troubleshoot guide for Echo 2, and tried enable the link and press the link.
`

10-26-2018 18:17:08.568
INFO
HA Bridge startup sequence...
com.bwssystems.HABridge.HABridge

10-26-2018 18:17:08.670
INFO
reading from config file: /home/pi/habridge/data/habridge.config
com.bwssystems.HABridge.BridgeSettings

10-26-2018 18:17:09.465
WARN
The upnp config address, <IP_ADDRESS>, does not match any known IP's on this host.
com.bwssystems.HABridge.BridgeSettings

10-26-2018 18:17:12.556
INFO
HA Bridge (v5.2.1) initializing....
com.bwssystems.HABridge.HABridge

10-26-2018 18:17:12.629
INFO
StaticResourceHandler configured with folder = /public
spark.staticfiles.StaticFilesConfiguration

10-26-2018 18:17:12.689
INFO
System control service started....
com.bwssystems.HABridge.SystemControl

10-26-2018 18:17:12.895
INFO
Initializing UDP response Socket...
com.bwssystems.HABridge.util.UDPDatagramSender

10-26-2018 18:17:12.924
INFO
UDP response Socket initialized to: 50000
com.bwssystems.HABridge.util.UDPDatagramSender

10-26-2018 18:17:12.943
INFO
HTTP Home created.
com.bwssystems.HABridge.plugins.http.HTTPHome

10-26-2018 18:17:12.975
INFO
Harmony Home created. No Harmony devices configured.
com.bwssystems.HABridge.plugins.harmony.HarmonyHome

10-26-2018 18:17:12.987
INFO
Nest Home created. No Nest configured.
com.bwssystems.HABridge.plugins.NestBridge.NestHome

10-26-2018 18:17:12.990
INFO
Hue passthru Home created. No Hue passtrhu systems configured.
com.bwssystems.HABridge.plugins.hue.HueHome

10-26-2018 18:17:12.994
INFO
HAL Home created. No HAL devices configured.
com.bwssystems.HABridge.plugins.hal.HalHome

10-26-2018 18:17:12.998
INFO
MQTT Home created. No MQTT Clients configured.
com.bwssystems.HABridge.plugins.mqtt.MQTTHome

10-26-2018 18:17:13.001
INFO
HomeAssistant Home created. No HomeAssistants configured.
com.bwssystems.HABridge.plugins.hass.HassHome

10-26-2018 18:17:13.004
INFO
HomeWizard Home created. No HomeWizard gateways configured.
com.bwssystems.HABridge.plugins.homewizard.HomeWizardHome

10-26-2018 18:17:13.009
INFO
Command Home for system program execution created.
com.bwssystems.HABridge.plugins.exec.CommandHome

10-26-2018 18:17:13.015
INFO
TCP Home created.
com.bwssystems.HABridge.plugins.tcp.TCPHome

10-26-2018 18:17:13.020
INFO
UDP Home created.
com.bwssystems.HABridge.plugins.udp.UDPHome

10-26-2018 18:17:13.035
INFO
Vera Home created. No Veras configured.
com.bwssystems.HABridge.plugins.vera.VeraHome

10-26-2018 18:17:13.038
INFO
Fibaro Home created.
com.bwssystems.HABridge.plugins.fibaro.FibaroHome

10-26-2018 18:17:13.077
INFO
Domoticz Home created. No Domoticz devices configured.
com.bwssystems.HABridge.plugins.domoticz.DomoticzHome

10-26-2018 18:17:13.088
INFO
Somfy Home created. No Somfys configured.
com.bwssystems.HABridge.plugins.somfy.SomfyHome

10-26-2018 18:17:13.096
INFO
LifxDevice Home created. No LifxDevices configured.
com.bwssystems.HABridge.plugins.lifx.LifxHome

10-26-2018 18:17:13.102
INFO
OpenHAB Home created. No OpenHABs configured.
com.bwssystems.HABridge.plugins.openhab.OpenHABHome

10-26-2018 18:17:13.108
INFO
FHEM Home created. No FHEMs configured.
com.bwssystems.HABridge.plugins.fhem.FHEMHome

10-26-2018 18:17:13.125
INFO
Broadlink Home created. No Broadlinks configured.
com.bwssystems.HABridge.plugins.broadlink.BroadlinkHome

10-26-2018 18:17:13.122
INFO
== Spark has ignited ...
spark.embeddedserver.jetty.EmbeddedJettyServer

10-26-2018 18:17:13.129
INFO
>> Listening on <IP_ADDRESS>:8080
spark.embeddedserver.jetty.EmbeddedJettyServer

10-26-2018 18:17:13.197
WARN
Error reading the file: data/group.db - Does not exist or is not readable. continuing...
com.bwssystems.HABridge.dao.GroupRepository

10-26-2018 18:17:13.198
INFO
HABridge device management service started....
com.bwssystems.HABridge.devicemanagmeent.DeviceResource

10-26-2018 18:17:13.298
INFO
Hue emulator service started....
com.bwssystems.HABridge.hue.HueMulator

10-26-2018 18:17:13.403
INFO
Traceupnp: upnp config address: <IP_ADDRESS>-useIface:false on web server: <IP_ADDRESS>:8080
com.bwssystems.HABridge.HABridge

10-26-2018 18:17:13.406
INFO
Description xml service started....
com.bwssystems.HABridge.upnp.UpnpSettingsResource

10-26-2018 18:17:13.431
INFO
UPNP Discovery Listener starting....
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:17:13.432
INFO
Traceupnp: Interface: wlan0 valid usable IP address: /<IP_ADDRESS>
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:17:13.433
INFO
Traceupnp: Adding wlan0 to our upnp join interface set.
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:17:13.434
INFO
Traceupnp: Interface: lo valid usable IP address: /<IP_ADDRESS>
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:17:13.434
INFO
Traceupnp: Adding lo to our upnp join interface set.
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:17:13.434
INFO
UPNP Discovery Listener running and ready....
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:36:15.745
INFO
Traceupnp: hue api user create requested for  device type: test_ha_bridge#<IP_ADDRESS> and username:  fa7495b08906427cab05c9c119df330f
com.bwssystems.HABridge.hue.HueMulator

10-26-2018 18:36:49.118
INFO
Traceupnp: hue api user create requested for  device type: test_ha_bridge#<IP_ADDRESS> and username:  fa7495b08906427cab05c9c119df330f
com.bwssystems.HABridge.hue.HueMulator

10-26-2018 18:37:11.615
INFO
Traceupnp: SSDP M-SEARCH packet from <IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:12.617
INFO
Traceupnp: send upnp discovery template 1 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:12.997
INFO
Traceupnp: request of description.xml from: <IP_ADDRESS>:8080 filled in with address: <IP_ADDRESS>:8080
com.bwssystems.HABridge.upnp.UpnpSettingsResource

10-26-2018 18:37:13.620
INFO
Traceupnp: send upnp discovery template 2 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:13.760
INFO
Link button pressed....
com.bwssystems.HABridge.SystemControl

10-26-2018 18:37:14.622
INFO
Traceupnp: send upnp discovery template 3 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:14.623
INFO
Traceupnp: SSDP M-SEARCH packet from <IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:15.625
INFO
Traceupnp: send upnp discovery template 1 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:16.627
INFO
Traceupnp: send upnp discovery template 2 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:17.630
INFO
Traceupnp: send upnp discovery template 3 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:17.632
INFO
Traceupnp: SSDP M-SEARCH packet from <IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:18.634
INFO
Traceupnp: send upnp discovery template 1 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:19.636
INFO
Traceupnp: send upnp discovery template 2 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:20.639
INFO
Traceupnp: send upnp discovery template 3 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:20.640
INFO
Traceupnp: SSDP M-SEARCH packet from <IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:21.642
INFO
Traceupnp: send upnp discovery template 1 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:22.645
INFO
Traceupnp: send upnp discovery template 2 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:23.647
INFO
Traceupnp: send upnp discovery template 3 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:23.648
INFO
Traceupnp: SSDP M-SEARCH packet from <IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:24.650
INFO
Traceupnp: send upnp discovery template 1 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:25.652
INFO
Traceupnp: send upnp discovery template 2 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:26.654
INFO
Traceupnp: send upnp discovery template 3 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:26.655
INFO
Traceupnp: SSDP M-SEARCH packet from <IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:27.657
INFO
Traceupnp: send upnp discovery template 1 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:28.659
INFO
Traceupnp: send upnp discovery template 2 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:29.661
INFO
Traceupnp: send upnp discovery template 3 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:37:43.761
INFO
Link button time ended....
com.bwssystems.HABridge.LinkButtonPressed

10-26-2018 18:38:10.904
INFO
Traceupnp: SSDP M-SEARCH packet from <IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:11.906
INFO
Traceupnp: send upnp discovery template 1 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:11.978
INFO
Link button pressed....
com.bwssystems.HABridge.SystemControl

10-26-2018 18:38:12.463
INFO
Traceupnp: request of description.xml from: <IP_ADDRESS>:8080 filled in with address: <IP_ADDRESS>:8080
com.bwssystems.HABridge.upnp.UpnpSettingsResource

10-26-2018 18:38:12.908
INFO
Traceupnp: send upnp discovery template 2 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:13.910
INFO
Traceupnp: send upnp discovery template 3 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:13.911
INFO
Traceupnp: SSDP M-SEARCH packet from <IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:14.913
INFO
Traceupnp: send upnp discovery template 1 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:15.915
INFO
Traceupnp: send upnp discovery template 2 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:16.917
INFO
Traceupnp: send upnp discovery template 3 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:16.918
INFO
Traceupnp: SSDP M-SEARCH packet from <IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:17.920
INFO
Traceupnp: send upnp discovery template 1 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:18.922
INFO
Traceupnp: send upnp discovery template 2 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:19.924
INFO
Traceupnp: send upnp discovery template 3 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:19.926
INFO
Traceupnp: SSDP M-SEARCH packet from <IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:20.928
INFO
Traceupnp: send upnp discovery template 1 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:21.930
INFO
Traceupnp: send upnp discovery template 2 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:22.932
INFO
Traceupnp: send upnp discovery template 3 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:22.934
INFO
Traceupnp: SSDP M-SEARCH packet from <IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:23.935
INFO
Traceupnp: send upnp discovery template 1 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:24.937
INFO
Traceupnp: send upnp discovery template 2 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:25.939
INFO
Traceupnp: send upnp discovery template 3 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:25.941
INFO
Traceupnp: SSDP M-SEARCH packet from <IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:26.942
INFO
Traceupnp: send upnp discovery template 1 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:27.944
INFO
Traceupnp: send upnp discovery template 2 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

10-26-2018 18:38:28.946
INFO
Traceupnp: send upnp discovery template 3 with response address: <IP_ADDRESS>:8080 to address: /<IP_ADDRESS>:50000
com.bwssystems.HABridge.upnp.UpnpListener

`
any advice what else can i do?

Please check your IP address setup as the warning:
10-26-2018 18:17:09.465 | WARN | The upnp config address, <IP_ADDRESS>, does not match any known IP's on this host. | com.bwssystems.HABridge.BridgeSettings
shows that the IP is not configured yet. Are you using docker?

Thanks for getting back. Hmm i dont really understand what does it means by IP is not configured yet.  I've set static IP on the router. I'm using it on raspberry pi 3 B+ running Raspbian Stretch. So I guess no, im not running it on docker.
So below is what I did and what's the result

change port to 8080

able to access to ha-bridge after restart, however wont be able to discover devices

dont change anything

able to discover devices without problem. however ha-bridge will not run again if Pi is restarted

Do you think it is UPnP or port forwarding issue?

@klccjeremy In your HA-Bridge on the Bridge Control settings page, did you configure the Web Server IP Address input to be the static IP set on the router?

I had this problem last night, confirm solved by configuring the "Web Server IP Address" in the "Bridge Control" menu, to the static IP assigned by the router (was set t <IP_ADDRESS>)

Im confused. I thought it should be:
UPNP address = bridge IP
web server ip = <IP_ADDRESS>
so you guys are saying that I should set the Pi IP address as both UPNP & Web server IP?


GitHub resource no longer valid for: Example on how to generate token - Direct Line Token

Bottom of page: https://docs.microsoft.com/en-us/azure/bot-service/bot-service-channel-connect-webchat?view=azure-bot-service-4.0
Link to "Direct Line Token" points to: https://github.com/microsoft/BotBuilder-Samples/tree/master/experimental/DirectLineTokenSite
DirectLineTokenSite information no longer listed in experimental section

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 2d54408c-bfbc-9d2c-a642-ec54f375475f
Version Independent ID: 5b06e016-1aa8-a13b-179c-ec6700b8287c
Content: Connect a bot to the Web Chat channel - Bot Service
Content Source: articles/bot-service-channel-connect-webchat.md
Service: bot-service
GitHub Login: @RobStand
Microsoft Alias: kamrani

The samples in the repo appear to have been reorganized. I'll fix the link. In the mean time, I think this is the correct target: https://github.com/microsoft/BotFramework-WebChat/tree/master/samples/01.getting-started/k.direct-line-token

Fix should go live today or tomorrow.


Poll trade offer status automatically

Changes suggested in #914
I've been testing for a few days, and it seems to work fine.  Anyone care to test?  You no longer need to call TradeOfferManager.GetOffers(), it's done automatically.  You just need to handle UserHandler.OnTradeOfferUpdated()

Er, AppVeyor is failing.  It doesn't seem to like my C# 6 syntax.  Are we not using that yet?  We're compiling against .Net 4.5....

Alright, I've updated to remove the C# 6 syntax so AppVeyor stops complaining.
I've also been testing it for the last week, and it works fantastic!  Has anyone else had a chance to look at it yet?

I was considering trying to fix it for NET 4.5 and using it to help out, but I quickly discovered that it was...over my head. Thanks for doing that. I will try it and let you know...unless I forget! Oops!

So far, this works really well for mobile confirmations when you have the method to accept mobile confirmations called in response to TradeOfferStateNeedsConfirmation.
One thing, I'm not sure if this is supposed to be obvious or an actual oversight (I am a scrub), but for those like me who wouldn't immediately see this issue, when you update your code without modifying any cutoff dates/times, TradeOfferStateAccepted will be called for just about every trade in your history. So, if you put anything in the case TradeOfferStateAccepted as shown in the example on SimpleUserHandler, it will be called like a billion times. Fair warning! I annoyed a lot of people!

@ThereWasADream Yes that is intentional, there's nothing we can do about that without keeping track of which trades we've already accepted somewhere (which would require some sort of database).  I tried to make it very clear that each userhandler needs to keep track on its own which trades it has already accepted.  That is part of the reason why it's a single OnTradeOfferUpdated method, and not a OnTradeOfferAccepted method.

I'm sure it would be clear to anyone else except me. I usually figure these things out eventually but I figured it would be better to say something and find out it was an oversight by me than miss out on a potential bug report. So basically there's nothing wrong here.

Awesome!  Anyone else wanna take a look, or should I just merge?

I can't look at your code right now, but are you polling using the current timestamp with GetTradeOffers? That should solve the issue of calling stuff like OnTradeAccepted twice, even after restarts. I'm pretty sure this isn't an issue with SteamTradeOffersBot.

@waylaidwanderer What do you mean "the current timestamp"?  The value sent to the server needs to be set to "the last time we requested trade offers from the server", which there is no way of knowing if the bot just started up, unless we store it somewhere.
If you are setting it to the current timestamp when the bot starts up, that means any trade offers sent between when the bot last went offline and now will be missed.

Er, there's been no discussion for a month, I think I will merge this, it seems like a pretty basic need for everyone.


[Bug] [ready stop] process instance state is ready stop and never changed to stop. 3.1.3version

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
A process execute  with "serial wait" policy and faild with retry times.  When process  is in the retry interval , try to stop the process instance. The  process instance state will be changed to  ready stop and never changed to stop.
What you expected to happen
Make sure every process instance could be stop.
How to reproduce
1、 create a new process instance and execute it with "serial wait" policy and set retry times >0
2、make sure process instance will be failed, and stop process instance befroe it retry
3、process instance state will be ready stop and never changed to stop.
Anything else
public class WorkflowStateEventHandler implements StateEventHandler {
private static final Logger logger = LoggerFactory.getLogger(WorkflowStateEventHandler.class);

@Override
public boolean handleStateEvent(WorkflowExecuteRunnable workflowExecuteRunnable,
                                StateEvent stateEvent) throws StateEventHandleException {
    WorkflowStateEvent workflowStateEvent = (WorkflowStateEvent) stateEvent;
    measureProcessState(workflowStateEvent);
    ProcessInstance processInstance = workflowExecuteRunnable.getProcessInstance();
    ProcessDefinition processDefinition = processInstance.getProcessDefinition();

    logger.info(
            "Handle workflow instance state event, the current workflow instance state {} will be changed to {}",
            processInstance.getState(), workflowStateEvent.getStatus());

    if (workflowStateEvent.getStatus().isStop()) {
        // serial wait execution type needs to wake up the waiting process
        if (processDefinition.getExecutionType().typeIsSerialWait() || processDefinition.getExecutionType()
                .typeIsSerialPriority()) {
            workflowExecuteRunnable.endProcess();
           // return true;
        }
        workflowExecuteRunnable.updateProcessInstanceState(workflowStateEvent);
        return true;
    }
    if (workflowExecuteRunnable.processComplementData()) {
        return true;
    }
    if (workflowStateEvent.getStatus().isFinished()) {
        workflowExecuteRunnable.endProcess();
    }
    if (processInstance.getState().isReadyStop()) {
        workflowExecuteRunnable.killAllTasks();
    }

    return true;
}

I have try to delete this return, and problem fixed
Version
3.1.x
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

It also exists in version 3.1.0

I have the same problem

I commented out the ”// return true;“ line，as you can see in the ”Anything else“ part，and the problem fixed， but I'm not sure if it will introduce other problems.

我们也遇到了相同的问题，这个有临时的解决方案吗？

I commented out the ”// return true;“ line，as you can see in the ”Anything else“ part，and the problem fixed， but I'm not sure if it will introduce other problems.我注释掉了“// return true;”这一行，正如你在“还有其他什么”部分看到的，问题已经解决，但我不确定这会不会引入其他问题。

这个方法有用吗，可以解决吗？

I commented out the ”// return true;“ line，as you can see in the ”Anything else“ part，and the problem fixed， but I'm not sure if it will introduce other problems.

解决了吗？


Allow scraping metrics to be throttled via UI

Description
👋   Whilst attempting to scrape metrics from a large Gitlab project (hundreds of thousands of pipelines, tens of thousands of merge requests) the triggered pipeline that scrapes the metrics via the gitlab api was causing increased load to the point users were noticing decreased performance via the UI.
The logs were showing ~19-20 of these calls per second:
GET https://<gitlab_endpoint>/api/v4/projects/<project_id>/merge_requests/<merged_request_id>/notes?system=false&per_page=1&page=0
Proposed solution
note: I did check for anything existing that related to throttling but couldn't find it, even in the Gitlab documentation
It would be nice to be able to rate limit the number of api calls made per xx time, or to set a float value to "wait" between api calls in effort to reduce the load. If this could be configured via the config-ui that would be fantastic.
Has the Feature been Requested Before?
I couldn't see any via searching similar keywords. Feel free too close if this request is a duplicate.
Describe alternatives you've considered
An alternative feature would be to configure the amount of pipelines, merge requests, etc (writing this is scoped to Gitlab at the moment, but can be applied to alternative integrated services) that are queried. For example, if I could configure the last 10_000 merge requests and 25_000 pipelines to be scraped for querying, that would be beneficial in the sense it would reduce the amount of time the scraping would run for as well as provide more recent data for querying.

This is a great request. We should do this feature! Do you want to make a pull request? If not, I can get it into our company pipeline in the coming weeks!

github issue api link: https://docs.github.com/en/github-ae@latest/rest/reference/commits

since:   Only show notifications updated after the given time. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ

gitlab merge request api link: https://docs.gitlab.com/ee/api/merge_requests.html

created_after: Return merge requests created on or after the given time. Expected in ISO 8601 format (2019-03-15T08:00:00Z)
updated_after:  Return merge requests updated on or after the given time. Expected in ISO 8601 format (2019-03-15T08:00:00Z)

@yumengwang03 Please take a look at this, this setting is named API_REQUESTS_PER_HOUR in Backend as a Global  Default Setting. And we can support setting up a higher priority value on Connection level. Please add this into your connection page/dialog.
And we should also consider to create a setting panel for Global Settings. Including:
API_TIMEOUT=10s
API_RETRY=3
API_REQUESTS_PER_HOUR=10000
# Debug Info Warn Error
LOGGING_LEVEL=
DB_LOGGING_LEVEL=

Plan of attack:
Add a setting to the connection page @e2corporation

There should be design first.

@yumengwang03 FYI, we figured that the perfect place for this setting to sit is connection.

hi @e2corporation , Can we add this setting to the connection editing page in this iteration?

API swagger doc: https://github.com/apache/incubator-devlake/issues/2449


fix(upgrade-job): derive default for older charts w/o localpv

Older charts (i.e. 2.2, 2.3) don't have localpv-provisioner. So source values for those versions of the chart need to be able to get a successful YAML deserialization.

bors merge


Fix GridHeatMap color update

Should fix #913

Can you comment a bit about the logic here?

Sure. Now row and column attributes are None by default. And computed using a JavaScript range on the fly when the data changes.
Also the PR contains a fix on the redraw using the d3 join feature for updating already existing rects and adding new ones automatically.

@ChakriCherukuri do you know if there is a case where we would want to set row or columns to a different value than the natural one from the data? If not, we may as well remove the trait altogether for 0.12.
Other than this question, this looks good to me.


Add get_postback_info to registration service

 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.Andrew Butterfield seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Made style updates

Updated navigation
Updated search dropdown
Added animation to success alerts
General style/font size/other style fixes

I've pushed a commit that will hopefully make this pass tests so we can merge.
Note this bug: Responsive styling is broken on the navbar at smaller widths on desktop devices.


CI: GitHub Actions

We can move to GitHub Actions from Travis CI and Appveyor.
GitHub Action do 20 workflows concurrently.

You can execute up to 20 workflows concurrently per repository.
https://help.github.com/en/articles/about-github-actions

It will improve testing performance.

Rough Image:

Move Unit/E2E test to GitHub Action from Travis CI/Appveyor

Drop to use Appveyor

Preserve deploy script on Travis CI

name: "CI"
on: [push, pull_request]

jobs:
  unit_test:
    runs-on: ubuntu-16.04
    strategy:
      matrix:
        os: [macOS-10.14, windows-2016, ubuntu-18.04]
        node: [ 8, 10, 12 ]
    name: Node ${{ matrix.node }} on ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v1
      - name: Setup node
        uses: actions/setup-node@v1
        with:
          node-version: ${{ matrix.node }}
      - name: Bootstrap
        run: |
          npm install -g yarn
          yarn install --frozen-lockfile
          yarn run bootstrap
      - name: Run tests
        run: |
          yarn test
          yarn run test:examples
          yarn run test:integration
  documentation:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node: [ 12 ]
    name: Node ${{ matrix.node }} on ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v1
      - name: Setup node
        uses: actions/setup-node@v1
        with:
          node-version: ${{ matrix.node }}
      - name: Bootstrap
        run: |
          npm install -g yarn
          yarn install --frozen-lockfile
          yarn run bootstrap --scope textlint-website
      - name: Check documents
        run: |
          yarn run test:docs
          yarn run website

It is difficult that move Deploy Script(Build Website and deploy to gh-pages) to GitHub Actions.

https://github.com/textlint/textlint/blob/e77f213d0a4e71262935a6eb93979f2d100d5717/.travis.yml#L45-L54

Because GITHUB_TOKEN of GitHub Actions does not support gh-pages yet.

Cannot deploy with GITHUB_TOKEN for new repository · Issue #9 · peaceiris/actions-gh-pages

[ ] Need to compare performance

Currently, Tracis CI take 10 min.

https://travis-ci.org/textlint/textlint/builds/600215559

@azu
I tried it in my forked repository https://github.com/Kesin11/textlint/pull/1
Some config like job/step name are different, but env matrix is same as you suggested.
Performance
Almost jobs that include macVM took about 6 to 7minutes.
Test result
Linux and macOS are OK. But windows is failed.
I also try windows server 2019 with windows-latest but there was no change.

node 8 version problem.
 Run yarn install --frozen-lockfile failed only windows & node8 environment.
actions/setup-node with windows using old node 8.10. 😥  It different from other OS.
It looks bug of github VM environment.
https://github.com/actions/setup-node/issues/27

prettier error
prettier output error only windows & node 10,12 matrix like this

<EMAIL_ADDRESS>##[error]   1:26  error  Delete `␍`  prettier/prettier

I don't know why it is. I'm not familiar with prettier and windows.
In my opinion, split workflow that test windows from Linux and macOS.
In the Windows environment, some workarounds may be required.

Almost jobs that include macVM took about 6 to 7minutes.

Yeah! Good perf.

Test result

Nice reasearch!
Both problem is related with Windows 😢
So, I propose that we do following step.
At first step, we add GitHub Action without Windows like os: [macOS-10.14, ubuntu-18.04]
In next step, we try to add windows support.

@Kesin11 Can you submit PR without windows support?

Thank you for the review.
I'll do it today.

Just enforce LF via a gitattributes file and everything should be OK on Windows too.
https://github.com/MaxCDN/bootstrapcdn/blob/develop/.gitattributes


Patch the Class object

Can't patch Class object, only methods
Working case, but too many decorator lines...
class TestGamePrepare(TestCase):
    chat_id = -12345667890
    admin_id = 987654321

    async def setUp(self):
        self.game = await get_game(self.chat_id)

    @patch('game.Game.delete_messages', pass_func)
    async def tearDown(self):
        await self.game.cancel()

    @patch('game.Game.say', pass_func)
    @patch('game.Game.unmute', pass_func)
    @patch('game.Game.read_game_settings', pass_func)
    @patch('game.Game.delete_messages', pass_func)
    async def test_game_prepare(self):
        """ Good prepare case """
        await self.game.prepare_game(self.admin_id)
        self.assertEqual(self.game.mode, GameModes.REGISTRATION)

I try to patch Class at all, but it's not working:
    @patch('game.Game', NewGame)
    async def test_game_prepare(self):
        """ Good prepare case """
        await self.game.prepare_game(self.admin_id)
        self.assertEqual(self.game.mode, GameModes.REGISTRATION)

What's wrong?

I'm not sure I understand your problem precisely. What are you trying to do or what is not working?
Can you provide code that we can run to reproduce your problem, and give more details about the game.Game class?

I Just trying to patch any class to another class (i.e. it child)
game.py file:
class Game:
    async def action(self):
        return 'Original action'

    async def another_action(self):
        return 'Another action'

test_game.py file:
class NewGame(Game):
     async def action(self):
        return 'Patched action'

class TestGame(TestCase):
    async def setUp(self):
        self.game = Game()

    @patch('game.Game', NewGame)
    async def test_game_prepare(self):
        result = await self.game.action()
        self.assertEqual(result, 'Patched action')

Sorry for the very late reply, I missed the notification somehow.
The patch is only effective in the scope of the method it decorates, this means that when you call
self.game = Game()

in the setUp, the patch is not doing anything yet.
You can run the patch in the setUp though:
async def setUp(self):
     with asynctest.patch('game.Game', NewGame):
          self.game = Game()

should work.


When callbacks return false stop the execution of the method

I love the addition of the callbacks!
I have one question: is it possible to stop the execution of the method when a callback returns false? Similar to ActiveRecord.
Say, I have a before_create callback but I want to check if some conditions are true and only then proceed to executing the create method. Would that be possible?
Thank you,
Tanja

@klaut , according to docs like the Active Record methods, the callback chain is aborted as soon as one of the methods in the chain returns false. http://api.rubyonrails.org/classes/ActiveModel/Callbacks.html

in release v1.0.0.beta6 json_api_client include ActiveModel::Callbacks so it has same behavior as callbacks in ActiveRecord

Closed due to inactivity. Feel free to reopen it if needed.


The controlEeg button does not switch back to default state when "stop" is clicked

This is a bug that came about when the start stop buttons were merged into a single button that should switch state instead.
Whenever the "start" button is pressed it turns from green to red, and changes the text to "stop".
The issue is that it doesn't work in reverse for some reason. The button doesn't turn from "stop" to "start" and red to green.

@AnnanLao could you help me with this issue after merging back to master? :)

@AnnanLao could you help me with this issue after merging back to master? :)

Sure


Whatsmeow outdated

Description: nchat is offline, whatsmeow is probably outdated
2024-08-23 10:54:50.063 | INFO  | nchat v4.88  (main.cpp:249)
2024-08-23 10:54:50.063 | INFO  | Arch Linux x86_64  (main.cpp:251)
2024-08-23 10:54:50.063 | INFO  | GCC 14.1.1 20240720 glibc 2.40  (main.cpp:253)
2024-08-23 10:54:50.063 | INFO  | Go 1.22.5  (main.cpp:255)
2024-08-23 10:54:50.063 | INFO  | Telegram ON, WhatsApp ON  (main.cpp:257)
2024-08-23 10:54:50.068 | INFO  | load whatsapp profile  (wmchat.cpp:118)
2024-08-23 10:54:50.071 | INFO  | ui loop start  (ui.cpp:95)
2024-08-23 10:54:55.856 | ERROR | whatsmeow Client outdated (405) connect failure (client version: 2.2412.50)  (gowm.go:455)
2024-08-23 10:54:55.857 | WARN  | Client Outdated  (gowm.go:828)
2024-08-23 10:54:55.948 | WARN  | state not connected 4  (gowm.go:1775)
2024-08-23 10:54:55.986 | ERROR | whatsmeow Error reading from websocket: websocket: close 1006 (abnormal closure): unexpected EOF  (gowm.go:455)
2024-08-23 10:54:56.503 | WARN  | Failed to send presence  (gowm.go:2278)
2024-08-23 10:54:56.554 | WARN  | Failed to send presence  (gowm.go:2278)
2024-08-23 10:54:57.553 | INFO  | ui loop end  (ui.cpp:108)
2024-08-23 10:54:57.553 | WARN  | Failed to send presence  (gowm.go:2278)
2024-08-23 10:54:57.655 | INFO  | exit  (main.cpp:432)

How to reproduce it: run nchat
Environment:

Version: 4.88
OS / distro: Arch Linux

Hi @SeeStarz - thanks for reporting this bug! I will prepare a new release tomorrow which fixes the issue.
As you're on Arch, if you need a workaround, you can uninstall the nchat package and install nchat-git instead. But if you can wait, there will be a release tomorrow, and the nchat AUR package will likely be updated shortly thereafter.

Btw, were you using nchat OK daily before this bug?
I'm just trying to get an idea of how often I need to release nchat going forward. It seems like whatsapp/facebook has shortened their expiration before a client becomes outdated, so the previous quarterly release cycle for nchat will not be sufficient.

@d99kris FWIW I have been using it daily for the last 3-4 weeks.

Hi @d99kris, I'm using nchat daily for about 2 months and I encountered the bug yesterday. If it helps !

I still can't use chat :(

nchat v5.1.29 has now been released, i.e. the source code package. I've also updated the homebrew package.
Regarding the Arch / AUR nchat package I've flagged it out-of-date, but I am not sure when it will be updated.

actually i had a little bug with it not rendering some text correctly (leftovers from other texts) though i'm uncertain how to report it, and i'm not sure how to reproduce it either.
apart from that it has been working very well for the last couple weeks.
regarding the nchat-git package, i saw that on the github page that last change are a couple weeks back. so i assume the difference between nchat-git and nchat is how they fetch dependencies? i'll keep in mind to switch to git version if it breaks anytime in the future.

nchat v5.1.29 has now been released, i.e. the source code package. I've also updated the homebrew package.
Regarding the Arch / AUR nchat package I've flagged it out-of-date, but I am not sure when it will be updated.
Edit: Thanks for providing the data points on usage and when it stopped working. I'll adjust the release cycle for nchat in order to try avoid this issue in the future.

It's already updated and working, thanks!

It's already updated and working, thanks!

Great 👍

actually i had a little bug with it not rendering some text correctly (leftovers from other texts) though i'm uncertain how to report it, and i'm not sure how to reproduce it either.

I think there may be issues with certain emojis in certain terminal emulators, causing something like leftover text. I think red heart (❤) might be one such emoji - there was some discussion in #279.

regarding the nchat-git package, i saw that on the github page that last change are a couple weeks back. so i assume the difference between nchat-git and nchat is how they fetch dependencies?

The AUR package nchat-git will always point to the latest code in nchat master branch (currently it's v5.2.1) irrespective of the Last Updated timestamp on the AUR package page. The nchat AUR package on the other hand, points to the latest stable nchat release (currently it's v5.1.29). Previously this was a quarterly release, but I will probably change it to be monthly instead, due to the WhatsApp client getting outdated faster nowadays.


Release Google.Cloud.PubSub.V1 version 2.3.0

Changes in this release:

Commit 68db70f: fix: Fix error where the lease-extension-delay could be negative. Fixes issue 5866
Commit d856a51: feat: add schema service
Commit 66574a8: feat: Provide emulator detection in PublisherClient/SubscriberClient

Created release for Google.Cloud.PubSub.V1-2.3.0

Created release for Google.Cloud.PubSub.V1-2.3.0


Add Alaska and Hawaii to United States GeoJSON

https://github.com/osmlab/osm-community-index/blob/master/sources/north-america/us/OSM-US-Slack.geojson covers the contiguous 48 states but not Alaska and Hawaii.

They're there, just need to zoom out.  I should convert it to a proper MultiPolygon.

see also https://github.com/osmlab/editor-layer-index/issues/424#issuecomment-370704314

This was fixed - it's a MultiPolygon now
https://github.com/osmlab/osm-community-index/blob/master/features/north-america/us/usa_full.geojson


'No IK solution found' when running program

I saved some gripper poses for a program, but when I try to run it, it fails.
using UR5 robot

this is related to setting up the URcap on the UR5. First try moving it in rviz using motion planning.


Pretty JSON printing for HC.io

Hey Alex, I love Speedtest tracker! A small request, would it be possible to pretty print (line breaks / indent) the JSON for the health checks.io integration? Currently the message body is hard to read.

https://github.com/healthchecks/healthchecks/issues/1090


generated: include 2021 in copyright

I think this got brought in in f015ad5852805d6d5685b500b46889acb223e8e8. We should think about moving that copyright check from the pre-commit (which is optional to install) to a CI job that fails.
Release note:
NONE

Codecov Report

Merging #410 (c8b1f00) into main (f015ad5) will increase coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #410      +/-   ##
==========================================
+ Coverage   77.59%   77.63%   +0.03%
==========================================
  Files         109      109
  Lines        5499     5499
==========================================
+ Hits         4267     4269       +2
+ Misses       1065     1063       -2
  Partials      167      167

Impacted Files
Coverage Δ

cmd/local-user-authenticator/main.go
56.58% <0.00%> (+0.97%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update f015ad5...c8b1f00. Read the comment docs.


CLOUDP-252044: Add missing docker files

Proposed changes

Jira ticket: CLOUDP-252044

Checklist

[x] I have signed the MongoDB CLA
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added any necessary documentation in document requirements section listed in CONTRIBUTING.md (if appropriate)
[ ] I have addressed the @mongodb/docs-cloud-team comments (if appropriate)
[ ] I have updated test/README.md (if an e2e test has been added)
[ ] I have run make fmt and formatted my code

Further comments

[q] Do we have any (e2e) tests that test this images?

yes, they'll run on waterfall, should've scheduled them here but I forgot! will make sure to only close the ticket after they run! thanks


Invalid exception argument

Describe the bug
https://github.com/aspnet/Extensions/blob/master/src/HealthChecks/Abstractions/src/HealthCheckResult.cs#L73
exception: null instead of passing exception argument (maybe because of copy/paste code from Healthy method)
Expected behavior
Pass exception parameter to HealthCheckResult ctor instead of exception: null.

Closing since this is fixed. Thanks!


Package Requested

[X] I would like someone else to build the manifest.
[ ] I would like help so I can submit the manifest.
[X] I have performed a search and couldn't find this package.
[ ] I have checked that the installer for this package is not a standalone or portable executable or a .zip file
[ ] I think there is a new version available and I have provided the URL.

Please provide the following information
Publisher: Ryochan7
Publisher Url: https://github.com/Ryochan7/DS4Windows
Package Name: DS4Windows
Description: DS4Windows is an extract anywhere program that allows you to get the best DualShock 4 experience on your PC. By emulating an Xbox 360 controller, many more games are accessible. Other input controllers are also supported including the DualSense, Switch Pro, and JoyCon controllers (first party hardware only).
Package Version: 3.1.0
Installer URL: https://github.com/Ryochan7/DS4Windows/releases/download/v3.1.0/DS4Windows_3.1.0_x64.zip
Current Package Identifier (for new versions):

Blocked by microsoft/winget-cli#140


add libpod.conf man page (closes #537)

saw this todo open, thought i'd take a whack at it. anything i should add (e.g. SEE ALSO section, or...)?

You will have to fix the Makefile to install into man5 as well as man1.  Probably want to rename all of the existing man pages to 1.md files.

@nathwill Missing a signoff on the commit, can you sign with -s and force-push?

LGTM
@mheon @umohnani8 @baude @TomSweeneyRedHat PTAL

LGTM
@rh-atomic-bot r+

HOMU seems to be hung.


Tap-adroll no longer exists

Migrated from GitLab: https://gitlab.com/meltano/hub/-/issues/250
Originally created by @tayloramurphy on 2022-05-13 22:31:50

Looks like the dreamdata variant was removed. There's a singerio one that's quite old
https://hub.meltano.com/taps/adroll
cc @pnadolny13

View 1 previous comment from the original issue on GitLab


Upgrade ExtraBuildPhase to 0.3

Thank you for the contribution. It was merged directly as 16d4a5b1450915652eed9b6da1c884f2db53614e to keep commit history cleaner. Your contribution is still credited to you.

:pray:


IPAM MetalLB pool init race condition

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
Hello guys, thank you for your project. I know that the ipam implementation built on metallb is no longer supported. But I want to report a problem when, due to a race condition, there is a possibility that the ipam pool was inited
too early, which can lead to a change in already allocated addresses on services. Namely, we put events about services in a queue (without waiting for the event to be processed), we may have events when the reconcile loop performs slowly (the queue is slowly cleared, for example, the api-server has become slow), which can lead to a problem when not all objects have been processed from the queue yet and the pool initialization flag was already set.
➜  control-plane git:(master) ✗ kubectl -n kube-system get service
NAME              TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)                  AGE
a                 LoadBalancer   <IP_ADDRESS>   <IP_ADDRESS>     8888:30004/TCP           4m11s
b                 LoadBalancer   <IP_ADDRESS>   <IP_ADDRESS>     8888:30083/TCP           13m
c                 LoadBalancer   <IP_ADDRESS>     <IP_ADDRESS>     8888:31530/TCP           13m
cilium-agent      ClusterIP      None           <none>        9095/TCP                 2d1h
cilium-operator   ClusterIP      None           <none>        6942/TCP                 2d1h
kube-dns          ClusterIP      <IP_ADDRESS>     <none>        53/UDP,53/TCP,9153/TCP   2d1h
➜  control-plane git:(master) ✗ kubectl apply -f a
service/aa created
service/a unchanged
service/b unchanged
service/c unchanged
➜  control-plane git:(master) ✗ kubectl -n kube-system scale --replicas 2 deployment cilium-operator
deployment.apps/cilium-operator scaled
➜  control-plane git:(master) ✗ kubectl -n kube-system get service
NAME              TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)                  AGE
a                 LoadBalancer   <IP_ADDRESS>   <IP_ADDRESS>     8888:30004/TCP           4m18s
aa                LoadBalancer   <IP_ADDRESS>   <pending>     8888:32599/TCP           5s
b                 LoadBalancer   <IP_ADDRESS>   <IP_ADDRESS>     8888:30083/TCP           13m
c                 LoadBalancer   <IP_ADDRESS>     <IP_ADDRESS>     8888:31530/TCP           13m
cilium-agent      ClusterIP      None           <none>        9095/TCP                 2d1h
cilium-operator   ClusterIP      None           <none>        6942/TCP                 2d1h
kube-dns          ClusterIP      <IP_ADDRESS>     <none>        53/UDP,53/TCP,9153/TCP   2d1h
➜  control-plane git:(master) ✗ kubectl -n kube-system get service
NAME              TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)                  AGE
a                 LoadBalancer   <IP_ADDRESS>   <IP_ADDRESS>     8888:30004/TCP           4m20s
aa                LoadBalancer   <IP_ADDRESS>   <IP_ADDRESS>     8888:32599/TCP           7s
b                 LoadBalancer   <IP_ADDRESS>   <IP_ADDRESS>     8888:30083/TCP           13m
c                 LoadBalancer   <IP_ADDRESS>     <IP_ADDRESS>     8888:31530/TCP           13m
cilium-agent      ClusterIP      None           <none>        9095/TCP                 2d1h
cilium-operator   ClusterIP      None           <none>        6942/TCP                 2d1h
kube-dns          ClusterIP      <IP_ADDRESS>     <none>        53/UDP,53/TCP,9153/TCP   2d1h

Cilium Version
1.14.6
Kernel Version
5.15.0-73-generic
Kubernetes Version
Server Version: v1.22.17
Sysdump
No response
Relevant log output
No response
Anything else?
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

It may be deprecated, but it's not unsupported. This seems like a good bug, nice catch!


Seeking additional maintainers

Hey everyone, I don't have the energy to maintain big open-source projects anymore and apex(1) does what I need it to do personally, so if anyone is interested in helping to maintain let me know! I'm not sure how to add people to the OpenCollective but you'll be on there to receive donations as well to help pay for the efforts, may not be much but at least it keeps the coffee flowing!

Awesome appreciate it man! I'd definitely like to just be passive in the whole thing. Hopefully we can get a few people interested, nice to have at least two for reviews

I'm interested. I'm fine reviewing prs and merging them. Not sure how much actual new development I can contribute.

Hi @tj , I'd like to take a part.

Send you both invites!

I'm happy to look through PR's and, should timing permit, work on new features.

I'm a noob but I'm interested in helping

Sign me up too. Apex is my hammer at the moment, happy to help out.

Sign me up too, +1

Same

Working on a "microservice on Lambda with AWS" project right now, Apex seems to be a cool approach to that, sign me in!

@tj thanks for this awesome lib! Sign me up too (if you're still looking for more maintainers).


Email issue

https://rollbar.com/howtohireme/givemepoc.org/items/25/occurrences/45286536112/
Not sure what happened. Maybe some network issue.

as an option, there may still be problems with setting up account security
example:
https://toster.ru/q/139273
https://stackoverflow.com/questions/18124878/netsmtpauthenticationerror-when-sending-email-from-rails-app-on-staging-envir
but, since the problem did not recur anymore, it's hard to know the reason.

Let close it for new then. We'll investigate it deeper, if it happens again.


don't run router on initial load of item page

Who is this for?
ref #5939
People wanting more accurate analytics, and better perf on page
What is it doing for them?
Stops running Router.replace on the initial load of the page for page state that only changes once the page has loaded.

@jamesgorrie Thanks for this. Apart from the words, "item page," I didn't spot this was anything to do with removing duplicates. I'll close https://github.com/wellcomecollection/wellcomecollection.org/issues/5998 now.

@jamesgorrie Thanks for this. Apart from the words, "item page," I didn't spot this was anything to do with removing duplicates. I'll close https://github.com/wellcomecollection/wellcomecollection.org/issues/5998 now.

Apologies, I should have pinged you on this - I'll be sure to in future.

Apologies, I should have pinged you on this - I'll be sure to in future.

@jamesgorrie no worries. It happens.
I recognise the tick boxes in 5939 from our conversation but an @ is always good. In fact, without an @ I just don't see them. It's also true that I'm not always at the search stand up so will miss things.

@jamesgorrie no worries. It happens.
I recognise the tick boxes in 5939 from our conversation but an @ is always good. In fact, without an @ I just don't see them. It's also true that I'm not always at the search stand up so will miss things.


document correct usage for library authors

This addresses #11:

When using another smart-contract as dependency it also generates it's security.txt.
The compiler is helpful here and prevents two conflicting security.txt being present.
Dependencies have to omit emitting the security.txt. Solana contracts already use the no-entrypoint feature to avoid including entrypoints of dependent smart-contracts, this can easily be adapted here.
We have brainstormed a bit, but there doesn't seem to be a fool-proof solution for solving this automatically. So there isn't much we can do about that from the perspective from this crate. The decision to include or not include the macro always has to happen from the caller, and we cannot introspect if the parent is compiled with no-entrypoint.
This aspect is currently lacking from the documentation, working on a pull-request to fix this, and make it very clear that if you expect to be included as dependency and have an exposed no_entrypoint feature, you have to put the security.txt under that as well:
#[cfg(not(feature = "no-entrypoint"))]
security_txt! {
...
}

Unfortunately, this issue means contracts that currently do not do this cannot be used as a dependency until they are updated.

Let's add the conditional to the example in security-txt/src/lib.rs as well.

Oops, done.


Tileserver: Tessera serve pbf's directly to clients like Mapbox Studio

Another thing about tessera. It does not serve pbf files directly to clients like e.g. Mapbox Studio or Mapbox GL. This should be added in the future as well.

Created an issue at the tessera project.
https://github.com/mojodna/tessera/issues/30

I think we should move this feature into the STABLE milestone and focus entirely on getting the source style and vector tiles produced in BETA milestone.
Tileserver PHP works quite wonderful with serving the vector tiles to MapboxStudio, I think of including it in the vectortile server just for the nice display and serving the PBFs to Mapbox Studio. This means the Docker image will get a bit fatter.
The rendering would be taken over by tessera (with an Apache redirect rule like the one that is used to redirect to the filesystem).
One architecture I would fancy:

+1


Add missing action to pause and unpause an agent (#2494)

Pull request opened by the merge tool on behalf of #2494

Merged in cd79f95fbc8c77fe8223d98a23ccd82992ca35c0


Fix retethering issue when anchor refs are removed

@zackbloom
I am working on a hubspot app that has a very dynamic, multi-page onboarding flow. The problem happens after the user finishes a flow and then decides to start it over. This situation might apply more broadly as well.
Current behavior (attaches to 0,0)

Fixed behavior (attaches to element)

The issue comes from the fact that the user options opts.element reference is overwritten when setting the element reference using document.getQuerySelector and stays in memory. Unless the steps are explicitly removed and added again (which, in practice, is not intuitive) the elements are never relieved of their reference and thus will always re-attach to the historical first reference that has no presence on the page.
(Additionally, a deep extend would have worked nicely here but it seems like that doesn't happen in Tether utils). Nevermind that doesn't apply here

@zackbloom anything else need tweaking before this is merged?

:+1:

@zackbloom im going to merge this

Publishing as 1.6.0 shortly...


BUG: Pie Chart, going from 2 elements to 1 does not reset properly

I'm trying to create an interaction where a pie chart evolves as I click buttons, but when the chart goes back to 1 item, it shows 2. I'm just cycling through static JSON files, so nothing is being added to the data. It works for 1 item on load (see gif) but when I return to 1 item, it fails. I see two integers for the data array, even though I'm only passing 1 to the component.

Sorry for the late reply @threecity. Do you have a fiddle that reproduces this?

I had this same issue a while ago. I figured out it was an issue with my remove button (your back).
I used the .pop() function on the wrong place (too late or too early, can't remember)
Something like:
window.pieChart.config.data.datasets[0].data.pop();
window.pieChart.config.data.labels.pop();

Probably the same thing happens here

Closing because we can't debug without a test case but feel free to reopen when you can provide a jsfiddle that reproduces your issue (and the Chart.js version you are using).


Don't clone values when calculating storage root

Instead of cloning all the keys and values of the overlay when
calculating the storage root, we pass all the values by reference. This
should probably bring some performance improvements when calculating the
storage root.

/bench import/wasm

/bench import/wasm

/bench import/full-wasm

no cow version https://github.com/cheme/substrate/commit/4277358ebe4cd00af0fc0331758bb6ac34457939
About the bench, I think even if there is no visible change, I am happy not having the clone.

no cow version cheme@4277358
About the bench, I think even if there is no visible change, I am happy not having the clone.

I added the Cow out of reason, because otherwise full_storage_root could not be implemented. Did it worked with your branch?

I actually started this PR because of a change I needed in Cumulus. In the end I thought that we would see some improvement of the performance, but yeah that is not right. I think to see the performance benefit we need a MemoryDB that uses Cow that does not clone the data internally.


[FEATURE] Implemented removal methods for AzureAiSearchEmbeddingStore

implemented remove(String id), removeAll(), removeAll(Collection ids), removeAll(Filter filter) methods for AzureAiSearchEmbeddingStore

Issue
Fixes #1467

Change

implemented remove(String id), removeAll(), removeAll(Collection ids), removeAll(Filter filter) methods for AzureAiSearchEmbeddingStore.
Added awaitUntilPersisted() after remove methods are called.
Created AzureAiSearchEmbeddingStoreRemovalIT class to test the changes done

General checklist

[x] There are no breaking changes
[x] I have added unit and integration tests for my change
[x] I have manually run all the unit and integration tests in the module I have added/changed, and they are all green
[ ] I have manually run all the unit and integration tests in the core and main modules, and they are all green

[ ] I have added/updated the documentation
[ ] I have added an example in the examples repo (only for "big" features)

implemented the PR review comments

I added a comment for https://github.com/langchain4j/langchain4j/pull/1563/files#diff-06626224ac1d5b77af8075520d1a9a3a179f5cc20e544fa37833e9bdf28ff9e9
Not sure though how to ideomatically use the SearchClient.


Make it possible to reference anchors, defined in the manifest, from opsfile

When I tried to do this I got the following error:
invalid argument for flag `-o, --ops-file' (expected []cmd.OpsFileArg): Deserializing ops file bosh-dns.yml': yaml: unknown anchor 'db' referenced

@s-matyukevich currently expected since anchors get resolved way before we get yaml objects. unfortunately (or fortunately) not much we can do besides documenting the behavior.
i would recommend though to consider using link as 99% of places where anchor is being used should probably be really a link.


fargate only example with monitoring and logging solutions

What does this PR do?

Motivation

More

[x] Yes, I have tested the PR using my local account setup  (Provide any test evidence report under Additional Notes)
[x] Yes, I have added a new example under examples to support my PR
[ ] Yes, I have created another PR for add-ons under add-ons repo (if applicable)
[ ] Yes, I have updated the docs for this feature
[x] Yes, I ran pre-commit run -a with this PR

Note: Not all the PRs required examples and docs except a new pattern or add-on added.
For Moderators

[ ] E2E Test successfully complete before merge?

Additional Notes

It is an example for Fargate only cluster with monitoring and logging solutions. Detailed info can be found at readme at https://github.com/season1946/terraform-aws-eks-blueprints/tree/main/examples/observability/fargate-metric-logging

@askulkarni2 this pr is for demoing the monitoring and logging solutions for Fargate only cluster. I wrote an email about this idea before which was inspired with our cases in Data lab. Could you please review and let me know your opinion? thanks.

hi @season1946 - can we start with an issue to describe what the goal(s) are, the problem(s) we are solving for, etc. before jumping into a PR? We do have an existing Fargate example that we can leverage as well instead of a net new example for this. Once the details are fleshed out we can look at re-opening this PR or a new one. Thanks!

@bryantbiggs thanks for the feedback.
This example is for demoing monitoring and logging solutions for EKS Fargate only cluster. I see we have a similar example at
https://github.com/season1946/terraform-aws-eks-blueprints/tree/main/examples/observability/amp-amg-opensearch
But that one is for EC2 based EKS cluster. Since some unique features in fargate, that solution cannot be applied to Fargate directly. Below is the intro of our example. The focus is on observability and that is why I put it under /examples/observability/. please let me know your opinion. thanks.
"Running EKS cluster under pure serverless mode is attracting more and more attention recently for cost reduction and administration work offload. However, it is not an easy job to provision such a cluster with well-equipped monitoring and logging solutions. User has to search around to get different open source kubernetes components working on Fargate. In this example, we will walk through a way using EKS blueprints and ArgoCD to quickly provision a fargate only EKS cluster. It will also equip the cluster with Fluent bit and Amazon OpenSearch as logging solution, and use AWS Distro for OpenTelemetry (ADOT), Amazon Managed Service for Prometheus (AMP) for monitoring"


"Cannot delete or update a parent row" when making changes to page with specific plugin

Description
A plugin on my page is causing problems: When I try to publish any change on the page I get an error saying (my app is called "oekf"):
ERROR 2020-09-28 20:55:42,085 6 django.request.log_response: Internal Server Error: /da/admin/cms/page/7/delete/
Traceback (most recent call last):
  File "/home/oekf/.virtualenvs/oekfpy35/lib/python3.5/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/home/oekf/.virtualenvs/oekfpy35/lib/python3.5/site-packages/django/db/backends/mysql/base.py", line 71, in execute
    return self.cursor.execute(query, args)
  File "/home/oekf/.virtualenvs/oekfpy35/lib/python3.5/site-packages/MySQLdb/cursors.py", line 206, in execute
    res = self._query(query)
  File "/home/oekf/.virtualenvs/oekfpy35/lib/python3.5/site-packages/MySQLdb/cursors.py", line 319, in _query
    db.query(q)
  File "/home/oekf/.virtualenvs/oekfpy35/lib/python3.5/site-packages/MySQLdb/connections.py", line 259, in query
    _mysql.connection.query(self, query)
MySQLdb._exceptions.IntegrityError: (1451, 'Cannot delete or update a parent row: a foreign key constraint fails (`oekf$default`.`oekf_contactinfo`, CONSTRAINT `oekf_contactinfo_cmsplugin_ptr_id_e68f18e6_fk_cms_cmsplugin_id` FOREIGN KEY (`cmsplugin_ptr_id`) REFERENCES `cms_cmsplugin` (`id`))')

My plugin, oekf_contactinfo is a simple, custom plugin that displays some contact information from data retrieved from my Django models.
Steps to reproduce
The error occurs every time I try to publish something on the page, even changes in other plugins. I have tried to delete the plugin from my page but get the same error. I have even tried to delete the page, but still I get the same error.
Expected behaviour
See above.
Actual behaviour
See above
Additional information
I am using
Django 2.2.15
Django CMS 3.7.4
Python 3.5

@ebugge Can you please post your plugin in cms_plugns.py and the model in models.py?

@Aiky30 Is it the CMSPlugin model you want to see? Because I have that in cms_plugins.py along with the plugin declaration:
from cms.models.pluginmodel import CMSPlugin
from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
from django.db import models
from django.utils.translation import ugettext_lazy as _

from oekf.models import *

import logging
logger = logging.getLogger(__name__)

class ContactInfo(CMSPlugin):
    redirect_title = models.CharField(max_length=50)
    male_header = models.CharField(max_length=50, null=True)
    female_header = models.CharField(max_length=50, null=True)

class ContactInfoPlugin(CMSPluginBase):
    model = ContactInfo
    render_template = "components/contact_info.html"
    name = _("Contact_info")
    cache = False

    def render(self, context, instance, placeholder):
        context['instance'] = instance
        coaches = Coach.objects.select_related('team', 'coach').all()
        male_teams = {}
        female_teams = {}
        for coach in coaches:
            if coach.team.gender is Gender.Male:
                if not coach.team.id in male_teams:
                    male_teams[coach.team.id] = { 'team': coach.team, 'coaches': [] }
                male_teams[coach.team.id]['coaches'].append(coach)
            elif coach.team.gender is Gender.Female:
                if not coach.team.id in female_teams:
                    female_teams[coach.team.id] = { 'team': coach.team, 'coaches': [] }
                female_teams[coach.team.id]['coaches'].append(coach)

        context['male_teams'] = sorted(list(male_teams.values()), key=lambda x: x['team'].contact_info_order)
        context['female_teams'] = sorted(list(female_teams.values()), key=lambda x: x['team'].contact_info_order)
        context['team_types'] = Team.Type.values
        context['coach_types'] = Coach.Type.values

        return context

plugin_pool.register_plugin(ContactInfoPlugin)

@ebugge This is a very strange issue to be getting on a simple plugin.
Has the plugins migrations been created and ran fully?
Also has this plugin been working in the past and then the issue just started?

@Aiky30
This is a new plugin I've just created and put on a page. I saw the error the first time I tried to edit the page where the plugin is used, so it seems like it has been there from the beginning. I have checked the migrations table and the table/column changes that were made when the migration-scripts were applied and everything seems to be in order.
You write that this is a strange issue for this type of plugin. What does the error message tell you (aside from the obvious that the fk constraint fails)?

@ebugge My apologies for the delayed reply, I missed your reply somehow. I find this strange because the model structure looks ok. I can only think that the plugin model is duplicated / reused somewhere else hence why it is not allowed to be deleted.
Does the issue occur on a new page when you add the plugin from fresh? I ask this to see if the page with the issue contains an instance where you had past changes.

Don't apologize :)
I just tested it on a new page and it works. I then went back to does some changes to the page where the problem originally came up and now it works on this page too! I have now idea what fixed it because I haven't worked on the site for some time now.
In any case, it works now and I can't get reproduce the error on any pages, so I am closing this issue. Thanks for your inputs anyway @Aiky30

Reopening this as it has occurred again, when I created a new plugin.
The error is the same:
django.db.utils.IntegrityError: (1451, 'Cannot delete or update a parent row: a foreign key constraint fails (oekf$default.oekf_youtubevideo, CONSTRAINT oekf_youtubevideo_cmsplugin_ptr_id_c9b10230_fk_cms_cmsplugin_id FOREIGN KEY (cmsplugin_ptr_id) REFERENCES cms_cmsplugin (id))')


How to keep up to date with latest icon packages?

Hi,
I'm using FontAwesome icons package in my app but can't find a way to make the latest icons work.
For example the calendar-check-o seems which is old works fine but the calendar-plus-o which is newer doesn't.
How can I get the latest icons work?

Since the package doesn't come with an installer there is no other solution rather than updating them manually for now.
You can always use node ./node_modules/react-native-vector-icons/generate-icon.js LOCATION_TO_UPDATED_CSS --componentName=FontAwesome--fontFamily=font-awesome-p=.fa- > ./src/components/icons/YourComponent.js

erm I having trouble on keeping this module up to date, I see there is already a "material community icons" font in this repo but it just doesn't get up to date on my local.

@vincent-louis: that was recently merged in and was just released on npm. try updating to 4.0.0.

@oblador got it! thanks!


Tables rendering incorrectly after minification

EDIT: After a lot of fiddling around, I realized that postCSS was removing some CSS from the final that I actually needed. I was able to fix this issue by modifying postcss.config.js to whitelist table headers and cells.
The fix looks something like this:
const autoprefixer = require('autoprefixer');
const purgecss = require('@fullhuman/postcss-purgecss');
const whitelister = require('purgecss-whitelister');

module.exports = {
  plugins: [
    autoprefixer(),
    purgecss({
      content: [
        './layouts/**/*.html',
        './content/**/*.md',
      ],
      safelist: [
        'lazyloaded',
        'th',
        'td',
        ...whitelister([
          './assets/scss/components/_code.scss',
          './assets/scss/components/_search.scss',
          './assets/scss/common/_dark.scss',
        ]),
      ],
    }),
  ],
}

This seems to be working for now, but I think that common markdown stuff should be whitelisted by default.
Description
I created a table using Markdown and locally the table renders correctly, but when I the CSS is minified into a single file and displayed on the web, I'm not sure why, but the new CSS is not rendering tables as I would expect. I've narrowed this down to the line postCSS (dict "config" "config/postcss.config.js") in stylesheet.html. It appears that removing this fixes it. Perhaps the purge function is getting rid of stuff that I actually need?
Steps to reproduce
The project can be found here: https://github.com/ElectricBlocks/electricblocks.github.io
I created a table using the following code:
{{
}}

| Index | # Bytes | Data Type | Variable | Purpose |
|-------|---------|-----------|----------|---------|
| 0 - 3 | 4       | int       | x        | x coord of updated TE|
| 4 - 7 | 4       | int       | y        | y coord of updated TE|
| 8 - 11| 4       | int       | z        | z coord of updated TE|
| 12    | 1       | boolean   | inService| Is TE enabled? |
| 13 - 16| 4 | int | numInputs | # of inputs to a TE|
| 17 - end | 8 * numInputs| double[] | inputs | Double array of TE inputs|
{{
}}

The shortcode for table is defined as:
{{ $htmlTable := .Inner | markdownify }}
{{ $class := .Get 0 }}
{{ $old := "
" }}
{{ $new := printf "
" $class }}
{{ $htmlTable := replace $htmlTable $old $new }}
{{ $htmlTable | safeHTML }}

Expected result
When viewed on localhost, it renders correctly like this:

Actual result
When minified and pushed to github pages, the table renders like this:

Environment
npm run check

><EMAIL_ADDRESS>precheck
> npm version

{
  doks: '0.1.5',
  npm: '7.3.0',
  node: '15.5.0',
  v8: '8.6.395.17-node.23',
  uv: '1.40.0',
  zlib: '1.2.11',
  brotli: '1.0.9',
  ares: '1.17.1',
  modules: '88',
  nghttp2: '1.41.0',
  napi: '7',
  llhttp: '2.1.3',
  openssl: '1.1.1i',
  cldr: '38.0',
  icu: '68.1',
  tz: '2020b',
  unicode: '13.0'
}

><EMAIL_ADDRESS>check
> hugo version

Hugo Static Site Generator v0.80.0-792EF0F4/extended linux/amd64 BuildDate: 2020-12-31T13:46:18Z

This seems to be working for now, but I think that common markdown stuff should be whitelisted by default.

Think so too — I will add the standard table classes:
'table',
'thead',
'tbody',
'tr',
'th',
'td',


Build does not report failure on Windows

Sorry, there are a couple of changes in here:

Added some quotes around %BUILDKITE_BUILD_DIR% in case BuildKite is installed in Program Files. Who would put it there though, right? :)
Converted line endings to CRLF (sorry). I often only have notepad available on a server & this is a bit more user-friendly. I always run autocrlf false and trust contributors to do the right thing on a per-file basis, but if you guys use a different policy I can redo the PR.
%ERRORLEVEL% does not work the way you’d expect inside IF blocks (it’s expanded prior to the block being executed). This requires SETLOCAL ENABLEDELAYEDEXPANSION and the use of !ERRORLEVEL! inside the blocks. See http://stackoverflow.com/a/4368104/47636. Yes, we all learned something today.

This bootstrap is running okay on my build server now, although no doubt something else will crop up.

Thanks @samritchie! I'll review shortly and let you know - but from just a quick scan, looks good :) I'm not too fussed about the line endings, just makes it hard to see what's actually changed in the diff.

It would have made much more sense to do two separate commits. I’m older and wiser now.


Add Anaconda Distribution primer

This is a great resource to aid those who are looking to use the Anaconda Python Distribution.

Thanks! :)

Glad to help!
On Wed, Jan 20, 2016 at 3:55 PM, Kiran Gangadharan<EMAIL_ADDRESS>
wrote:

Thanks! :)
—
Reply to this email directly or view it on GitHub
https://github.com/kirang89/pycrumbs/pull/104#issuecomment-173390784.

--
http://mmartinez.us
520-730-6507
<EMAIL_ADDRESS>


Revert "Type cast before normalize segformer"

Reverts amyeroberts/transformers#8

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.