Notifications/notify does not work

I use the example BLE_client to connect EPS32 with a ble device, but the program doesn't run to notifyCallback.  Here is the log
Forming a connection to a4:c1:38:98:78:a7
 - Created client
[D][BLEClient.cpp:75] connect(): >> connect(a4:c1:38:98:78:a7)
E (4848) BT: btc_gattc_call_handler()
[D][BLEDevice.cpp:105] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 3] ... ESP_GATTC_REG_EVT
[D][BLEUtils.cpp:1344] dumpGattClientEvent(): GATT Event: ESP_GATTC_REG_EVT
[D][BLEUtils.cpp:1516] dumpGattClientEvent(): [status: ESP_GATT_OK, app_id: 0x0]
[D][BLEDevice.cpp:105] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 3] ... ESP_GATTC_CONNECT_EVT
[D][BLEUtils.cpp:1344] dumpGattClientEvent(): GATT Event: ESP_GATTC_CONNECT_EVT
[D][BLEUtils.cpp:1374] dumpGattClientEvent(): [conn_id: 0, remote_bda: a4:c1:38:98:78:a7]
[D][BLEDevice.cpp:105] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 3] ... ESP_GATTC_OPEN_EVT
[D][BLEUtils.cpp:1344] dumpGattClientEvent(): GATT Event: ESP_GATTC_OPEN_EVT
[D][BLEUtils.cpp:1469] dumpGattClientEvent(): [status: ESP_GATT_OK, conn_id: 0, remote_bda: a4:c1:38:98:78:a7, mtu: 23]
[D][BLEClient.cpp:104] connect(): << connect(), rc=1
 - Connected to server
 - Found our service
[D][BLERemoteService.cpp:165] retrieveCharacteristics(): >> getCharacteristics() for service: 0000ffe0-0000-1000-8000-00805f9b34fb
[D][BLERemoteService.cpp:250] retrieveCharacteristics(): Found a characteristic: Handle: 19, UUID: 0000ffe1-0000-1000-8000-00805f9b34fb
[D][BLERemoteCharacteristic.cpp:40] BLERemoteCharacteristic(): >> BLERemoteCharacteristic: handle: 19 0x19, uuid: 0000ffe1-0000-1000-8000-00805f9b34fb
[D][BLERemoteCharacteristic.cpp:283] retrieveDescriptors(): >> retrieveDescriptors() for characteristic: 0000ffe1-0000-1000-8000-00805f9b34fb
[E][BLERemoteCharacteristic.cpp:314] retrieveDescriptors():
...
[D][BLERemoteCharacteristic.cpp:472] registerForNotify(): >> registerForNotify(): Characteristic: uuid: 0000ffe1-0000-1000-8000-00805f9b34fb, handle: 19 0x13, props: broadcast: 0, read: 0, write_nr: 0, write: 0, notify: 1, indicate: 0, auth: 0
[D][BLEDevice.cpp:105] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 3] ... ESP_GATTC_REG_FOR_NOTIFY_EVT
[D][BLEUtils.cpp:1344] dumpGattClientEvent(): GATT Event: ESP_GATTC_REG_FOR_NOTIFY_EVT
[D][BLEUtils.cpp:1532] dumpGattClientEvent(): [status: ESP_GATT_OK, handle: 19 0x13]
[D][BLERemoteCharacteristic.cpp:503] registerForNotify(): << registerForNotify()
We are now connected to the BLE Server.

and it does't print anymore....
I try to connect to the device with my Phone using FastBLE and my device notify ok
I think we can test it using example BLE_notify and BLE_client
emmm.... But I only have one ESP32 :(

Can you paste please notify callback?

I didn't modify the callback function.
static void notifyCallback(
  BLERemoteCharacteristic* pBLERemoteCharacteristic,
  uint8_t* pData,
  size_t length,
  bool isNotify) {
    Serial.print("Notify callback for characteristic ");
    Serial.print(pBLERemoteCharacteristic->getUUID().toString().c_str());
    Serial.print(" of data length ");
    Serial.println(length);
}

From what I can see here, it appears that your ESP32 is acting a BLE client to a remote BLE server.  It connects to the service with UUID 0000ffe0-0000-1000-8000-00805f9b34fb, finds a characteristics with UUID 0000ffe1-0000-1000-8000-00805f9b34fb and then registers for a notification on that characteristic.  What that means is that when the BLE server maintained value of the characteristic changes, the BLE server will publish a notification of the new value.
From your story, I am sensing that we aren't seeing any messages being issued from the notification callback.  Do we have confidence that the BLE server is in fact changing its characteristic values?

In my story, if i don't do some authentication, My BLE server keep notify the same value.
I want to figure out that My BLE server is really notifying instead of the app read the value every interval (Sorry for my poor English ,)
I download the example BLE_notify to ESP32 and connet it using my phone

void loop() {

  if (deviceConnected) {
    Serial.printf("*** NOTIFY: %d ***\n", value);
    pCharacteristic->setValue(&value, 1);
    pCharacteristic->notify();
    //pCharacteristic->indicate();
    value++;
  }
  delay(2000);
}

then I Connect my BLE Server, it notify about every 200ms , although the value didn't change.

if (pRemoteCharacteristic_RX->canIndicate() == true) {
    Serial.println("{\"debug\":\"Indicate supported\"}");
  } else {
    Serial.println("{\"debug\":\"Indicate not supported\"}");
  }

  if (pRemoteCharacteristic_RX->canNotify() == true) {
    Serial.println("{\"debug\":\"Notify supported\"}");
  } else {
    Serial.println("{\"debug\":\"Notify not supported\"}");
  }
...
// Read the value of the characteristic. Very important.
  std::string value = pRemoteCharacteristic_RX->readValue();
...
const uint8_t bothOff[]       = {0x0, 0x0};
const uint8_t notificationOn[] = {0x1, 0x0};
const uint8_t indicationOn[]   = {0x2, 0x0};
const uint8_t bothOn[]         = {0x3, 0x0};
  pRemoteCharacteristic_RX->getDescriptor(BLEUUID((uint16_t)0x2902))->writeValue((uint8_t*)indicationOn, 2, true);

thanks for ur code,
    Serial.println(" - Found our characteristic");

    Serial.println(pRemoteCharacteristic->canNotify());
    Serial.println(pRemoteCharacteristic->canRead());
    Serial.println(pRemoteCharacteristic->canIndicate());

    Serial.println(pwRemoteCharacteristic->canNotify());
    Serial.println(pwRemoteCharacteristic->canWrite());

    pwRemoteCharacteristic->writeValue(con,9);                           //auth

Hear is the Serial output
 - Found our characteristic
1
0
0
0
1

if I auth success , my device will show a bluetooth icon , I'm sure the authentication is successful.
after the authentication , the value notify like this

add this in your init of the notifications on the client side:
pRemoteCharacteristic->readValue();
pwRemoteCharacteristic->readValue();
const uint8_t notificationOn[] = {0x1, 0x0};
pRemoteCharacteristic->getDescriptor(BLEUUID((uint16_t)0x2902))->writeValue((uint8_t*)notificationOn, 2, true);

the pRemoteCharacteristic->canRead() returns false ...
but it doesn't matter if i read the Characteristic
 if (connected) {
      // Read the value of the characteristic.
    std::string value = pRemoteCharacteristic->readValue();
    byte buf[64]= {0};
    memcpy(buf,value.c_str(),value.length());
    Serial.print("The characteristic value was: ");
    for(int i=0; i < value.length(); i++)
    {
      Serial.print(buf[i],HEX);
      Serial.print(" ");
     }
     Serial.println();

  }

The characteristic value was: 12 F 20 A7 78 98 38 C1 A4 36 3 36 0 1 5 0 0 0 0 0
[D][BLERemoteCharacteristic.cpp:433] readValue(): >> readValue(): uuid: 0000ffe1-0000-1000-8000-00805f9b34fb, handle: 19 0x13
[D][BLEDevice.cpp:105] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 3] ... ESP_GATTC_READ_CHAR_EVT
[D][BLEUtils.cpp:1344] dumpGattClientEvent(): GATT Event: ESP_GATTC_READ_CHAR_EVT
[D][BLEUtils.cpp:1493] dumpGattClientEvent(): [status: ESP_GATT_OK, conn_id: 0, handle: 19 0x13, value_len: 20]
[D][BLERemoteCharacteristic.cpp:455] readValue(): << readValue(): length: 20
The characteristic value was: 12 F 20 A7 78 98 38 C1 A4 36 3 36 0 1 5 0 0 0 0 0
[D][BLERemoteCharacteristic.cpp:433] readValue(): >> readValue(): uuid: 0000ffe1-0000-1000-8000-00805f9b34fb, handle: 19 0x13
[D][BLEDevice.cpp:105] gattClientEventHandler(): gattClientEventHandler [esp_gatt_if: 3] ... ESP_GATTC_READ_CHAR_EVT
[D][BLEUtils.cpp:1344] dumpGattClientEvent(): GATT Event: ESP_GATTC_READ_CHAR_EVT
[D][BLEUtils.cpp:1493] dumpGattClientEvent(): [status: ESP_GATT_OK, conn_id: 0, handle: 19 0x13, value_len: 20]
[D][BLERemoteCharacteristic.cpp:455] readValue(): << readValue(): length: 20
The characteristic value was: 12 F 20 A7 78 98 38 C1 A4 36 3 36 0 1 5 0 0 0 0 0

The characteristic value is correct ,
but  the value should be change when i auth  ok .
later i will show you a gif

@forhuan not sure if this is still a issue (it's been a while since this issue was opened), but I ran into the same problem.
I was able to fix it (at least for my use case) and issued a PR (nkolban/ESP32_BLE_Arduino#17).

@robertklep thanks for patch, but the problem is that PR in ESP32_BLE_Arduino wont be merged. Its because this repo is master and arduino repo is just rewrited from this repo, so after new version realease your patch will vanish.

@chegewara oh dang :( I'll issue a PR against this repo then!

@pit001 and @robertklep thank you for your code!
For arduino-esp32 1.0.0 I see that both your contributions are required to get notifications working: #595 and the code below are not merged in there.
const uint8_t notificationOn[] = {0x1, 0x0};
pRemoteCharacteristic->getDescriptor(BLEUUID((uint16_t)0x2902))->writeValue((uint8_t*)notificationOn, 2, true);

The code from @pit001 is added as https://github.com/nkolban/esp32-snippets/blob/c48cb19186744f5792b37060b4ae9b1c36b422df/cpp_utils/BLERemoteCharacteristic.cpp#L461-L464.


feat: make the project installable with a Makefile

This patch adds a small POSIX Makefile so that Doxygen Awesome can be easily installed, by running make install.
The file works on Linux, BSDs, macOS, and possibly even Windows.
This is mostly useful for distributions, so that they can easily package this project in a uniform way; in fact, I wrote this because I'm packaging Doxygen Awesome for Debian :)
A default installation would look like this:
$ tree usr
usr
└── local
   └── share
      └── doxygen-awesome-css
         ├── doxygen-awesome-darkmode-toggle.js
         ├── doxygen-awesome-fragment-copy-button.js
         ├── doxygen-awesome-interactive-toc.js
         ├── doxygen-awesome-paragraph-link.js
         ├── doxygen-awesome-sidebar-only-darkmode-toggle.css
         ├── doxygen-awesome-sidebar-only.css
         └── doxygen-awesome.css

in fact, I wrote this because I'm packaging Doxygen Awesome for Debian

Wow, cool to hear that! 😎
If I understand it correctly a user could use this Makefile (or the debian package) to install the theme globally on the system and then reference it with absolute paths from a project documentation? Or one could also override the PREFIX variable and use the makefile for a local install into a project directory?
It would be nice if you could provide some documentation of the feature and how it can be useful, either in the README or maybe on "Tips & Tricks"? Otherwise I can also try to put it in my own words and ask for your feedback. 😊

Yep, exactly! I'll add some documentation as soon as possible :)

I've added a couple of lines to the readme, let me know if I need to tweak something :)


headers generated with "csv-label" do not follow order set by "csv-column-order"

I am able to generate a csv with headers "A, B, C" via "csv-label = true"
If I additionally specify a column order via "csv-column-order = C, B, A", the body of the csv is ordered correctly (C, B, A), but the header remains as "A, B, C".
I would expect the header to follow the column order specified, as with the body of the csv.

@bchoii  Current version: csv-label does not support reorder specify by csv-column-order.
The thing is if you already know the order or column, you can set it to csv-header as well. Then don't use cdv-label attribute.

A workaround exists, of course. That is not the argument for raising this issue.

The results of the above combination of parameters results in output of the following :
Header A, Header B, Header C
Data C, Data B, Data A ...
This output violates Principle of Least Surprise. I would not expect a situation where this form of output is desired, and thus need to be supported.

The proposed workaround violates DRY.

@bchoii I totally agreed with you. Before I thought you might just need to find a walkaround for your application, and that's why I provided my solution. Now, I had made a hotfix for this issue. Thank you again!

@asafdav I think this issue can close now.


[ENH] Support VALUES query

Is your feature request related to a problem? Please describe.
Mostly for testing purposes, it would be great if dask-sql would support creating tables of inline data using the VALUES keyword.
Describe the solution you'd like
In many SQL dialects (including DataFusion, Postgres, and DuckDB), it's possible to construct tables from literal values using the VALUES keyword. See https://www.postgresql.org/docs/current/queries-values.html.
For example:
SELECT * FROM (VALUES (1, 2), (1, 3)) as tbl(column1, column2)

In the DataFusion CLI, this evaluates to
+---------+---------+
| column1 | column2 |
+---------+---------+
| 1       | 2       |
| 1       | 3       |
+---------+---------+

This isn't currently supported in dask-sql. For example:
from dask_sql import Context
c = Context()
result = c.sql(r"""
SELECT * FROM (VALUES (1, 2), (1, 3)) as tbl(column1, column2)
""")

...
NotImplementedError: No relational conversion for node type Values available (yet).

Describe alternatives you've considered
None
Additional context
I'm in the early stages of adding SQL support to VegaFusion, and I'd like to test SQL dialect generation using self-contained queries that include small inline datasets.

Thanks for raising this issue. As mentioned the datafusion planner supports these kind of nodes and it shouldn't be too hard to add an implementation on the dask-sql side.
Is your current plan to use these queries with cpu backed dask dataframes or gpu backed dask-cudf dataframes as well?
The primary reason I'm asking is because it's easier to default to creating cpu backed dask dataframes by default, since we don't have a good api today to allow users specifying gpu tables for inline cases like these.

For my purposes the CPU backend would be preferable, and since these would necessarily be small datasets, my guess is that this is probably appropriate in general.


Paddy 2 crashes

Sketch Version: 50 (54983).
When I select symbol made for paddy-1 paddy-2 (0.1) crashes.
It's quite complicated symbols (because of no nested symbols support in paddy), on simpler symbols it isn't crashing. 100% times.
Here is gist with crash log: https://gist.github.com/mikeozornin/52a634cfef2932bf93f2f55aed8eb95e
Need I share symbols?
When I insert into new document symbol from my sketch lib (paddy1-friendly) paddy2 crashes too.
Insert symbol (button) from lib.
Override text
Deselect button
Not 100% time.
Crashes with log: https://gist.github.com/mikeozornin/32c7cfe49339aa763ccfae75dd5552c8
When I make and override to the inserted symbol (mentioned in the first crash) sketch crashes too
Gist with log: https://gist.github.com/mikeozornin/33b12959db5ea78eb437e3c82295086a

Thanks @mikeozornin.
I just released a new version of the beta which should support Sketch 50 a little more.
The crash logs are really helpful.
Can you let me know if the new version fixes it at all.
Cheers 👍

I installed v0.2, but Sketch still crashing. Paddy do not crash Sketch when I'm using simple symbol (badge from library) but crash when I'm using complex symbol (buttons).
When selecting symbol (not instance):
https://gist.github.com/mikeozornin/e21d43bf5ecb236fdab540e09936734a
When using override of a button symbol: https://gist.github.com/mikeozornin/ba7bc2d3d0d9355403fdaa4012eefd8c
I made a copy of our symbol library and removed almost all symbols. Here it is: https://sketch.cloud/s/drAvj. Maybe this will help to understand what's going on.
I can check not only release versions but some test builds too, if it needed.

Awesome. Thanks @mikeozornin.
I was able to replicate the crash – can you see if this version fixes it for you?
Paddy2.sketchplugin.zip

Great! This build works like a charm.
Tried hard, but wasn't able to make any crash.


Download getting stuck at 100%

why does my launcher stop working when the validation and download thing reaches 100%? it says its 100% yet its still says "downloading files". I've tried uninstalling and installing it and I still get the same problem. Please do help me if you know a way on how to fix this problem, ty.
Originally posted by @Desudesaru in https://github.com/Nuclearistt/TEKLauncher/issues/4#issuecomment-1089753707

If you can, please join the Discord and contact me so we can discuss details that you need to provide me

The issue was identified and a fix has been made to be included into next update


Bug/#44

fixed a bug in https://github.com/Kensuke-Mitsuzawa/JapaneseTokenizers/issues/44

Coverage increased (+0.07%) to 71.951% when pulling a05b325cbe553d246ebdc70abf4970e471c4b22f on bug/#44 into 8a28e2d9f60ba13f10701d1d9481bc8f2caa8293 on master.


Add list/string drop and rename drop to omit

So small proposal let me know what you guys think...
For a better user experience for people coming from lodash, ramda, etc or even functional languages like haskell... imho the current implementation of drop would be renamed to omit.
And we could implement drop like so const drop = (n, xs) => xs.slice(Math.max(n, 0), Infinity);
then use like so
drop(3, [1,2,3,4,5]) //=> [4,5]

// can be used on strings as well
drop(6, "hello world") // world

thoughts @1-liners/owners ?

Good idea. :+1:
On Sun, Oct 4, 2015, 01:47 David Chase<EMAIL_ADDRESS>wrote:

So small proposal let me know what you guys think...
For a better user experience for people coming from lodash, ramda, or even
functional languages like haskell imho.. the current implementation of
drop https://github.com/1-liners/1-liners/tree/master/documentation#drop
would be renamed to omit.
And we could implement drop like so const drop = (n, xs) =>
xs.slice(Math.max(n, 0), Infinity);
then use like so
drop(3, [1,2,3,4,5]) //=> [4,5]
// can be used on strings as well
drop(6, "hello world") // world
thoughts @1-liners/owners https://github.com/orgs/1-liners/teams/owners
—
Reply to this email directly or view it on GitHub
https://github.com/1-liners/1-liners/issues/140.

:+1: :+1:


Chromedriver and capabilities - NoSuchSessionException

Hi,
First of all, I would like to point out - I am not sure if this is Bobcat issue.
I run my tests against Selenium Grid (remote Windows Server 2012).
I load up webdriver.properties file which looks like this:
webdriver.type = remote webdriver.url = http://namechanged:4445/wd/hub webdriver.cap.browserName=chrome
It starts Chrome instance which is correct behavior, but then I receive an exception.
1) Error in custom provider, org.openqa.selenium.NoSuchSessionException: no such session   (Driver info: *chromedriver=2.29.461591* (62ebf098771772160f391d75e589dc567915b233),platform=Windows NT 6.3.9600 x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 0 milliseconds Build info: version: *'3.4.0'*, revision: 'unknown', time: 'unknown' System info: host: 'NAMECHANGED', ip: '<IP_ADDRESS>', os.name: 'Windows Server 2012 R2', os.arch: 'amd64', os.version: '6.3', java.version: '1.8.0_131' *Driver info: org.openqa.selenium.chrome.ChromeDriver* Capabilities [{se:ieOptions={browserAttachTimeout=0.0, ie.enableFullPageScreenshot=true, enablePersistentHover=true, ie.forceCreateProcessApi=false, ie.forceShellWindowsApi=false, ignoreZoomSetting=fa lse, ie.fileUploadDialogTimeout=3000.0, ie.useLegacyFileUploadDialogHandling=false, nativeEvents=true, ie.ensureCleanSession=false, elementScrollBehavior=0.0, ie.browserCommandLineSwitches=, requireWi ndowFocus=false, initialBrowserUrl=http://localhost:33145/, ignoreProtectedModeSettings=false, enableElementCacheCleanup=true}, browserName=internet explorer, pageLoadStrategy=normal, javascriptEnable d=true, version=11, platform=WINDOWS, unexpectedAlertBehaviour=dismiss}] Session ID: b9a27bb0-fb47-4679-a53f-3d87edb88015 Command duration or timeout: 146 milliseconds   while locating com.cognifide.qa.bb.provider.selenium.webdriver.WebDriverProvider   while locating org.openqa.selenium.WebDriver     for field at java.com.hooks.WindowMaximize.driver(WindowMaximize.java:13)   while locating java.com.hooks.WindowMaximize
What I noticed in above stack trace is Capabilities - browserName=internet explorer
How so? Selenium correctly started Chromedriver but there is an Internet Explorer in capabilities? No wonder why it fails with NoSuchSessionException.
It fails at WindowMaximize class which I left unchanged:
public class WindowMaximize {
	@Inject
	private WebDriver driver;

	@Before
	public void maximize() {
		driver.manage().window().maximize();
	}
}

Since Bobcat provided more stack traces - I found 1 that is interesting and might give a clue:
Stacktrace points out to bobcat class MaximizeModifier.java:41 and WebDriverModifyingCollector.java:53 and also class WebDriverProvider.java:108
Please, take a look if Bobcat properly provides browser capabilities.

Looks like the issue was strictly connected to issue #193
I am not able to reproduce this issue.


Parameter Description is cluttered in some function

Expected

For some functions

We need to add an empty line after every parameter


Update/Re-Write CoX-Auth to give it an address book

With all the new servers going up for test, it’s a pain to have to open CoX-Auth and change the IP or FQDN every time.
Plus in the future, it’ll be more a pain when they are fully playable. If we have access to the source for it, we should add a simple address book. Maybe let users add like 10 servers.
If we don’t have the code, maybe someone would be willing to take a crack at it?

Interesting, I wonder how we would change this without the source code... Does anyone know if you can point CoX.exe to a specific IP using a -target parameter or something?

The CoX client saves the IP in the system registry. It should be as simple as changing that.

Perhaps then a custom application (SEGSAddressBook or something)... Which allows users to add servers and then 'apply' a server which updates the registry setting... Probably something which will do in the interim until we have our custom launcher / SLAV working?

Should we leave this to SLAV then?

@nemerle @broxen Any further thoughts on this? Should we close this and add to the SLAV roadmap?

Yes. This seems best for SLAV.

Closing this in favor of #676 since SLAV is the new focus.


Except - Try in Jikanpy

Hello author. I was trying to implementation except-try code when using jikanpy
here the concept :
 search_result = jikan.search('anime', "qqqqqqqqqq",parameters={'limit': 10})
  try:
  # if 200
  except HTTPError:
 #if 404
  print("Can't find this title,please check")

But is not working. It just give this log. I want to show the line ("Can't find this title,please check") when running the app.
Log:
 line 78, in _wrap_response
    raise APIException(response.status_code, json_response, **kwargs)
jikanpy.exceptions.APIException: HTTP 404 - status=404, type=BadResponseException, message=Resource does not exist, error=404 on https://myanimelist.net/anime.php?q=&type=0&score=0&status=0&p=0&r=0&sd=0&sm=0&sy=0&ed=0&em=0&ey=0&gx=0&c[]=a&c[]=b&c[]=c&c[]=f&c[]=d&c[]=e&c[]=g for search type=anime, query=

closing this as troubleshotting on discord instead


Use export paths with node >= 13

We currently have to specify the exact folder structure when importing module files:
import { logger } from '@lagoon/commons/src/local-logging';

This was a pain to change in all of lagoon when switching to typescript because the src folder changed to dist.
Node version 13 and later allows packages to provide an exports field which can hide away the src/dist folder from other modules:
{
  "name": "@lagoon/commons",
  "exports": {
    "./": "./dist/"
  }
}

import { logger } from '@lagoon/commons/local-logging';

It'd be nice to upgrade to node 13 and use the exports everywhere. And to avoid creating new code that has subpaths hardcoded already.

This would be for the internal services only yes?  Given the relatively short lifespan of Node 13, i'd advise against making and providing public Node13 images, but if this change makes life easier and avoids redundant code in development, can we use Node13 now for the relevant services, and move to Node14 (LTS) when it's released in late April (https://nodejs.org/en/about/releases/)?

ya, it's only for internal services since we don't publish @lagoon/commons.
I wasn't sure if it's possible to build a node 13 image and not have it published? I'm also not sure how easy it is to just upgrade to 13 from 10, then to 14 when it comes out. I'd be OK with waiting for node 14 since I already had to do the global replace stuff.
This is more of a "spend more time researching the possibility"/developer experience improvement issue.

This was fixed in the Node 16 update

We updated to a node version that can handle export paths, but we haven't implemented them yet. By hard coding the dist folder it also means local development requires a yarn build before typescript will work properly.


Bulk actions

Coverage increased (+0.3%) to 92.788% when pulling 9298889dc055ade112c21c83e6b08c00af31e0be on bulk-actions into 60d81d9e3e0ebe80dc143c8766466fa695c86d5e on master.

Codecov Report

Merging #30 into master will increase coverage by 0.62%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #30      +/-   ##
==========================================
+ Coverage   94.82%   95.45%   +0.62%
==========================================
  Files          15       16       +1
  Lines         116      132      +16
==========================================
+ Hits          110      126      +16
  Misses          6        6

Impacted Files
Coverage Δ

src/TreeContainer.js
85.71% <ø> (ø)
:arrow_up:

src/selectors/nodes.js
96.15% <ø> (ø)
:arrow_up:

src/constants.js
100% <100%> (ø)

src/selectors/tree.js
100% <100%> (ø)

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 60d81d9...9298889. Read the comment docs.


Module build warning

It seems in the v3.1.0 release, Xcode generates warnings for building of the module.

It's fixed in version v3.1.1 that we just released.


fix: determine duplicate function precedence based on extension

🎉 Thanks for submitting a pull request! 🎉
Summary
Fixes https://github.com/netlify/pod-compute/issues/462
Right now, the cli doesn't behave the same as production when it comes to duplicate function precedence. This should fix it. For more detail check the issue1

For us to review and ship your PR efficiently, please perform the following steps:

[x] Open a bug/issue before writing your code 🧑💻. This ensures we can discuss the changes and get feedback from everyone that should be involved.
[x] Read the contribution guidelines 📖. This ensures your code follows our style guide and
passes our tests.
[x] Update or add tests (if any source code was changed or added) 🧪
[x] Update or add documentation (if features were changed or added) 📝
[x] Make sure the status checks below are successful ✅

A picture of a cute animal (not mandatory, but encouraged)

I will!

This broke some tests.

This broke some tests I think.

I'm really confused as to how I was able to merge this PR :/


[VS Code] Joining collaboration session: Workspace ID B275F7ABAD2FAB6001D85AF8EE45D848921C not found at this host.Parameter name: Id

Error:
Joining collaboration session: Workspace ID B275F7ABAD2FAB6001D85AF8EE45D848921C not found at this host.
Parameter name: Id
Steps to Reproduce:
1.
2.

Version Data

extensionName
VSLS

extensionVersion
1.0.509

protocolVersion
2.2

applicationName
VSCode

applicationVersion
1.37.0-insider

platformName
MacOS

platformVersion
18.6.0

Thanks for reporting this, @jimmyandrade. Can you tell me more more about what happened? Were you eventually able to join a session? Your logs may provide us with helpful information. You can access them via the Live Share: Export Logs command from the command palette (ctrl + shift + p) and attach them to this issue.


Incorrect versionCode and tag name

I'm getting this output from the terminal (I hope it has all the info you need):
[tamas@tamas-antergos]$ git describe
v0.7
[tamas@tamas-antergos]$ gradle --quiet androidGitVersion
androidGitVersion.name  untagged-49-fdfd1cd-fdfd1cd940cffb5fc2fe5d6488b90e38b56585f7-dirty
androidGitVersion.code  0
[tamas@tamas-antergos]$ ./gradlew --version

------------------------------------------------------------
Gradle 2.14.1
------------------------------------------------------------

Build time:   2016-07-18 06:38:37 UTC
Revision:     d9e2113d9fb05a5caabba61798bdb8dfdca83719

Groovy:       2.4.4
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_92 (Oracle Corporation 25.92-b14)
OS:           Linux 4.8.2-1-ARCH amd64

Tried with light, annotated, and signed tags, with same results.

It's the v in v0.7. You can either tag without the v, or add prefix='v' to your androidGitVersion settings.

Wow, thanks for the super fast reaction, and sorry for the confusion (and improper reading of your documentation).

Not a problem! Let me know if you run into anything else.

I seem to have the same issue even with the prefix 'v' added under the settings. Any idea what the issue might be?

I would also like to note for those who might also have this issue that the androidGitVersion settings need to be placed before the build configs, otherwise they won't be read on time.

Thanks for the note. I've added special mention of this in the readme.


No Gateway when login in by domain instead of IP

If i login via 192.168.1.x  i am redirected to
http://192.168.1.x/pwa/login.html#
and below the brown p there is Phoscon-GW button shown on the same IP
if i login via nginx proxy manager by domain deconz.domain.de i am redirected to
deconz.domain.de/pwa/login.html#
BUT i only get the brown P but NO Button below to login the gateway.
Anyone any idea?

I understand the issue, but I don't think it's related to docker. Unfortunately the developers of Phoscon does not read GitHub issues, so I think the best way to get their attention is to open a new topic on the forum.
https://forum.phoscon.de/


Create a Steam page.

~- refer below article and create page. https://note.com/metaformingpro/n/n9f15a9e5e649~
~- make key visual.~
~- write description of game.~
~- create image  https://partner.steamgames.com/doc/store/assets?l=japanese https://www.karvan1230.com/entry/2023/05/09/210938~
~- create gif of description.~
~- write description in English and submit review.~
~- schedule store open.~

check it become vr only.

Created.
https://store.steampowered.com/app/2483620/VR_Action_Game_Kit/


some links seems incorrects

It seems recently the project was renamed from crowdsec-custom-bouncer to cs-custom-bouncer .
So, In readme :

logo image point to the incorrect repo
url to release point to the incorrect repo
From source : url of the git repo is incorrect, with all the request (not sure if github do a link to the new name)
start : command seems invalid (on my install, service name seems to be cs-custom-bouncer.service )
Upgrade : bad link to last release
Configuration : on my installation, config seems to be in /etc/crowdsec/cs-custom-bouncer/cs-custom-bouncer.yaml and not /etc/crowdsec/bouncers/crowdsec-custom-bouncer.yaml ( and so, not under /etc/crowdsec/bouncers/ )
"You can then start the service:" : on my installation, service name seems to be cs-custom-bouncer.service

Hello @thib3113,
It's the opposite. The binary/service was renamed from cs-custom-bouncer to crowdsec-custom-bouncer. While renaming everything to crowdsec-custom-bouncer , we broke some links in the README since the github repository is still called cs-custom-bouncer.
About those points:

start : command seems invalid (on my install, service name seems to be cs-custom-bouncer.service )
"You can then start the service:" : on my installation, service name seems to be cs-custom-bouncer.service
Configuration : on my installation, config seems to be in /etc/crowdsec/cs-custom-bouncer/cs-custom-bouncer.yaml

On the latest release (v0.0.8), the service should be called crowdsec-custom-bouncer and the configuration folder/file should be called crowdsec-custom-bouncer also.
Can you confirm those points please?
I've also fixed the link in the README, is it good for you ?
Thanks :)

Hum, ok, I see .
I see I'm always in 0.0.6, and the upgrade.sh fail to work xD ...
In fact the upgrade.sh fail successfully 😂 .
root@docker-3:~/crowdsec-custom-bouncer-v0.0.8# ./upgrade.sh
Failed to stop crowdsec-custom-bouncer.service: Unit crowdsec-custom-bouncer.service not loaded.
rm: cannot remove '/usr/local/bin/crowdsec-custom-bouncer': No such file or directory
crowdsec-custom-bouncer is not installed, exiting.
'./crowdsec-custom-bouncer' -> '/usr/local/bin/crowdsec-custom-bouncer'
Failed to start crowdsec-custom-bouncer.service: Unit crowdsec-custom-bouncer.service not found.
crowdsec-custom-bouncer upgraded successfully.
root@docker-3:~/crowdsec-custom-bouncer-v0.0.8# /usr/local/bin/cs-custom-bouncer -h
INFO[0000] cs-custom-bouncer v0.0.6-35e98029f7de2e72eb41fd0a2f0d03d9768d7cfd
Usage of /usr/local/bin/cs-custom-bouncer:
  -c string
        path to cs-custom-bouncer.yaml
  -v    set verbose mode

I'll try to debug this later :) .

I think what you can do is :

Backup your configuration file : /etc/crowdsec/cs-custom-bouncer/cs-custom-bouncer.yaml
Re download the cs-custom-bouncer v0.0.6
Run the uninstall.sh script
Download the cs-custom-bouncer v0.0.8
Install it
Copy your previous configuration file to /etc/crowdsec/crowdsec-custom-bouncer/crowdsec-custom-bouncer.yaml

Then start the service sudo systemctl start crowdsec-custom-bouncer .

Hum,
you say /etc/crowdsec/crowdsec-custom-bouncer/crowdsec-custom-bouncer.yaml but /etc/crowdsec/crowdsec-custom-bouncer/ doesn't exist . Maybe a typo with /etc/crowdsec/bouncers/crowdsec-custom-bouncer.yaml
service fail to start with :
juil. 29 13:20:26 docker-3 crowdsec-custom-bouncer[4517]: time="2021-07-29T13:20:26Z" level=info msg="crowdsec-custom-bouncer v0.0.8-4f818351921b3aed93f53da0f1f5d2fe12426fd6"
juil. 29 13:20:26 docker-3 crowdsec-custom-bouncer[4517]: panic: non-positive interval for NewTicker
juil. 29 13:20:26 docker-3 crowdsec-custom-bouncer[4517]: goroutine 1 [running]:
juil. 29 13:20:26 docker-3 crowdsec-custom-bouncer[4517]: time.NewTicker(0x0, 0x0)
juil. 29 13:20:26 docker-3 crowdsec-custom-bouncer[4517]:         /opt/hostedtoolcache/go/1.13.15/x64/src/time/tick.go:23 +0x147
juil. 29 13:20:26 docker-3 crowdsec-custom-bouncer[4517]: main.main()
juil. 29 13:20:26 docker-3 crowdsec-custom-bouncer[4517]:         /home/runner/work/cs-custom-bouncer/cs-custom-bouncer/main.go:96 +0x5fe
juil. 29 13:20:26 docker-3 systemd[1]: crowdsec-custom-bouncer.service: Main process exited, code=exited, status=2/INVALIDARGUMENT

conf :
bin_path: /root/bouncer.sh
piddir: /var/run/
update_frequency: 10s
daemonize: true
log_mode: file
log_dir: /var/log/
log_level: info
api_url: ***
api_key: ***

/etc/crowdsec/crowdsec-custom-bouncer/crowdsec-custom-bouncer.yaml should exist after installing the v0.0.8. It is not the case ?

ok I found, in the config :
cache_retention_duration: 10s is mandatory, and not on the 0.0.6 :)

https://github.com/crowdsecurity/cs-custom-bouncer/pull/23 to handle a default value for cache_retention_duration that is now required.

cool ! @thib3113 is everything ok for you ? :) can we close this issue ?


Add shortcut scripts for training and recording video

Now we can do source scripts/train_a1_ppo.sh instead of typing out the full train command. Similarly, python scripts/record_video_a1_ppo.sh instead of the full command

Sorry I meant to PR this to my own local fork. I don't know how to delete it so I'll just close it.


Feature/configure serverless dataproc batch

resolves #350
and superceedes #372
Description
This adds support for configuring all input values of a GCP serverless dataproc batch job. It does so by adding a dataproc_batch configuration key which can hold arbitrary configuration. It's the user's repsonsibility to ensure this corresponds to the structure of the https://cloud.google.com/dataproc-serverless/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.Batch object
By not validating this configuration in dbt, one automatically gains full coverage of current features and support for new features as they are made available. One example of this is the ExecutionConfig.idle_ttl property, which is in the dataproc api, but not yet in the python client libs.
If the user attempts to set illegal configuration, this will typically cause an exception:

when updating the Batch object, if the configuration structure does not match the Batch class
when submitting the job, if the value of a configuration setting is illegal.

One risk with this approach is that the code which reconciles the yaml configuration and google.cloud.dataproc.v1.Batch object might not correctly handle future additions, if they differ significantely in structure or types used. E.g. arrays of objects would not be handled currently as the code stands. (Replaced custom dict to protobuf message parsing with google.protobuf.json_format.ParseDict)
Example profile using this feature:
myproject:
  target: dev
  outputs:
    dev:
      type: bigquery
      method: oauth
      project: "{{ env_var('GCP_PROJECT') }}"
      dataset: tmp
      threads: 4
      gcs_bucket: "my-bucket"
      dataproc_region: "europe-west1"
      submission_method: serverless
      dataproc_batch:
        environment_config:
          execution_config:
            service_account: "dbt@{{ env_var('GCP_PROJECT') }}.iam.gserviceaccount.com"
            subnetwork_uri: "dataproc"
        labels:
          project: "my-project"
          role: "dev"
        runtime_config:
          properties:
            spark.executor.instances: 3
            spark.driver.memory: "1g"

Checklist

[x] I have read the contributing guide and understand what's expected of me
[x] I have signed the CLA
[x] I have run this code in development and it appears to resolve the stated issue
[x] This PR includes tests, or tests are not required/relevant for this PR
[ ] I have opened an issue to add/update docs, or docs changes are not required/relevant for this PR
[ ] I have run changie new to create a changelog entry

@lostmygithubaccount

thanks @torkjel! we may not be able to fully review this PR this week given a company-wide event, but we'll take a look and work to get this merged!

@torkjel Nice work! I'm stoked for this to get merged.

I removed the custom translation from dataproc_config dict to Batch object., and let it use ParseDict from the protobuf library instead. This makes the test_configure_dataproc_batch.py unit test a bit pointless, as it ends up just testing the protobuf library.

Hey, is there anything more I can do to move this forward?

BTW @torkjel  do you mind add a changelog to this pr? instruction here.
@colin-rogers-dbt @McKnight-42  Do you know anything about why code checks are failing?

@ chenyu seeing this in the logs
dbt/adapters/bigquery/python_submissions.py:9: error: Library stubs not installed for "google.protobuf.json_format" (or incompatible with Python 3.8)  [import]
dbt/adapters/bigquery/python_submissions.py:9: note: Hint: "python3 -m pip install types-protobuf"
dbt/adapters/bigquery/python_submissions.py:9: note: (or run "mypy --install-types" to install all missing stub packages)
dbt/adapters/bigquery/python_submissions.py:9: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports

didn't we just do some protobuf stuff? might need to update their branch with main possibly?

@ chenyu seeing this in the logs
dbt/adapters/bigquery/python_submissions.py:9: error: Library stubs not installed for "google.protobuf.json_format" (or incompatible with Python 3.8)  [import]
dbt/adapters/bigquery/python_submissions.py:9: note: Hint: "python3 -m pip install types-protobuf"
dbt/adapters/bigquery/python_submissions.py:9: note: (or run "mypy --install-types" to install all missing stub packages)
dbt/adapters/bigquery/python_submissions.py:9: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports

didn't we just do some protobuf stuff? might need to update their branch with main possibly?

@McKnight-42  I think the dev requirement is being added here. Should this be added in some other file?

@ChenyuLInx going to try and rerun tests, looks like it might just be a install problem? wondering if github messed up want to rule it out

installing this branch locally shows error messages
ERROR: tox 4.0.8 has requirement packaging>=22, but you'll have packaging 21.3 which is incompatible.
ERROR: dbt-bigquery 1.4.0a1 has requirement protobuf<4,>=3.13.0, but you'll have protobuf 4.21.11 which is incompatible.

so we may need to pin protobuf version

Is there anything that can be done to move this forward?
The ability to specify a custom image for Dataproc Serverless (see #384) would be really useful.

I'd like to test out the feature of setting a network/subnetwork for the dataproc connection.
Is there an example of how to set this in a job, or in DBT Cloud config?


docopt doesn't respect help=False option

I'm currently setting help=False when calling docopt, this ends up printing the help message and exiting even though this isn't what I want, hence why I'm specifying help=False. I also don't see --help or -h in my args when I parse commands. What's even more odd when I specify help=False it doesn't display the entire doc it only displays the Usage. I take it this is because the command/args entered aren't known. However I still cannot handle -h --help myself so it will always fail like this, and if I disable help this isn't something that I want docopt to do.

When help=False, docopt will not handle -h, --help for you. In this case, whenever you have -h or not in your command args, when it does not match any usage case, by default docopt will print Usage section and exit.
So, in somehow, just help=False does not work the way how you think: help=False will ignore -h, --help, but will not change the behavior of docopt when no usage case matches your command line argv

Oh, because I haven't provided it as an option to any of the commands. However I did specify it as an option in general. Had thought that would suffice.


Set up GitHub CI

Please always use Rebase and merge merging method on my PRs. I always trying to do atomic commits with detailed messages. Such strategy allows getting rid of merge commits that are not informative and makes history more clear.

Or just Accept my PRs (if there are not objections) and I'll merge them by myself.
For other contributors I suggest using either Rebase and merge or Squash and merge methods.


Local web app dev routes with generic char defined in staticwebapp.config.json are not treated as generic

Are you accessing the CLI from the default port :4280 ?

[x] No, I am using a different port number (--port) and accessing the CLI from that port
[ ] Yes, I am accessing the CLI from port :4280

Describe the bug
When I define a route with /AAA* , /AAA* is proxied to the defined rewrite but /AAATEST is proxied to the frontend app
To Reproduce
npx @azure/static-web-apps-cli start https://localhost:5173 --swa-config-location ./ -s -e localhost.internal.tld.pem -k localhost.internal.tld.key -p 8788 --api-location ./api -t 120 --run 'npm run dev'
staticwebapp.config.json
{
    "globalHeaders": {
        "content-security-policy": "default-src https: 'unsafe-eval' 'unsafe-inline'; object-src 'none'"
    },
    "routes": [
        {
            "route": "/GOOGLE",
            "redirect": "https://www.google.fr",
            "statusCode": 302
        },
        {
            "route": "/!TEST",
            "rewrite": "/api/redirect"
        },
        {
            "route": "/AAA*",
            "rewrite": "/api/redirect"
        }
    ]
}

Expected behavior
browsing to https://localhost.internal.tld:8788/AAATEST must be rewritten to /api/redirect as explained in the documentation https://learn.microsoft.com/fr-fr/azure/static-web-apps/configuration#wildcards
Bugged behavior
browsing to https://localhost.internal.tld:8788/AAATEST
[swa] GET https://localhost:5173/AAATEST (proxy)
browsing to https://localhost.internal.tld:8788/AAA*
[swa] GET http://localhost:7071/api/redirect (proxy)
[api] [2022-10-05T05:53:41.729Z] Executing HTTP request: {
[api] [2022-10-05T05:53:41.729Z]   requestId: "f6ed30b0-5580-4395-89f7-e34bd1e7e2ad",
[api] [2022-10-05T05:53:41.729Z]   method: "GET",
[api] [2022-10-05T05:53:41.729Z]   userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36",
[api] [2022-10-05T05:53:41.729Z]   uri: "/api/redirect"
[api] [2022-10-05T05:53:41.729Z] }
[api] [2022-10-05T05:53:41.730Z] Executing 'Functions.redirect' (Reason='This function was programmatically called via the host APIs.', Id=c3549609-e9a1-483c-9f0d-81593625eb5a)
[api] [2022-10-05T05:53:41.732Z] to:AA*
[api] [2022-10-05T05:53:41.735Z] Received FunctionInvocationRequest
[api] [2022-10-05T05:53:41.899Z] Executed 'Functions.redirect' (Succeeded, Id=c3549609-e9a1-483c-9f0d-81593625eb5a, Duration=169ms)
[api] [2022-10-05T05:53:41.901Z] Executed HTTP request: {
[api] [2022-10-05T05:53:41.901Z]   requestId: "f6ed30b0-5580-4395-89f7-e34bd1e7e2ad",
[api] [2022-10-05T05:53:41.901Z]   identities: "",
[api] [2022-10-05T05:53:41.901Z]   status: "500",
[api] [2022-10-05T05:53:41.901Z]   duration: "172"
[api] [2022-10-05T05:53:41.901Z] }
[swa] GET https://localhost.lesmuids.windows:8788/api/redirect - 500

500 status is my normal behavior (the function return status 500 because AAA* is not allowed)
Desktop (please complete the following information):

OS: MacOS
Version 10.15.7

Additional context
swa -version
Welcome to Azure Static Web Apps CLI (1.0.2)

@Reshmi-Sriram
I've just tested a deployement on Azure and it works perfectly, so the bug is only on the swa emulator.
Ronan

@Reshmi-Sriram
I've created a repo to reproduce it: https://github.com/highcanfly-club/azure-swa-clib-bug-580
git clone https://github.com/highcanfly-club/azure-swa-clib-bug-580.git && cd azure-swa-clib-bug-580/
npm i
npm start
# browse https://localhost:8788/!AZURE
# swa must proxy it to http://localhost:7071/api/redirect
# but it proxies to https://localhost:5173

Hey @eltorio SWA_CLI maynot match exactly with the Azure Static web apps. So, please try deploying this on SWA and verify. However, we are trying to close these differences and match the SWA as closely as possible.

Hi @sgollapudi77 ,
Thank you for your answer.
I know that the platforms do not match  exactly.
This routing works perfectly on SWA and not locally.
It is a blocking bug since we cannot process some local testing and so it is a Q/A problem.
For example for education purpose we demonstrate it https://kiik.cf use exactly this routing.
https://kiik.cf/!PTGR0 redirect to https://portal.azure.com


Large nested blockquote consumes huge amount of memory and crashes PHP

My site has been experiencing attacks achieved by posting a large nested blockquote in the forum. It looks like this:
>>>>>>>>>>>>>>>>>>>>>>... (about 10k+ blockquote markings in one line)
This eventually exhausts all available memory and kills the PHP instance. I wonder if this is the nature of the parser or is it an issue?
This is sucessfully reproduced in the project demo (http://parsedown.org/demo). (sorry if this caused any damage)

Can reproduce as well.
This is most likely the nature of the parser, though it should be fixed.

Thanks for reporting. Probably the best way to resolve this is for Parsedown to track and limit parse recursion depth to some sane limit that actual text isn't likely to reach, but also isn't going come close to consuming all of PHP's available memory. We can make this configurable in-case someone wants to lower or raise the limit depending on use cases.
I think in principle you'd still need to have some submission limit when accepting user data though: an attacker could just submit the > character n - 1 times (where n is the recursion limit) and submit it across multiple lines to achieve a similar effect even with a maximum in place.
Probably the preferable thing for Parsedown to do if the recursion limit is exceeded is to cease sub-parsing and output potentially deeper remaining text as if it were regular text, though perhaps having Parsedown stop and report failure might be useful too?

9eb6a02 adds a recursion limiter to the 2.0.x branch. Bear in mind that accepting large input could still cause PHP to crash due to not having enough memory to, for example, copy a string.


Chore: Reformat all pom.xml

Seems the pom.xml has different indentations, so I've done a total formatting.

This is just a code format, so merge directly.


[New feature] Decompose SBG End-To-End CWL Workflow

Decompose the single SBG end-to-end workflow in smaller steps, each executing a separate CWL workflow, so that:

User can monitor and debug each step separately
In case a step fails, the workflow can be restarted from that step, once it is fixes

The DAG was executed successfully. The latest version includes all SBG tasks chained in some arbitrary fashion to demonstrated how Tasks can be executed in parallel. All Tasks execute a separate CWL but they are not yet connected by inputs and outputs.


Use KafkaAPI instead of raw ZK for Delete and Create Topics

Use KafkaAPI instead of raw ZK for Delete and Create Topics

move delete/create operations to KafkaAPI
bump version of kafka lib

PR includes @claudio-benfatto  changes

Ok this is the result of testing it live:
Initial state:
Kafka:
 6 brokers:
  broker 10 at i-0948f544e30c66518.storage-dev.mpi-internal.com:9092
  broker 11 at i-06cb980ba23d60ddb.storage-dev.mpi-internal.com:9092
  broker 28 at i-070ab13249f2ba115.storage-dev.mpi-internal.com:9092
  broker 26 at i-05eb18b62627cfef1.storage-dev.mpi-internal.com:9092
  broker 27 at i-0228a7d147c304773.storage-dev.mpi-internal.com:9092
  broker 12 at i-001b0969de135f84d.storage-dev.mpi-internal.com:9092

 9 topics:
  topic "__broker-27-health-check" with 1 partitions:
    partition 0, leader 27, replicas: 27, isrs: 27
  topic "__broker-10-health-check" with 1 partitions:
    partition 0, leader 10, replicas: 10, isrs: 10
  topic "__broker-28-health-check" with 1 partitions:
    partition 0, leader 28, replicas: 28, isrs: 28
  topic "__broker-11-health-check" with 1 partitions:
    partition 0, leader 11, replicas: 11, isrs: 11
  topic "_schemas" with 1 partitions:
    partition 0, leader 11, replicas: 11,28,10, isrs: 11,10,28
  topic "__broker-replication-check" with 1 partitions:
    partition 0, leader 12, replicas: 12,11,10,28,27,26, isrs: 10,28,27,12,11,26
  topic "__broker-26-health-check" with 1 partitions:
    partition 0, leader 26, replicas: 26, isrs: 26
  topic "__broker-12-health-check" with 1 partitions:
    partition 0, leader 12, replicas: 12, isrs: 12

Zookeeper:
(CONNECTED [<IP_ADDRESS>:2181]) /kafka/rooffire/brokers/topics/__broker-replication-check/partitions/0> get state
{"controller_epoch":4,"leader":12,"version":1,"leader_epoch":34,"isr":[10,28,27,12,11,26]}

Broker 10 removed
ZK:

(CONNECTED [<IP_ADDRESS>:2181]) /kafka/rooffire/brokers/topics/__broker-replication-check/partitions/0> get state
{"controller_epoch":4,"leader":12,"version":1,"leader_epoch":36,"isr":[28,27,12,11,26]}

(CONNECTED [<IP_ADDRESS>:2181]) /kafka/rooffire/brokers/topics> ls
__CruiseControlMetrics
__broker-11-health-check
__broker-12-health-check
__broker-26-health-check
__broker-27-health-check
__broker-28-health-check
__broker-replication-check
_schemas

All brokers but one (26) stopped
ZK:

(CONNECTED [<IP_ADDRESS>:2181]) /kafka/rooffire/brokers/topics> ls
__CruiseControlMetrics
__broker-26-health-check
__broker-replication-check
_schemas

(CONNECTED [<IP_ADDRESS>:2181]) /kafka/rooffire/brokers/topics> get __broker-replication-check/partitions/0/state
{"controller_epoch":5,"leader":26,"version":1,"leader_epoch":44,"isr":[26]}

All brokers stopped
Cannot delete the topic because the cluster has no more brokers:
ZK:

(CONNECTED [<IP_ADDRESS>:2181]) /kafka/rooffire/brokers/topics> ls
__CruiseControlMetrics
__broker-26-health-check
__broker-replication-check
_schemas

time="2020-10-23T09:55:57Z" level=info msg="connecting to ZooKeeper ensemble <IP_ADDRESS>:2181,<IP_ADDRESS>:2181,<IP_ADDRESS>:2181/kafka/rooffire"
time="2020-10-23T09:55:57Z" level=info msg="taking lock to close the connection"
time="2020-10-23T09:55:57Z" level=info msg="lock acquired to close the connection"
time="2020-10-23T09:55:57Z" level=info msg="topic __broker-26-health-check has only one replica, deleting it"
time="2020-10-23T09:55:57Z" level=error msg="error while deleting topic __broker-26-health-check: dial tcp <IP_ADDRESS>:9092: connect: connection refused"
time="2020-10-23T09:55:57Z" level=info msg="topic __broker-replication-check has only one replica, deleting it"
time="2020-10-23T09:55:57Z" level=error msg="error while deleting topic __broker-replication-check: dial tcp <IP_ADDRESS>:9092: connect: connection refused"
time="2020-10-23T09:55:57Z" level=info msg="shutdown finished"

All brokers stopped but 1 (26) but healthcheck stopped everywhere
ZK:

(CONNECTED [<IP_ADDRESS>:2181]) /kafka/rooffire/brokers/topics> ls
__CruiseControlMetrics
_schemas

Restarting one healthcheck
ZK:

(CONNECTED [<IP_ADDRESS>:2181]) /kafka/rooffire/brokers/topics> ls
__CruiseControlMetrics
__broker-26-health-check
__broker-replication-check
_schemas
(CONNECTED [<IP_ADDRESS>:2181]) /kafka/rooffire/brokers/topics> get __broker-replication-check/partitions/0/state
{"controller_epoch":7,"leader":26,"version":1,"leader_epoch":0,"isr":[26]}

Restarting all the healthchecks
IN PROGRESS...


make resource base class for api and identity resources

#829

@brockallen,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by .NET Foundation. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot


Unable to add Allowed Origin URL and Redirect URI in App

Hi Tesla developer team,
We got the client id and client secret but cannot add "https://app.emulate.network/" as Allowed Origin URL(s) and "https://app.emulate.network/tesla" as Allowed Redirect URI(s). Could you please help us with this?

@ThomasAlxDmy @sethterashima @fabianhu Can you please help us with this?

Hi @ThomasAlxDmy @sethterashima @fabianhu,
any updates? this is very urgent for us.

CC: @agbpatro @eiannone @billyevans @aaronpkahn @eltociear @tesla-sdk-publish

I just checked it and this is fixed.


Sass-loader, Webpack 3 and Extract Text not working

Here is my web.config.js. It's not generating the 'commons.css' in the output folder.
/*eslint-disable */
const webpack = require('webpack');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const CleanPlugin = require('clean-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const { AureliaPlugin } = require('aurelia-webpack-plugin');
const path = require('path');
var config = require('./project.build.config.js');
var filesToCopy = [];
//create list of index.html files to be copied to wwwroot
config.apps.forEach(app => {
filesToCopy.push({ from: app.src + '.html', to: config.outDir + app.dest });
});
config.assets.forEach(asset => {
filesToCopy.push(asset);
});
var plugins = [
new CleanPlugin(config.outDir),
new AureliaPlugin({ aureliaApp: undefined }),
new webpack.optimize.CommonsChunkPlugin({ name: 'commons', filename: 'commons.js' }),
new ExtractTextPlugin({
filename: 'commons.css',
disable: false,
allChunks: true
}),
new CopyWebpackPlugin(filesToCopy, { copyUnmodified: false }),
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"window.jQuery": "jquery",
}),
];
var webpackBaseConfig = {
entry: {
app: [
'materialize-loader!./materialize.config.js',
'babel-polyfill',
'aurelia-bootstrapper'
]
},
output: {
path: config.outDir,
chunkFilename: '[name]-[chunkhash].js',
filename: '[name].js'
},
plugins: plugins,
resolve: {
extensions: ['.js'],
alias: {
'$': path.resolve(__dirname, 'node_modules/jquery/dist/jquery.js'),
'jquery': path.resolve(__dirname, 'node_modules/jquery/dist/jquery.js')
}
},
module: {
rules: [{
test: /.js?$/,
include: /src/,
loader: 'babel-loader',
exclude: /node_modules/
},
{
test: /.css$/,
use: ExtractTextPlugin.extract({
fallback: "style-loader",
use: "css-loader"
})
},
{
test: /.scss$/,
use: ExtractTextPlugin.extract({
fallback: 'style-loader',
//resolve-url-loader may be chained before sass-loader if necessary
use: ['css-loader', 'sass-loader']
})
},
{
test: /.html?$/,
include: /src/,
exclude: /node_modules/,
loader: 'html-loader'
},
{
test: /.woff(?v=\d+.\d+.\d+)?$/,
loader: "url-loader?limit=10000&mimetype=application/font-woff"
}, {
test: /.woff2(?v=\d+.\d+.\d+)?$/,
loader: "url-loader?limit=10000&mimetype=application/font-woff"
}, {
test: /.ttf(?v=\d+.\d+.\d+)?$/,
loader: "url-loader?limit=10000&mimetype=application/octet-stream"
}, {
test: /.eot(?v=\d+.\d+.\d+)?$/,
loader: "file-loader"
}, {
test: /.svg(?v=\d+.\d+.\d+)?$/,
loader: "url-loader?limit=10000&mimetype=image/svg+xml"
}, {
test: /.(png|gif|jpe|ico)$/i,
loader: 'file-loader?limit=10000'
}
]
},
};
module.exports = webpackBaseConfig;
/*eslint-enable */

@cemlacrosse please provide minimum reproducible test repo, it is hard to read code in issue and difference to reproduce without repo, thanks!

@evilebottnawi I created this repo that uses the same versions of webpack, extract and sass-loader.
https://github.com/cemlacrosse/super-minimal-aurelia
steps:
git clone repo
npm install
run webpack

@cemlacrosse thanks!

@evilebottnawi I got the sample repo project working with sass. Still haven't gotten it working with my real project which is not possible to put in a github repo.

@cemlacrosse why your expect commons.css? Your don't have configuration for this. If your want to generate common.css your can use this example (https://github.com/webpack/webpack/tree/master/examples/multiple-entry-points-commons-chunk-css-bundle).
Based on first post in issue try to remove allChunks: true, use filename: '[name].css', instead filename: 'commons.css'. CommonsChunkPluginplugin createcommon.jsand yourchunkwhen we should extract all css fromcommon.jsand yourchunkusingExtractTextPlugin. Also your can use minChunksas function to filter modules which your want to have incommon.js, example (get files only from node_modules`):
 minChunks: module =>
        module.resource &&
        /\.js$/.test(module.resource) &&
        module.resource.indexOf(appNodeModules) !== -1,

Thanks!

@evilebottnawi I'm trying to upgrade an aurelia webpack 1.x project to the current versions of all the libraries. I'm finding this to be extremely difficult. This is what the original webpack.base.config looks like.
/*eslint-disable */
var webpack = require('webpack');
var ExtractCss = require('extract-text-webpack-plugin');
var CleanPlugin = require('clean-webpack-plugin');
var CopyWebpackPlugin = require('copy-webpack-plugin');
var AureliaWebpackPlugin = require('aurelia-webpack-plugin');
var path = require('path');

var config = require('./project.build.config.js');

var filesToCopy = [];

//create list of index.html files to be copied to wwwroot
config.apps.forEach( app =>
{
	filesToCopy.push({ from: app.src + '.html', to: config.outDir + app.dest });
});

config.assets.forEach( asset =>
{
	filesToCopy.push(asset);
});

var plugins = [

	new CleanPlugin(config.outDir),

	new AureliaWebpackPlugin(),

	new webpack.optimize.CommonsChunkPlugin({
		name: "commons",
		// (the commons chunk name)

		filename: "commons.js",
		// (the filename of the commons chunk)

		minChunks: 3,
		// (Modules must be shared between 3 entries)

		// chunks: ["pageA", "pageB"],
		// (Only use these entries)
	}),

	new webpack.optimize.CommonsChunkPlugin("commons", "commons.js"),

	new ExtractCss('commons.css', {disable:false, allChunks:false}),

	new CopyWebpackPlugin(filesToCopy, {copyUnmodified:false}),

	new webpack.ProvidePlugin({
		$: "jquery",
		jQuery: "jquery",
		"window.jQuery": "jquery",
	}),
];

// create the apps entry points
var entryPoints = {};
config.apps.forEach( app =>
{
	entryPoints[app.name] = [ 'materialize-loader!./materialize.config.js', 'babel-polyfill', 'whatwg-fetch', app.src];
});

var webpackBaseConfig =
{

	entry:entryPoints,

	output:
	{
		path: config.outDir,
		chunkFilename: '[name]-[chunkhash].js',
		filename: '[name].js'
	},

	plugins:plugins,

	resolve: {
		extensions: ['', '.js'],
		alias: {
			'$': path.resolve(__dirname, 'node_modules/jquery/dist/jquery.js'),
			'jquery': path.resolve(__dirname, 'node_modules/jquery/dist/jquery.js')
		}
	},

	module: {
		loaders: [
			{
				test: /\.js?$/,
				include: /src/,
				loader: 'babel', // 'babel-loader' is also a legal name to reference
				query: {
					cacheDirectory: true,
					presets: ['es2015-loose', 'stage-1'],
					plugins: ['transform-decorators-legacy']
				}
			},
			{
				test: /\.css$/,
				loader: ExtractCss.extract('style-loader', 'css-loader')
			},
			{
				test: /\.scss?$/,
				loader: ExtractCss.extract('style', 'css-loader!sass-loader')
			},
			{
				test: /\.html?$/,
				loader: 'html'
			},
			{
				test: /\.woff(\?v=\d+\.\d+\.\d+)?$/,
				loader: "url?limit=10000&mimetype=application/font-woff"
			}, {
				test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/,
				loader: "url?limit=10000&mimetype=application/font-woff"
			}, {
				test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/,
				loader: "url-loader?limit=10000&mimetype=application/octet-stream"
			}, {
				test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,
				loader: "file-loader"
			}, {
				test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
				loader: "url-loader?limit=10000&mimetype=image/svg+xml"
			}, {
                test: /\.(png|gif|jpe|ico)$/i,
                loader: 'file?limit=10000'
            }
		],
		preLoaders: [
			{
				test: /\.js/,
				loader: 'eslint',
				include: /src/,
				exclude:/(node_modules|thirdparty|errors)/
			}
		]
	},
};

module.exports = webpackBaseConfig;
/*eslint-enable */

@cemlacrosse for ExtractCss use:
ExtractCss({
  disable: false,
  filename: "[name].css",
  allChunks: true
})

@evilebottnawi I tried that. It's still not writing the commons.css file in the output directory.
/*eslint-disable */
var webpack = require('webpack');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var CleanPlugin = require('clean-webpack-plugin');
var CopyWebpackPlugin = require('copy-webpack-plugin');
var AureliaWebpackPlugin = require('aurelia-webpack-plugin');
var path = require('path');

var config = require('./project.build.config.js');

var filesToCopy = [];

//create list of index.html files to be copied to wwwroot
config.apps.forEach(app => {
  filesToCopy.push({ from: app.src + '.html', to: config.outDir + app.dest });
});

config.assets.forEach(asset => {
  filesToCopy.push(asset);
});

var plugins = [

  new CleanPlugin(config.outDir),

  new AureliaWebpackPlugin.AureliaPlugin({ aureliaApp: undefined }),

  new webpack.optimize.CommonsChunkPlugin({
    name: "commons",
    // (the commons chunk name)

    filename: "commons.js",
    // (the filename of the commons chunk)

    minChunks: 3,
    // (Modules must be shared between 3 entries)

    // chunks: ["pageA", "pageB"],
    // (Only use these entries)
  }),

  new webpack.optimize.CommonsChunkPlugin({
    name: 'commons',
    filename: 'commons.js'
  }),

  new ExtractTextPlugin({
    disable: false,
    filename: "[name].css",
    allChunks: true
  }),

  new CopyWebpackPlugin(filesToCopy, { copyUnmodified: false }),

  new webpack.ProvidePlugin({
    $: "jquery",
    jQuery: "jquery",
    "window.jQuery": "jquery",
  }),
];

// create the apps entry points
var entryPoints = {};
config.apps.forEach(app => {
  entryPoints[app.name] = ['materialize-loader!./materialize.config.js', 'babel-polyfill', 'whatwg-fetch', 'aurelia-bootstrapper'];
});

var webpackBaseConfig = {

  entry: entryPoints,

  output: {
    path: config.outDir,
    chunkFilename: '[name]-[chunkhash].js',
    filename: '[name].js'
  },

  plugins: plugins,

  resolve: {
    extensions: ['.js'],
    modules: ['src', 'node_modules'],
    alias: {
      '$': path.resolve(__dirname, 'node_modules/jquery/dist/jquery.js'),
      'jquery': path.resolve(__dirname, 'node_modules/jquery/dist/jquery.js')
    }
  },

  module: {
    rules: [{
        test: /\.js$/i,
        loaders: 'babel-loader',
        exclude: /node_modules/,
        query: {
          presets: [
            ['env', { loose: true, modules: true }]
          ],
          plugins: ['transform-class-properties', 'transform-decorators-legacy']
        }
      },
      {
        test: /\.css$/i,
        use: ExtractTextPlugin.extract({
          fallback: 'style-loader',
          use: 'css-loader'
        }),
      },
      {
        test: /\.scss$/,
        exclude: /node_modules/,
        use: ExtractTextPlugin.extract({
          use: ['css-loader', 'sass-loader']
        })
      },
      {
        test: /\.html?$/i,
        use: 'html-loader'
      },
      {
        test: /\.woff(\?v=\d+\.\d+\.\d+)?$/,
        use: "url-loader?limit=10000&mimetype=application/font-woff"
      },
      {
        test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/,
        use: "url-loader?limit=10000&mimetype=application/font-woff"
      },
      {
        test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/,
        use: "url-loader?limit=10000&mimetype=application/font-woff"
      },
      {
        test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,
        use: "file-loader"
      },
      {
        test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
        use: "url-loader?limit=10000&mimetype=image/svg+xml"
      },
      {
        test: /\.(png|gif|jpe|ico)$/i,
        use: 'file-loader?limit=10000'
      }
    ]
  },
};

module.exports = webpackBaseConfig;
/*eslint-enable */

@cemlacrosse it is not works? If yes which error your get?

@evilebottnawi it's still not working. There are just fewer output files with no error messages after the updates.   It's not writing *.css, *.woff2 and *.eot files to the output folder like it did before the updates.
This is the old output before the updates.

"Start bundling"
Executing additional scripts before exit
Hash: edcd38b9b3f27c4df69e
Version: webpack 1.13.2
Time: 10770ms
                                 Asset       Size  Chunks             Chunk Names
39b2c3031be6b4ea96e2e3e95d307814.woff2      50 kB          [emitted]
  dfe56a876d0282555d1e2458e278060f.eot    21.7 kB          [emitted]
 7500519de3d82e33d1587f8042e2afcb.woff    61.6 kB          [emitted]
  94998475f6aea65f558494802416c1cf.ttf     128 kB          [emitted]
  a990f611f2305dc12965f186c2ef2690.eot    20.9 kB          [emitted]
69f8a0617ac472f78e45841323a3df9e.woff2    49.4 kB          [emitted]
 3b813c2ae0d04909a33a18d792912ee7.woff    62.3 kB          [emitted]
  46e48ce0628835f68a7369d0254e4283.ttf     127 kB          [emitted]
  30799efa5bf74129468ad4e257551dc3.eot    21.3 kB          [emitted]
2751ee43015f9884c3642f103b7f70c9.woff2    49.2 kB          [emitted]
 ba3dcd8903e3d0af5de7792777f8ae0d.woff    61.7 kB          [emitted]
  df7b648ce5356ea1ebce435b3459fd60.ttf     126 kB          [emitted]
  4d9f3f9e5195e7b074bb63ba4ce42208.eot    21.4 kB          [emitted]
574fd0b50367f886d359e8264938fc37.woff2    50.2 kB          [emitted]
 fc78759e93a6cac50458610e3d9d63a0.woff      63 kB          [emitted]
  894a2ede85a483bf9bedefd4db45cdb9.ttf     127 kB          [emitted]
  ecdd509cadbf1ea78b8d2e31ec52328c.eot      21 kB          [emitted]
954bbdeb86483e4ffea00c4591530ece.woff2    48.5 kB          [emitted]
 dc81817def276b4f21395f7ea5e88dcd.woff    62.9 kB          [emitted]
  e31fcf1885e371e19f5786c2bdfeae1b.ttf     128 kB          [emitted]
  04e13158c8cf15ff8687e1af8b1105f7.png       5 kB          [emitted]
  a2ce4f1850f542ff4ee46aac30658ffa.ico    1.15 kB          [emitted]
                               /app.js    1.08 MB    0, 2  [emitted]  /app
           app-2df9b6410277861dcec0.js    2.04 MB    1, 2  [emitted]  app
                            commons.js    3.76 kB       2  [emitted]  commons
                           commons.css     158 kB    0, 2  [emitted]  /app
                           /app.js.map    1.37 MB    0, 2  [emitted]  /app
                       commons.css.map   88 bytes    0, 2  [emitted]  /app
       app-2df9b6410277861dcec0.js.map    2.34 MB    1, 2  [emitted]  app
                        commons.js.map    3.83 kB       2  [emitted]  commons
                            index.html    1.06 kB          [emitted]
                activate/Activate.html    1.22 kB          [emitted]
            activate/Unauthorized.html  309 bytes          [emitted]
      images/user_icon_placeholder.png       5 kB          [emitted]
                           favicon.ico    1.15 kB          [emitted]
   [0] multi /app 64 bytes {0} [built]
 [378] ./src ^\.\/.*$ 24.7 kB {1} [built]
    + 959 hidden modules
Child extract-text-webpack-plugin:
        + 23 hidden modules

This is the new output with the missing files after the updates.
"Start bundling"
Executing additional scripts before exit
Hash: d439fd05ca0b30ea3a19
Version: webpack 3.4.1
Time: 3078ms
                                 Asset       Size  Chunks                    Chunk Names
 eed9aab5449cc9c8430d7d258108f602.woff    90.3 kB          [emitted]
1f35e6a11d27d2e10d28946d42332dc5.woff2    63.1 kB          [emitted]
3c37aa69cd77e6a53a067170fa8fe2e9.woff2    64.3 kB          [emitted]
 ea36cd9a0e9eee97012a67b8a4570d7b.woff    89.7 kB          [emitted]
5136cbe62a63604402f2fedb97f246f8.woff2    64.8 kB          [emitted]
 3cf6adf61054c328b1b0ddcd8f9ce24d.woff    89.8 kB          [emitted]
1561b424aaef2f704bbd89155b3ce514.woff2    65.4 kB          [emitted]
 cf4d60bc0b1d4b2314085919a00e1724.woff    90.6 kB          [emitted]
c0f1e4a4fdfb8048c72e86aadb2a247d.woff2    64.8 kB          [emitted]
 44b78f142603eb69f593ed4002ed7a4a.woff    88.1 kB          [emitted]
                               /app.js    1.21 MB       0  [emitted]  [big]  /app
                            commons.js    5.88 kB       1  [emitted]         commons
                           /app.js.map    1.45 MB       0  [emitted]         /app
                        commons.js.map       6 kB       1  [emitted]         commons
                            index.html    1.06 kB          [emitted]
            activate/Unauthorized.html  309 bytes          [emitted]
                activate/Activate.html    1.22 kB          [emitted]
      images/user_icon_placeholder.png       5 kB          [emitted]
                           favicon.ico    1.15 kB          [emitted]
  [59] (webpack)/buildin/global.js 509 bytes {0} [built]
 [148] multi aurelia-webpack-plugin/runtime/pal-loader-entry materialize-loader!./materialize.config.js babel-polyfill whatwg-fetch aurelia-bootstrapper 76 bytes {0} [built]
 [151] (webpack)/buildin/harmony-module.js 596 bytes {0} [built]
 [152] ./node_modules/materialize-loader/index.loader.js!./materialize.config.js 312 bytes {0} [built]
 [153] ./node_modules/style-loader!./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./node_modules/materialize-loader/materialize-styles.loader.js!./materialize.config.js 1.34 kB {0} [built]
 [154] ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./node_modules/materialize-loader/materialize-styles.loader.js!./materialize.config.js 215 kB {0} [built]
    + 403 hidden modules

@cemlacrosse just update your test repo with new config, but it is not bug it is just question about how configure your configuration, more suitable place for this is stackoverflow, we have a lot of issue every day.

@evilebottnawi Thanks. I think that I maybe solved my ExtractTextPlugin problem.

@cemlacrosse I am facing a similar issue. How were you able to fix this?

@althamash-chaipoint seems it is just invalid configuration, without test repo it is difficult says something about problem

@althamash-chaipoint It was the configuration. They seem to be changing how you have to configure it. It's a moving target. What works now may not work in the next release. And Aurelia is still working with my current configuration. I'm stilling working out the bugs with the aurelia-webpack-plugin.
This is part of the configuration for the Extract Text Plugin. Your entry point also matters a lot because that tells webpack what files it needs to include in the build.
// imports
var ExtractTextPlugin = require('extract-text-webpack-plugin');

//plugins
new ExtractTextPlugin({
    disable: false,
    filename: 'commons.css',
    allChunks: true
  }),

//module rules
       test: /\.css$/i,
        use: ExtractTextPlugin.extract({
          fallback: 'style-loader',
          use: 'css-loader'
        }),
      },
      {
        test: /\.scss$/i,
        exclude: /node_modules/,
        use: ExtractTextPlugin.extract({
          use: ['css-loader', 'sass-loader']
        })

I have the same issue using
"extract-text-webpack-plugin": "^3.0.0",
"webpack": "^3.5.5",
webpack.config.js
There is no any errors/warnings in console. The styles just don't loads in the document.

If it helps anyone, I made a mistake when importing the scss file. I changed the import statement from
import ('./test.scss')
to
import './test.scss'
Refer https://github.com/webpack-contrib/extract-text-webpack-plugin/issues/607

@IvanKalinin @althamash-chaipoint please create new issue, don't write own problems in this issue, because it is likely not to be answered, thanks!
@cemlacrosse can we close this issue?

I was trying to create a separate bundle for css based on the chunks name using extract-text-webpack-plugin with<EMAIL_ADDRESS>having the same issue.
I have added a web pack config in bitbucket server. please find it from below URL https://bitbucket.org/nishanth7475/webpackconfigalone/src/dca35d8c0eb31debfcefa2f7f282f987604b6d97?at=master

Please don't write about your problem here. Create new issue with description and test repo. Thanks! Original issue was resolved.


Schema DDL: Integrate scalafmt

Similar to snowplow/snowplow-elasticsearch-loader#101 to help smooth code-reviews.
c.f. snowplow/scala-maxmind-iplookups@815677a for ref for the config

could give it a try

Hi @saj1th! Yes, that's exactly right. All projects in iglu monorepository are separate artifacts and have separate build configurations, so we're treating them accordingly.

cool! would do that

@saj1th just could you please open a PR against release/0.6.0?

@chuwy  is release/0.6.0 applicable for snowplow/iglu along with  snowplow/iglu-scala-client ?
Sorry If i'm missing something. For iglu I'm seeing release/r11
Please shed some light

@saj1th primary Iglu repository and Iglu client are not aligned in their versionings. We use Release-convention (Rxx) for mono-repositories (e.g. Iglu R11) and Version-convention (x.y.z) for common repositories (e.g. Iglu Client Version 0.6.0).
So, don't worry about that.

@chuwy
Let me try and rephrase it . Isn't release/0.6.0 for changes in snowplow/iglu-scala-client  only
Since snowplow/iglu is a different github repository, wondering how to open a PR for changes in snowplow/iglu against release/0.6.0
May be i'm missing something very basic here  👀

Hey @saj1th, I'm very sorry about that, I indeed confused repositories, I thought this talk is happening in Iglu Client's one.

Migrated to https://github.com/snowplow-incubator/schema-ddl/issues/15


fix(app): added i18n bottombar

PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows our guidelines: https://github.com/riccardoperra/codeimage/blob/main/CONTRIBUTING.md#commit
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[X] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

What is the current behavior?

Issue Number: #207
What is the new behavior?
the bottom it'not more hardcoded but use i18n strategy
Does this PR introduce a breaking change?
[ ] Yes
[ x] No

Other information
https://github.com/riccardoperra/codeimage/issues/207

pnpm-lock.zip


Policy Sector and Stage of Development normalisation

The pie charts are generated directly from the data. In this case, there are slight differences in the values used. For example, the policy sector for 29 of the projects is "Homelessness", but there is one where space has been added to the end of the value, "Homelessness ". This has created duplicate values in the chart. And there are some which have a different case, or ampersands vs words (i.e. ‘Education and early years’ vs ‘Education and Early Years’, and ‘Health and wellbeing’ vs ‘Health & wellbeing’).
If we can normalise these towards the codelist that would be ideal. The alternative suggested by Golab is to remove the pie charts completely for launch.
This should be done for Policy Sector (purpose_and_classifications/policy_sector/value) and Stage of Development (stage_development/value), ideally.

Live


Misprint in README.md

There's a misprint in the readme

The malediction of using copy-paste. Indeed, you are right. I will merge tomorrow and will publish it to npm the same day. Thanks for noticing and correcting it!

Wow omg, I forgot about this. I'm so sorry. I'm back on GitHub and do this before next week!

I looked at it in january but I decided to not merge because v12 is not supported anymore and I was working on making this module work on discord.js v14. README has been updated for this version (see #60).
If you have any ideas or want to participate to any other opened issue, do not hesitate though!
I'm really sorry for lasttime delay, but it won't happen again.


Grey out users not subscribed from the Stream view

Currently, I'm I'm looking at a given topic or stream and I click on a a message so that it has the blue box around it, users in that stream will get greyed out which can be a useful visual cue. However, this does not happen if no message is selected.

Yep, the reason we do that only when you open the compose box is to make it obvious, when you're composing, which topic you're talking to.  When you're not composing, we just leave everything bright to make it more readable.
This is an intended feature, so I'm going to close the issue.
If you have additional feedback on this, you probably should just chat on our #design stream on https://chat.zulip.org.  We call this feature "compose fade"--if you use that terminology, most people will know what you're talking about.


Add the ability to handle "expect_disconnect" in provisioner

Packer supports the ability to handle "expect_disconnect". This is useful to restart macOS catalina during a build of packer.
As of today, when I attempt to shutdown macOS in a packer template for anka I get this:

veertu-anka: -anka: communication broken
--
  | veertu-anka: Shutdown NOW!
  | veertu-anka:
  | veertu-anka: System shutdown time has arrived

Hey @jerrymarino, I've talked with our developers and they say this can be added. I've opened the ticket on our end and will notify you once we determine which release it will be a part of.

Hey @jerrymarino, this seems to work for me in our v1.6.0 branch using:
{
  "provisioners": [
    {
      "type": "shell",
      "inline": [
        "set -x",
        "sudo reboot",
        "echo SHOULD NOT SEE THIS ECHO"
      ],
      "expect_disconnect": true
    },
    {
      "type": "shell",
      "inline": [
        "set -x",
        "echo REBOOTED"
      ]
    }
  ],
  "builders": [{
    "type": "veertu-anka",
    "source_vm_name": "10.15.6"
  }]
}

We'll be releasing it in the next few days.

Was able to reproduce this in CI/CD. We'll take a further look.

Out of ~420 runs, we were finally able to reproduce this locally. Investigation is ongoing.

Known issue with IP changes: https://github.com/hashicorp/packer/issues/10175

In 2.1.0 expect_disconnect is working as expected. There is an extremely rare situation where anka will not reboot properly, but the changes of that are slim. Closing this for now.


make rtt does not work on Linux machines that do not have x-terminal-emulator

I've pushed a fix here: https://github.com/lab11/nrf52x-base/pull/11. After it gets merged, we need to update the submodules in buckler and lf-buckler...

This was merged, but I'm hesitant to update the submodule because there are no regression tests. We should make sure that updating doesn't break anything. A temporary workaround is to run the following command export TERMINAL=gnome-terminal or whatever terminal you wish to use that is not x-terminal-emulator.


[RFR] Translated missing parts of Portuguese (PT-pt) sections

Translated the new code snippets and reviewed the whole document to make the language consistent with the new writing agreement.

Thaaaaanks guys! This is so great. :)
In case you wonder, this is what I had to change in your PR: https://github.com/HugoGiraudel/sass-guidelines/commit/5a1e967aba28baecc7bd65acac82873454923362.

A very weird celebration gif... but a celebration nontheless! :)


Database significantly larger than contents

I have a cluster with about 20k keys in it, most of them fairly small (<100 bytes), but the size of the database is larger than I would expect. My intuition could be wrong, but I wanted to reach out and see if someone could help me work out what is going on.
There are no v2 keys
There are 22k v3 keys
The size of a snapshot and the size reported in endpoint status is 2.6GB after compaction and 1.6GB after defrag.
If I dump everything as protobuf/json with ETCDCTL_API=3 etcdctl get "" --prefix -w protobuf > content.pb then it is only 2.4MB (4.5MB for json)
The size has started to cause problems for me (like backups not working because the snapshot took too long). Why is the size on disk/snapshot 3 orders of magnitude bigger than the contents exported as protobuf/json? Is there some other kind of history that I can get rid of with something other than compaction/defrag?
BTW I get similar results on 3.2.4 and 3.1.8.

20k keys in it

what's the size of value?

Most values are about 10-20bytes, but when you export as protobuf it incudes the values (+revisions+version etc), so the information in the keys+values together is less than 2.4MB

The biggest value is maybe 500 bytes

@immesys
have you ever compacted your kv space?

and how did you run the compact/defrag command?

I have a production cluster of three machines running 3.1.8. To try and investigate this more, I took a snapshot from that and restored it on a single node 3.1.8 (and a 3.2.4 in case it was fixed). I did an etcdctl get on a key to get the global revision and did ETCDCTL_API=3 etcdctl compaction <rev>. This did not change the size (it stays at 2.6GB) but I suspect it was already compacted because of the snapshot (or because production compacts every hour). I then did ETCDCTL_API=3 etcdctl defrag with a long command timeout. It finishes after a few tens of seconds and the database size is then 1.6GB on 3.2.4 and 1.3GB on 3.1.8. If I do a snapshot after the defrag, the new snapshot is exactly the same size as the database directory.
I can give you the snapshot if you would like.

@immesys
can you try to pull out all the keys, recreate a fresh etcd cluster, and put the keys to the new cluster? then check the size of the new cluster?
you can email it to me at<EMAIL_ADDRESS>i can take a look later this week. i suspect there is a really simple cause somewhere.

I did actually just notice something. Look at this:
 ETCDCTL_API=3 ./etcdctl get "" --prefix --keys-only --hex=true | wc -l
44536

So ~45k keys by that method. But look at the snaphsot itself:
 ETCDCTL_API=3 ./etcdctl snapshot status ../foo.sn -w table
+----------+-----------+------------+------------+
|   HASH   | REVISION  | TOTAL KEYS | TOTAL SIZE |
+----------+-----------+------------+------------+
| 114f3112 | 167175255 |   11305527 |     2.7 GB |
+----------+-----------+------------+------------+

That says 11 million keys. Now it's not impossible that my software has a bug and has put 11 million keys in when I was not expecting it, but why do they not show up in get "" --prefix ?
Also, when I do this
ETCDCTL_API=3 ./etcdctl get "" --prefix -w json | jq . | tail -n 10

I get this field at the end, which is why I (perhaps erroneously) thought there were only 22k keys
  "count": 22268
}

@immesys
how did you do the compaction?
you need to something like etcdctl compact 167175255

Yeah, like that. This is what I get when I do it again:
$ export ETCDCTL_API=3
$ ./etcdctl endpoint status -w json | jq '.[0].Status.header.revision'
167175256
$ ./etcdctl compact 167175256
Error:  etcdserver: mvcc: required revision has been compacted

@immesys have you created a lot of leases?

Possibly, but I doubt that many. It's a 5 second lease and we use client.KeepAlive(). We don't create more than 1 per execution and I doubt we have restarted more than a few thousand times.

there should be lease list command. can you try that out?

I can't find the lease list command, only variants that take an id

@immesys OK. too bad then. probably you have to send the snapshot to me... we will write some docs around debugging the snapshot file in the future.

Ok am uploading it somewhere, I'll email you a link.
I actually can't find a way to list leases either with etcdctl or the go clientv3 bindings, is there a way?

@immesys probably i remember it incorrectly :( at some point, we thought about adding it. probably we decided it is a bad idea if no one has ever asked for it.

@xiang90 any ideas? Did you get the snapshot I emailed?

@immesys yes. i will take a look today.

@immesys
I took a look at the db file you sent me. There are tons of historical keys. Then I did a compaction at the most recent revision: 167117792. It took 1 minutes or so to finish the compaction since there are A LOT OF keys. Then I did a defrag. The db size went back to 77MB.

Ok, thank you, it turns out I was not waiting for the compaction to finish (I needed physical=true)

@immesys Glad that you figured it out.


Research query audit

Need to investigate what kind of information we can extract from gcp logs https://cloud.google.com/logging/docs/audit


Score gauge component

v1

Correctly import highcharts to handle solid gauges
Create component with correct configuration for solid gauge chart to match our intended designs for a health score
Add optional, light customizations to the gauge chart
Skip a currently failing test to be investigated

ember test results:
skip 1 Chrome 68.0 - [0 ms] - Acceptance | datasets/dataset/comments: visiting /datasets/dataset/comments
skip 2 Chrome 68.0 - [0 ms] - Acceptance | datasets/dataset/ownership: visiting /datasets/dataset/ownership
...
ok 378 Chrome 68.0 - [2 ms] - Unit | Utility | validators/urn: buildLiUrn
ok 379 Chrome 68.0 - [1 ms] - ember-qunit: Ember.onerror validation: Ember.onerror is functioning properly

1..379
# tests 379
# pass  372
# skip  7
# fail  0

# ok

Reference for appearance with various states:

Travis CI build failure being fixed in PR https://github.com/linkedin/WhereHows/pull/1307. Going to merge in the meantime


Add ModernAVPlayer repo

Don't worry about the failing check, it's just because you're not using master as your default branch. I can see the Package.swift is good. 👍
Thank you!


Bump luet-makeiso version

The new version allows specifying compression.
It might be useful to developers by changing the compressor to zstd to speed up the building process.
diff --git a/package/harvester-os/iso.yaml b/package/harvester-os/iso.yaml
index 694f8bf..7fe320e 100644
--- a/package/harvester-os/iso.yaml
+++ b/package/harvester-os/iso.yaml
@@ -19,4 +19,4 @@ luet:
         - quay.io/costoolkit/releases-green
       type: docker
 squashfs_options:
-  compression: xz
+  compression: zstd

@yaocw2020 You might be interested in this one. The speed increase is noticeable.


feat: added url cmd to render download urls based on passed in arch and os values and config file

This cmd will help to simplify our Makefile logic to download binary dependencies. As the values used for os and arch as well as the structure of the download url for different binary tools are not standardized it makes it quite cumbersome to handle this efficiently in Makefiles.
kubectl-default.yaml:
version: v1.20.2
url: https://storage.googleapis.com/kubernetes-release/release/{{.Version}}/bin/{{.Os}}/{{.Architecture}}/kubectl

Using the url command using the config above results in the following download url:
$ ./ory dev ci deps url -o darwin -a amd64 -c kubectl-default.yaml
https://storage.googleapis.com/kubernetes-release/release/v1.20.2/bin/darwin/amd64/kubectl

If a given projects does use the default values for os: linux, darwin or architecture: amd64 you can specify custom values for each of them:
kubectl-custom.yaml:
version: v1.20.2
url: https://storage.googleapis.com/kubernetes-release/release/{{.Version}}/bin/{{.Os}}/{{.Architecture}}/kubectl
architecture-mapping:
  amd64: x64
os-mapping:
  darwin: mac
  linux: unix

$ ./ory dev ci deps url -o darwin -a amd64 -c kubectl-custom.yaml
https://storage.googleapis.com/kubernetes-release/release/v1.20.2/bin/mac/x64/kubectl

$ ./ory dev ci deps url -o linux -a amd64 -c kubectl-custom.yaml
https://storage.googleapis.com/kubernetes-release/release/v1.20.2/bin/unix/x64/kubectl

Checklist

[x] I have read the contributing guidelines
and signed the CLA.
[x] I have read the security policy.
[x] I confirm that this pull request does not address a security
vulnerability. If this pull request addresses a security vulnerability, I
confirm that I got green light (please contact
<EMAIL_ADDRESS>from the maintainers to push
the changes.
[x] I have added tests that prove my fix is effective or that my feature
works.
[x] I have added necessary documentation within the code base (if
appropriate).

I think I cant use the commit hash in the go.mod file in the other repo to import the PR version, as it is still in my branch in my repo... at least go mod tidy tells me it doesnt know the revision :( But anyway once merged it will work.

I think I cant use the commit hash in the go.mod file in the other repo to import the PR version, as it is still in my branch in my repo... at least go mod tidy tells me it doesnt know the revision :( But anyway once merged it will work.

I think I cant use the commit hash in the go.mod file in the other repo to import the PR version, as it is still in my branch in my repo... at least go mod tidy tells me it doesnt know the revision :( But anyway once merged it will work.

replace github.com/ory/cli => github.com/tricky42/cli your-commit-hash

I think I cant use the commit hash in the go.mod file in the other repo to import the PR version, as it is still in my branch in my repo... at least go mod tidy tells me it doesnt know the revision :( But anyway once merged it will work.

replace github.com/ory/cli => github.com/tricky42/cli your-commit-hash


Uncaught TypeError: Cannot read property 'then' of undefined

[Enter steps to reproduce below:]

...
...

Atom Version: 1.6.2
System: Mac OS X 10.11.4
Thrown From: ex-mode package, v0.8.0
Stack Trace
Uncaught TypeError: Cannot read property 'then' of undefined
At /Users/blandor/.atom/packages/ex-mode/lib/ex-state.coffee:90

TypeError: Cannot read property 'then' of undefined
    at Formatter.module.exports.Formatter.formatEditor (/Users/blandor/.atom/packages/dart-tools/lib/formatter.coffee:66:19)
    at Formatter.formatEditor (/Users/blandor/.atom/packages/dart-tools/lib/formatter.coffee:1:1)
    at /Users/blandor/.atom/packages/dart-tools/lib/formatter.coffee:84:8
    at Function.module.exports.Emitter.simpleDispatch (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/event-kit/lib/emitter.js:25:14)
    at Emitter.module.exports.Emitter.emit (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/event-kit/lib/emitter.js:125:28)
    at TextBuffer.module.exports.TextBuffer.saveAs (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/text-buffer/lib/text-buffer.js:1073:27)
    at TextBuffer.module.exports.TextBuffer.save (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/text-buffer/lib/text-buffer.js:1043:19)
    at TextEditor.module.exports.TextEditor.save (/Applications/Atom.app/Contents/Resources/app.asar/src/text-editor.js:629:26)
    at /Users/blandor/.atom/packages/ex-mode/lib/ex.coffee:208:27
    at trySave (/Users/blandor/.atom/packages/ex-mode/lib/ex.coffee:11:5)
    at Ex.write (/Users/blandor/.atom/packages/ex-mode/lib/ex.coffee:208:9)
    at Ex.w (/Users/blandor/.atom/packages/ex-mode/lib/ex.coffee:228:6)
    at /Users/blandor/.atom/packages/ex-mode/lib/ex.coffee:1:1
    at Command.execute (/Users/blandor/.atom/packages/ex-mode/lib/command.coffee:153:7)
    at ExState.processOpStack (/Users/blandor/.atom/packages/ex-mode/lib/ex-state.coffee:83:19)
    at ExState.pushOperations (/Users/blandor/.atom/packages/ex-mode/lib/ex-state.coffee:69:21)
    at ExViewModel.ViewModel.confirm (/Users/blandor/.atom/packages/ex-mode/lib/view-model.coffee:25:20)
    at ExViewModel.module.exports.ExViewModel.confirm (/Users/blandor/.atom/packages/ex-mode/lib/ex-view-model.coffee:53:44)
    at ExViewModel.confirm (/Users/blandor/.atom/packages/ex-mode/lib/ex-view-model.coffee:3:61)
    at ex-command-mode-input.ExCommandModeInputElement.confirm (/Users/blandor/.atom/packages/ex-mode/lib/ex-normal-mode-input-element.coffee:51:16)
    at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:260:29)
    at /Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:3:61
    at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:580:16)
    at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:388:22)
    at WindowEventHandler.module.exports.WindowEventHandler.handleDocumentKeydown (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:97:36)
    at HTMLDocument.<anonymous> (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:3:61)

Commands
     -0:21 vim-mode:activate-insert-mode (atom-text-editor.editor.vim-mode.normal-mode.is-focused)
  4x -0:20.2.0 core:backspace (atom-text-editor.editor.vim-mode.is-focused.insert-mode)
     -0:15.6.0 vim-mode:activate-normal-mode (atom-text-editor.editor.vim-mode.is-focused.insert-mode)
     -0:15.3.0 vim-mode:insert-after-end-of-line (atom-text-editor.editor.vim-mode.is-focused.normal-mode)
     -0:14.5.0 vim-mode:activate-normal-mode (atom-text-editor.editor.vim-mode.is-focused.insert-mode)
     -0:14.3.0 vim-mode:insert-below-with-newline (atom-text-editor.editor.vim-mode.is-focused.normal-mode)
     -0:14 dartlang:newline (atom-text-editor.editor.vim-mode.is-focused.insert-mode)
     -0:14 editor:newline (atom-text-editor.editor.vim-mode.is-focused.insert-mode)
     -0:11.2.0 dartlang:newline (atom-text-editor.editor.vim-mode.is-focused.insert-mode)
     -0:11.2.0 editor:newline (atom-text-editor.editor.vim-mode.is-focused.insert-mode)
  2x -0:06.2.0 core:backspace (atom-text-editor.editor.vim-mode.is-focused.insert-mode)
     -0:03.6.0 vim-mode:activate-normal-mode (atom-text-editor.editor.vim-mode.is-focused.insert-mode)
     -0:02.6.0 vim-mode:insert-after-end-of-line (atom-text-editor.editor.vim-mode.is-focused.normal-mode)
     -0:02.2.0 vim-mode:activate-normal-mode (atom-text-editor.editor.vim-mode.is-focused.insert-mode)
     -0:01.5.0 ex-mode:open (atom-text-editor.editor.vim-mode.is-focused.normal-mode)
     -0:00.8.0 core:confirm (atom-text-editor.editor.mini.is-focused)

Config
{
  "core": {
    "disabledPackages": [
      "go-playground"
    ],
    "followSymlinks": false
  }
}

Installed Packages
# User
atom-toolbar, v0.1.6
autocomplete-go, v1.0.5
builder-go, v1.0.0
dart-tools, v0.9.23
dartlang, v0.6.9
environment, v1.2.0
ex-mode, v0.8.0
file-icons, v1.7.0
go-config, v1.1.2
go-find-references, v1.2.3
go-get, v1.0.2
go-plus, v4.1.0
gofmt, v1.1.3
gometalinter-linter, v1.1.0
gorename, v1.0.0
language-go, v0.42.0
language-rust, v0.4.6
linter, v1.11.4
linter-dartanalyzer, v0.3.2
linter-rust, v0.4.1
linter-swiftc, v2.0.0
navigator-godef, v1.0.2
python-indent, v0.4.3
python-tools, v0.6.7
synced-sidebar, v0.4.3
tester-go, v1.0.3
vim-mode, v0.65.0

# Dev
No dev packages

How did you  encounter this error? And does it also occur when you disable the dart-tools package?

It happened when I was saving a .dart file use :w. And it still happened after i disabled dart-tools.

On Apr 7, 2016, at 06:40, Jasper v. B<EMAIL_ADDRESS><EMAIL_ADDRESS>wrote:
How did you encounter this error? And does it also occur when you disable the dart-tools package?
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub https://github.com/lloeki/ex-mode/issues/136#issuecomment-206599471

@brucelandor Can you reproduce this on atom 1.18?


Experiment plotting improvements

Problem
Describe the problem your PR is trying to solve
Proposed changes
Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request.
If it fixes a bug or resolves a feature request, be sure to link to that issue.
Types of changes
What types of changes does your code introduce to causaltune?
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation Update (if none of the other choices apply)

Checklist

[ ] I have read the CONTRIBUTING doc
[ ] Description above provides context of the change
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] Unit tests for changes (not needed for documentation changes)
[ ] Bumping version in setup.py is an individual PR and not mixed with feature or bugfix PRs
[ ] Commits follow "How to write a good git commit message"
[ ] Relevant documentation is updated including usage instructions

Ah broke some test. Will fix.