Concentric states causing issues during hot reload ("Tried to get the state instance for ChatState, but it's not a state class.")

Describe the bug
I have two files: main.py (hosting my page) and chat.py (my component).
In each file, they use State and ChatState @me.stateclass, respectively:
# main.py

@me.stateclass
class State:
  attachment_path: str | None = None
  attachment_mime_type: str | None = None

# chat.py

@me.stateclass
class ChatState:
  input: str
  output: list[MesopMessage]
  in_progress: bool = False
  attachment_name: str
  attachment_size: int
  attachment_mime_type: str
  attachment_contents: str

If I edit main.py, hot reload works fine. If I edit chat.py, I get the following error:
**Mesop Developer Error:** Tried to get the state instance for `ChatState`, but it's not a state class.

Did you forget to decorate your state class `ChatState` with @stateclass?
**Mesop Developer Error:** Tried to get the state instance for `ChatState`, but it's not a state class.

Did you forget to decorate your state class `ChatState` with @stateclass?

and need to restart the server.
Button components and others have State inside ("concentric" state), so I'm not sure why this wouldn't be possible. I'm led to believe https://google.github.io/mesop/guides/troubleshooting/ should have information about this, but it's currently 404'ing, and the only snapshot on archive.org says the state must be serializable (which it is).
Expected behavior
Hot reload will reload chat.py without state errors.

Similar setup same error:
Did you forget to decorate your state class Statewith @stateclass? **Mesop Developer Error:** Tried to get the state instance forState`, but it's not a state class.
Did you forget to decorate your state class State with @stateclass?`

@dltn in your example ChatState is not annotated with @me.stateclass, but it should. Let me know if that solves your issue.
@goran-markovic85 - similar for your use case, I think you need to annotate your state class.

Whoops @wwwillchen, it is annotated @me.stateclass, I just missed it when copying into the issue.

After updating to 0.9.2 and picking up the changes in #520, I'm getting the new Exception
Unhandled stateclass deserialization where key=content, value=draw x=1, instance=Message(role='user')

which seems related?

Ah, yes, my issue is that I'm trying to use separate State in two different files. If I debug here, I can see an attempt to instantiate State with JSON data from ChatState:
Unhandled stateclass deserialization where key=input, value=, instance=State(attachment_path=None, attachment_mime_type=None)

State(attachment_path=None, attachment_mime_type=None)

{'input': '', 'output': [{'role': 'user', 'type': 'text', 'content': 'hi'}, {'role': 'assistant', 'type': 'text', 'content': 'Hi! How can I assist you today?'}], 'in_progress': False, 'attachment_name': '', 'attachment_size': 0, 'attachment_mime_type': '', 'attachment_contents': ''}

Resolved by only using one State object for my page. (My intuition was to expect React behavior, where State is scoped to its component/module.)

You should be able to have multiple stateclasses scoped to different modules, so it does seem like there's a bug. @richard-to - maybe this is related to your recent state diff changes?

It's possible there could be a regression with the state diffing changes. I'll check that out when I get the chance probably tomorrow.
My other thought is perhaps there's an issue with the external hot-reloading since it does work when it's in the main file. but not in a different file.
So one test could be to put everything in chat.py into main.py. In that scenario do you still get the ChatState error?

I tried to reproduce the issue with a simple example. I'm using 0.9.2. But couldn't reproduce it.
So I think we first need to find the simplest example that can reproduce the issue. Is it any change to chat.py that will cause the issue?
app.py
import mesop as me

import chat

@me.stateclass
class State:
  text: str = "Text"

@me.page(path="/")
def page():
  state = me.state(State)
  me.text(state.text)
  chat.component()

chat.py
import mesop as me

@me.stateclass
class State:
  text: str = "Text 2"

def component():
  state = me.state(State)
  me.text(state.text)

I'm having the same issue,   @dltn can you tell me if you have the files in the same directory as you are executing mesop from?
because i think it's related to using subdirectiories, i can reproduce it if i use subdirectories
mkdir nested
mv app.py chat.py nested
mesop nested/app.py

to test this i am printing the runtime registered state objects
nested/app.py
import mesop as me
from mesop.runtime import runtime

import chat

@me.stateclass
class State:
  text: str = "Text"

@me.page(path="/")
def page():
  me.text("APP State:" + str(runtime()._state_classes))
  chat.component()

nested/chat.py
import mesop as me
from mesop.runtime import runtime

@me.stateclass
class State:
  text: str = "Text 2"

def component():
  me.text("Chat State: " + str(runtime()._state_classes))

execution
poetry run mesop nested/app.py

when i first run the application the page shows
APP State:[<class 'chat.State'>, <class '.Users.rsim.Code.test-mesop.nested.app.State'>]
Chat State: [<class 'chat.State'>, <class '.Users.rsim.Code.test-mesop.nested.app.State'>]

when i edit app.py and reload the page after the hot reload
APP State:[<class '.Users.rsim.Code.test-mesop.nested.app.State'>]
Chat State: [<class '.Users.rsim.Code.test-mesop.nested.app.State'>]

Fix

create a toplevel entry point

$ cat run.py
import nested.app

create a module by adding an __init__.py

touch nested/__init__.py

use relative imports

--- /var/folders/s1/ly7d_m5n1tb9d9tp1zfn23d00000gq/T/buffer-content-Wdejuz	2024-06-27 10:33:45
+++ /var/folders/s1/ly7d_m5n1tb9d9tp1zfn23d00000gq/T/buffer-content-lD44Hz	2024-06-27 10:33:45
@@ -1,7 +1,7 @@
 import mesop as me
 from mesop.runtime import runtime

-import chat
+from . import chat

 @me.stateclass
 class State:

Final layout
run.py
nested/__init__.py
nested/chat.py
nested/app.py

Execution output
APP State:[<class 'nested.chat.State'>, <class 'nested.app.State'>]
Chat State: [<class 'nested.chat.State'>, <class 'nested.app.State'>]

Thanks for the great debugging work, Russell. That's really helpful to know. Yes, I think our external hot reloading functionality needs more work since for core development, the hot reloading works differently than from the pip package, so we haven't stress tested the external hot reloading as much as we would like. So it's great to get these bug reports.

@russell

@dltn can you tell me if you have the files in the same directory as you are executing mesop from?

Correct, I have main.py and chat.py in the same directory


Accessibility

https://developers.google.com/web/fundamentals/accessibility/

This is an excellent point, let's address it once we have a clearer idea of what we will be doing and start building things fully.
On this note, I would also build this page (ironically) with minimal JS unless we have something with a really special behavior / evaluation.

Thoughts from the docs:

[ ] is this accessible via tab navigation?
[ ] Does it make sense for differently abled people?
[ ] Do the colors pass the contrast test? Evaluate colors -- they are too pale for accessibility. We can use tools for this like the contrast checker
[ ] investigate A11y.css
[ ] investigate pa11y.org

This was taken care of by regaddi

Is there a PR or separate issue to review for accessibility concerns? I noticed the bluish-aqua links are still pretty low contrast, and they'd benefit from a more impactful color. You can check out the ratio here, it's 1.86:1 where it should be at least 4.5:1 for readability - http://contrast-ratio.com/#%2377ccbb-on-%23fefefe
Using the Chrome color picker I was able to pick a contrasting color that meets contrast guidelines: #038067

@marcysutton feel free to open another issue for this!


fsSize() option to return only a specific drive on Windows

Fixes #680
I tested it and I have the same result as comment in the issue.

@Aeden-B @kacesensitive Perfect, I am currently implementing it to be compatible for all platforms. Will provide this solution in a few days.

@Aeden-B , @kacesensitive ... I implemented it now in a way that it is supported on all platforms. ATTENTION: I twisted around the two parameters (as this is how I have it in all other functions).
fsSize('C:', function(data) {
    console.log(data);
});

Can you both test the current master branch, then I can publish it today. Thank you in advance.

@Aeden-B @kacesensitive ... I was able to test it on one windows machine and it worked fine. Version 5.18.0 just published. Maybe you also can test it by just installing the latest version.


Supporting async queries

I'm aware that you utilize OKhttp internally for making requests and that retryUtils handles multiple retry attempts. It would be beneficial to introduce a feature that allows control over this process, and potentially offer an asynchronous mode that returns completionStages when applicable.

Hello @tonyjayfunk I use https://github.com/ai-for-java/openai4j#asynchronously-1 in Android. Working fine

you can also use - https://github.com/namankhurpia/Easy-open-ai
these support asynchronous for android


Delete application and recreating it leaves same src (wiki)

I created an application from the CLI (not the console) and imported it via the maven plugin (3.1.92) - mvnw fabric8:import
The git repository was wrong (my fault), no pipelines appeared (no Jenkins file present in gogs) and I tried to correct it by changing it in settings.
The source tab still shows the old source.
I delete the app via the console, and imported it again. The git repository is now correct in settings, but the source from the original repository is still shown in the source tab.

When I renamed the application, the situation was ok in the new project wiki, but making a duplicate project entry. Deleting the original entry and renaming the project back to its original name made the situation back where I was (wrong git repository and wrong sources in wiki)


[Backport 2.x] Support scripting for composite aggs in concurrent segment search

Description
Backport https://github.com/opensearch-project/OpenSearch/pull/15072
Check List

[x] Functionality includes testing.
~- [] API changes companion pull request created, if applicable.~
[x] Public documentation issue/PR created, if applicable.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Might be easier to wait for https://github.com/opensearch-project/OpenSearch/pull/15093 to get merged first actually

@reta could you approve this again? Thanks!


Mising alt attribute in social button <img> tags increases spam score.

According to mail-tester.com, among other similar tools, HTML email with images that lack an alt value is penalized with a higher spam likelihood.
Unfortunately the <mj-social-element> does not accept an alt attribute. Could this be amended?
Thanks.

Hi,
In fact this is supported but not listed as a valid attribute maybe @kmcb777 can fix it for the next release ?

the fix has been merged and included in the 4.2-beta so i'll close this one


Added an ability to set locale for queues export

Requirements
Please take note of our contributing guidelines: https://docs.laravel-excel.com/3.1/getting-started/contributing.html
Filling out the template is required. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion.
Mark the following tasks as done:

[x] Checked the codebase to ensure that your feature doesn't already exist.
[x] Checked the pull requests to ensure that another person hasn't already submitted the feature or fix.
[ ] Adjusted the Documentation.
[x] Updated CHANGELOG.md
[x] Added tests to ensure against regression.

Description of the Change
Added an ability to set local for queued export. Just add HasLocalePreference to your export class.

Why Should This Be Added?

Benefits
https://github.com/Maatwebsite/Laravel-Excel/issues/2903
Possible Drawbacks

Verification Process

Applicable Issues

@patrickbrouwers do you have any suggestions about this implementation?

@patrickbrouwers could you please help me why my test is failed?

I think it's because older version of Laravel don't have job middleware

You are right. My fault. What we are going to do in that case?

Add this logic to handle method?

You could keep the LocalizeJob class, but instead of calling it in the middleware, call it in the handle indeed. When we stop supporting L5.8, I'll move it back to the middleware

Should I revert logic for middleware method for jobs which I changed?

Yes revert that for now

Looks good, can you open a PR for the docs as well?

Hi @patrickbrouwers yes, I'll do it, but please correct my text if the text will contain typos.

Thanks 👍


Serialization should go across plates

As a user I might want to number samples that span multiple plates
Acceptance Criteria

When a serialized ingredient is placed on a second piece of labware it continues counting up from wherever the numbering left off on plate 1
Serialization does not cross multiple plates (i.e. you can't do 1-13, 18-22  on plate 1, 14 - 18 on plate 2.
Serialization goes in the order plates / ingredients are created, and is not related to slot # on the deck
-If you've serialized across 3 plates and delete plate #2, the numbers on plate #3 shift downward appropriately

Design
n/a

@howisthisnamenottakenyet there will be no way to have 2+ different plates with Samples 1-96 on both, right?
And copying labware will continue serialization (eg Samples 97-192), not replicate it (Samples 1-96 again)

@IanLondon Yup! I think that's how we should start for now and maybe add more options if it's something that comes up from users.

@howisthisnamenottakenyet I don't remember what's going on with this one...


[BUG] DMCA detection stops sync from downloading files

Describe the bug
I installed Maestral, syncing went mostly fine but it threw up 2 sync errors for DMCA contested files, despite those being in private folders without any shared links or e-mails
To Reproduce
Put a DMCA contested file (the GBA bios would be an example) in a private folder on Dropbox via the official Dropbox app. Maestral will attempt to download it, throwing a sync error
Expected behaviour
Just sync the file
System (please complete the following information):

Maestral v0.4.3
OS: macOS Catalina

Unfortunately, this error is raised by the Dropbox API itself only passed on Maestral. I suspect that this is a limitation of the public API.

Well RIP, guess I'll just have to zip them. Thanks for the clarification!

I also got the same issue. Is it possible to block those files? Maestral always try it so it's become annoying for the long run
I can understand it if it's happen on the initial sync though

The easiest option would be to store all DCMA protected files in a separate folder and excluded it from syncing.
There is a currently undocumented config option "excluded_files" which can be used for this. To do so, you can manually edit the config file ('~/.config/maestral/maestral.ini' on Linux) and add the file paths relative to Dropbox root to the "excluded_files" list. For example:
[main]
path = /Users/samschott/Dropbox (Maestral)
default_dir_name = Dropbox (Maestral)
excluded_folders = []
excluded_files = ['/file.txt', '/folder/file.doc']
version = 10.0.0

You will need to restart Maestral for changes to the config file to take effect.
The reasons why this is currently undocumented:

If you remove files from the list, they will not automatically be re-synced. You will either need to manually edit the file to trigger a re-sync or rebuild Maestral's index.

Glob patterns such as in '.gitinore' are not supported.

I was thinking some time ago about introducing a '.mignore' file. There even is a branch for this, but due to lack of demand and a somewhat cumbersome implementation, I haven't gone forward with that.

Just to give a quick update: I have been able to reproduce the issue of maestral continuously retrying failed downloads. This has been fixed in v0.6.2:

Failed downloads will only be retried when maestral is restarted or syncing is paused and resumed.
You can now directly exclude files using the same GUI or CLI interface as for folders.

Hope this helps. Unfortunately, there is no way of actually allowing the download of DCMA files through the official Dropbox API.


Adsk Contrib - Issues #1968 (mirrored) and #1992 (LUT-free builtins)

For issue #1992 - "Make LUT-free implementations of certain built-in transforms"

Adding fixed-function FIXED_FUNCTION_LIN_TO_PQ. This will be used to handle following built-in transforms if the LUT support is turned off:
-- CURVE - ST-2084_to_LINEAR
-- CURVE - LINEAR_to_ST-2084
-- DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ
-- DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65

Adding fixed function FIXED_FUNCTION_LIN_TO_GAMMA_LOG. This is a parametrized gamma + log segment curve with adjustable mirroring point. This will be used to handle following built-in transform if the LUT support is turned off:
--CURVE - HLG-OETF
--CURVE - HLG-OETF-INVERSE
-- DISPLAY - CIE-XYZ-D65_to_REC.2100-HLG-1000nit
-- CURVE - APPLE_LOG_to_LINEAR
-- APPLE_LOG_to_ACES2065-1

Adding fixed function FIXED_FUNCTION_LIN_TO_DOUBLE_LOG which has two log-affine segments with an optional linear segment in-between. This will be used to handle following built-in transform if the LUT support is turned off:
-- CANON_CLOG2-CGAMUT_to_ACES2065-1
-- CURVE - CANON_CLOG2_to_LINEAR
-- CANON_CLOG3-CGAMUT_to_ACES2065-1
-- CURVE - CANON_CLOG3_to_LINEAR

Implemented CPU renderers for scalar, SSE2 (with fastPower) and SSE2 (with Intel SVML) intrinsics targets for the new PQ fixed-function. The other two fixed-functions are implemented in the basic form and will need more optimization in the future when we introduce the option to turn the LUT support off.

Implemented GPU shader generator for all the new fixed-functions,

For issue #1968 - "Make display EOTFs in built-in transforms mirrored and unclamped to preserve sub-black and super-white"

Both the existing LUT-based and the new LUT-free implementations using PQ or HLG curves are now unclamped at both ends and mirrored around the origin.
Added new built-in transforms:
--CURVE - HLG-OETF
--CURVE - HLG-OETF-INVERSE

Aux Changes

GetFixedFunctionCPURenderer() now takes a new bool parameter fastLogExpPow.
Added a stand-in OCIO_LUT_SUPPORT preprocessor macro in preparation for ocio-lite where the lut support can be turned off.
Added util functions to Config_tests.cpp to help creating configs with arbitrary version.
Added ability to test fixed-function cpu renderers with and without fastLogExpPow.
Added capability to specify custom extended ranges in the GPU unit tests. Default value is [-1.0,2.0] same as the previously hard-coded range.
Fixed a bug in the GPU unit tests where the computed domain values would overshoot.
In BuiltinTransform_tests it's now possible (and necessary) to specify the error threshold for each built-in transform. This was needed as the hard-coded 1e-6 threshold was too tight for the PQ curve which uses nested power functions and thus numerical stability was depending on the implementation.
Added GpuShaderText::floatXGreaterThanEqual() functions

@remia , yes absolutely right about the CTF version.  I saw you bumped the version in your ACES PR, so my plan is to merge that first to update the CTF version to 2.4 and then we will add the corresponding tests to this PR.  There will be some integration work as well in FixedFunction.

@remia , the merge of the ACES2 PR into this branch was fairly complicated, so I would appreciate it if you could make another pass over this one.  And the CTF version check was added.

@remia , the merge of the ACES2 PR into this branch was fairly complicated, so I would appreciate it if you could make another pass over this one. And the CTF version check was added.

Looks ok to me!


build_gdp fails

As of 2016-07-04 the instructions at https://github.com/gmacario/easy-jenkins/blob/master/docs/building-gdp.md cause a failed build.
Excerpt from http://alm-gm-ubu15.solarma.it:9080/job/GENIVI/job/build_gdp/1/console
...
Currently 3 running tasks (875 of 4785):
0: dlt-daemon-2.11.1-r0 do_fetch (pid 7238)
1: gcc-runtime-5.2.0-r0 do_compile (pid 23740)
2: cmake-native-3.3.1-r0 do_configure (pid 24527)
Currently 3 running tasks (876 of 4785):
0: dlt-daemon-2.11.1-r0 do_fetch (pid 7238)
1: gcc-runtime-5.2.0-r0 do_compile (pid 23740)
2: cmake-native-3.3.1-r0 do_configure (pid 24527)
Currently 4 running tasks (876 of 4785):
0: dlt-daemon-2.11.1-r0 do_fetch (pid 7238)
1: gcc-runtime-5.2.0-r0 do_compile (pid 23740)
2: cmake-native-3.3.1-r0 do_configure (pid 24527)
3: linux-yocto-3.14.36+gitAUTOINC+060fa80b79_578602a722-r0 do_compile (pid 3768)
WARNING: Failed to fetch URL git://git.projects.genivi.org/dlt-daemon.git;branch=v2.11.x, attempting MIRRORS if available
Currently 4 running tasks (876 of 4785):
0: dlt-daemon-2.11.1-r0 do_fetch (pid 7238)
1: gcc-runtime-5.2.0-r0 do_compile (pid 23740)
2: cmake-native-3.3.1-r0 do_configure (pid 24527)
3: linux-yocto-3.14.36+gitAUTOINC+060fa80b79_578602a722-r0 do_compile (pid 3768)
ERROR: Fetcher failure: Fetch command failed with exit code 128, output:
Cloning into bare repository '/var/jenkins_home/jobs/GENIVI/jobs/build_gdp/workspace/gdp-src-build/downloads/git2/git.projects.genivi.org.dlt-daemon.git'...
fatal: unable to connect to git.projects.genivi.org:
git.projects.genivi.org[0: <IP_ADDRESS>]: errno=Connection timed out

Currently 4 running tasks (876 of 4785):
0: dlt-daemon-2.11.1-r0 do_fetch (pid 7238)
1: gcc-runtime-5.2.0-r0 do_compile (pid 23740)
2: cmake-native-3.3.1-r0 do_configure (pid 24527)
3: linux-yocto-3.14.36+gitAUTOINC+060fa80b79_578602a722-r0 do_compile (pid 3768)
ERROR: Function failed: Fetcher failure for URL: 'git://git.projects.genivi.org/dlt-daemon.git;branch=v2.11.x'. Unable to fetch URL from any source.
Currently 4 running tasks (876 of 4785):
0: dlt-daemon-2.11.1-r0 do_fetch (pid 7238)
1: gcc-runtime-5.2.0-r0 do_compile (pid 23740)
2: cmake-native-3.3.1-r0 do_configure (pid 24527)
3: linux-yocto-3.14.36+gitAUTOINC+060fa80b79_578602a722-r0 do_compile (pid 3768)
ERROR: Logfile of failure stored in: /var/jenkins_home/jobs/GENIVI/jobs/build_gdp/workspace/gdp-src-build/tmp/work/core2-64-poky-linux/dlt-daemon/2.11.1-r0/temp/log.do_fetch.7238
Currently 3 running tasks (876 of 4785):
0: gcc-runtime-5.2.0-r0 do_compile (pid 23740)
1: cmake-native-3.3.1-r0 do_configure (pid 24527)
2: linux-yocto-3.14.36+gitAUTOINC+060fa80b79_578602a722-r0 do_compile (pid 3768)
ERROR: Task 1628 (/var/jenkins_home/jobs/GENIVI/jobs/build_gdp/workspace/gdp-src-build/../meta-ivi/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon_2.11.1.bb, do_fetch) failed with exit code '1'
Currently 3 running tasks (876 of 4785):
0: gcc-runtime-5.2.0-r0 do_compile (pid 23740)
1: cmake-native-3.3.1-r0 do_configure (pid 24527)
2: linux-yocto-3.14.36+gitAUTOINC+060fa80b79_578602a722-r0 do_compile (pid 3768)
Currently 3 running tasks (877 of 4785):
0: gcc-runtime-5.2.0-r0 do_compile (pid 23740)
1: cmake-native-3.3.1-r0 do_configure (pid 24527)
2: linux-yocto-3.14.36+gitAUTOINC+060fa80b79_578602a722-r0 do_compile (pid 3768)
Waiting for 4 running tasks to finish:
0: gcc-runtime-5.2.0-r0 do_compile (pid 23740)
1: cmake-native-3.3.1-r0 do_configure (pid 24527)
2: linux-yocto-3.14.36+gitAUTOINC+060fa80b79_578602a722-r0 do_compile (pid 3768)
3: qtdeclarative-5.5.1+gitAUTOINC+3e9f61f305-r0 do_generate_qt_config_file (pid 10022)
Waiting for 3 running tasks to finish:
0: gcc-runtime-5.2.0-r0 do_compile (pid 23740)
1: cmake-native-3.3.1-r0 do_configure (pid 24527)
2: linux-yocto-3.14.36+gitAUTOINC+060fa80b79_578602a722-r0 do_compile (pid 3768)
Waiting for 2 running tasks to finish:
0: cmake-native-3.3.1-r0 do_configure (pid 24527)
1: linux-yocto-3.14.36+gitAUTOINC+060fa80b79_578602a722-r0 do_compile (pid 3768)
Waiting for 1 running tasks to finish:
0: linux-yocto-3.14.36+gitAUTOINC+060fa80b79_578602a722-r0 do_compile (pid 3768)
Waiting for 0 running tasks to finish:
NOTE: Tasks Summary: Attempted 877 tasks of which 0 didn't need to be rerun and 1 failed.
Waiting for 0 running tasks to finish:

Summary: 1 task failed:
  /var/jenkins_home/jobs/GENIVI/jobs/build_gdp/workspace/gdp-src-build/../meta-ivi/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon_2.11.1.bb, do_fetch
Summary: There were 4 WARNING messages shown.
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
Build step 'Execute shell' marked build as failure
Stopping Docker container after build completion
Notifying upstream projects of job completion
Finished: FAILURE

This is a result of a failed migration of the git server http://git.projects.genivi.org/
See for details

http://lists.genivi.org/pipermail/genivi-projects/2016-July/002585.html
https://at.projects.genivi.org/jira/browse/OSSINFR-53
https://at.projects.genivi.org/jira/browse/OSSINFR-54
https://at.projects.genivi.org/jira/browse/OSSINFR-55

As of 2016-06-07 16:00 CEST, http://git.projects.genivi.org/ seems to have been restored as it was before the migration.
Triggering a scratch build on http://alm-gm-ubu15.solarma.it:9080/job/GENIVI/job/build_gdp/

Scratch build was successful, updating docs per PR https://github.com/gmacario/easy-jenkins/pull/128


Dlay Job

Minimum modification. Dlay Job.

Bump on this. We'd love this feature!

Duplicate of https://github.com/bee-queue/bee-queue/pull/64


geojson GeometryCollection doesn't work

One-line summary [问题简述]
GeometryCollection is a type of feature that should be accepted in the geojson format. But in echarts it creates an error:

Invalid geoJson format Cannot read property 'length' of undefined

Version & Environment [版本及环境]

ECharts version [ECharts 版本]: 4.1.0
Browser version [浏览器类型和版本]: latest chrome
OS Version [操作系统类型和版本]: windows7

Expected behaviour [期望结果]
ECharts option [ECharts配置项]
var geojson = {"type": "FeatureCollection", "features": [
{"type":"Feature"
	,"geometry":{"type":"GeometryCollection","geometries":[{"type":"Polygon","coordinates":[[[2.869507,50.759922],[2.870591,50.754608],[2.878625,50.754902],[2.876114,50.761196],[2.869507,50.759922]]]},{"type":"Polygon","coordinates":[[[2.878653,50.761589],[2.885288,50.757088],[2.888319,50.753296],[2.894505,50.752754],[2.921918,50.757103],[2.917394,50.762345],[2.918786,50.763947],[2.900534,50.767029],[2.878653,50.761589]]]}]}
	,"properties":{"name":"Mesen#Messines","province":"BE-VWV","region":"BE-VLG","shn":"BE233016"}}

]}

echarts.registerMap('mymap', geojson, {});
option = {
	series: [
		{
			type: 'map',
			map: 'mymap'
		}
	]
};

Other comments [其他信息]
Here is some map that works ok with the code provided above

/// THIS WORKS OK -----------------
var geojson = {"type": "FeatureCollection", "features": [
{"type":"Feature"
	,"geometry":{"type":"MultiPolygon","coordinates":[[[[4.284636,50.845249],[4.283894,50.840671],[4.282112,50.839588],[4.283052,50.837979],[4.27318,50.838742],[4.271828,50.836262],[4.256418,50.834908],[4.254548,50.833454],[4.255798,50.829731],[4.253017,50.825131],[4.244673,50.819466],[4.245567,50.817627],[4.247497,50.817345],[4.247203,50.819023],[4.250306,50.81942],[4.251937,50.8172],[4.256503,50.817295],[4.259908,50.811089],[4.272742,50.812222],[4.275658,50.810955],[4.276961,50.80838],[4.283621,50.807079],[4.294198,50.808224],[4.297497,50.809529],[4.300175,50.812828],[4.306363,50.812462],[4.31035,50.813526],[4.308171,50.817326],[4.320585,50.824517],[4.326115,50.830658],[4.330737,50.833145],[4.336169,50.838948],[4.340331,50.840168],[4.337955,50.846577],[4.335884,50.846344],[4.335525,50.848233],[4.331875,50.845337],[4.328122,50.844181],[4.310281,50.850212],[4.300801,50.848477],[4.299858,50.849091],[4.299589,50.847309],[4.293651,50.84737],[4.293705,50.849438],[4.290843,50.848881],[4.293026,50.845303],[4.284636,50.845249]]]]}
	,"properties":{"name":"Anderlecht","province":null,"region":"BE-BRU","shn":"BE421001"}},
{"type":"Feature"
	,"geometry":{"type":"MultiPolygon","coordinates":[[[[4.368067,50.814831],[4.36956,50.809456],[4.373297,50.807999],[4.371566,50.806748],[4.373802,50.802075],[4.377972,50.800278],[4.375344,50.799736],[4.400834,50.796246],[4.401355,50.797299],[4.397019,50.801514],[4.393895,50.800644],[4.387366,50.805691],[4.382692,50.815853],[4.379204,50.81393],[4.370347,50.823975],[4.367167,50.82531],[4.365174,50.828987],[4.366397,50.829392],[4.360407,50.831513],[4.356352,50.834809],[4.363002,50.838696],[4.368684,50.840016],[4.372166,50.839298],[4.372835,50.840641],[4.37592,50.839657],[4.3757,50.835861],[4.379568,50.836762],[4.380182,50.840092],[4.393291,50.838017],[4.396082,50.843384],[4.392798,50.847317],[4.384265,50.851464],[4.378971,50.849022],[4.369441,50.846943],[4.368544,50.852513],[4.35531,50.85624],[4.35725,50.860478],[4.361058,50.868801],[4.365224,50.870869],[4.365127,50.869446],[4.372499,50.871552],[4.374539,50.875241],[4.384005,50.880604],[4.388482,50.881019],[4.38723,50.882023],[4.401978,50.885949],[4.407316,50.882207],[4.410755,50.876476],[4.41415,50.878269],[4.426031,50.871754],[4.428548,50.876389],[4.427257,50.877468],[4.437052,50.878781],[4.427008,50.890587],[4.432978,50.894573],[4.425915,50.898506],[4.427634,50.899666],[4.424175,50.902672],[4.417316,50.905064],[4.415738,50.90617],[4.412034,50.907151],[4.414501,50.911381],[4.403377,50.913044],[4.398876,50.913121],[4.394525,50.910615],[4.388369,50.910607],[4.383592,50.902069],[4.378084,50.899376],[4.377383,50.897072],[4.360628,50.9012],[4.342285,50.902443],[4.330909,50.900917],[4.319067,50.894806],[4.313876,50.89336],[4.327857,50.89333],[4.326109,50.891209],[4.329992,50.890541],[4.327463,50.888832],[4.329996,50.885235],[4.337109,50.886925],[4.339254,50.881947],[4.338407,50.876454],[4.340636,50.871292],[4.343535,50.867546],[4.341851,50.864949],[4.3485,50.862801],[4.345731,50.859597],[4.346771,50.859089],[4.337286,50.848503],[4.335525,50.848233],[4.335884,50.846344],[4.337955,50.846577],[4.340331,50.840168],[4.342879,50.833096],[4.349088,50.833023],[4.355223,50.835522],[4.358362,50.830601],[4.365587,50.823441],[4.36512,50.823105],[4.369656,50.819264],[4.370624,50.815274],[4.368067,50.814831]]]]}
	,"properties":{"name":"Brussel#Bruxelles","province":null,"region":"BE-BRU","shn":"BE421004"}},
{"type":"Feature"
	,"geometry":{"type":"MultiPolygon","coordinates":[[[[4.407609,50.838806],[4.401194,50.840481],[4.399988,50.843663],[4.398926,50.844696],[4.396082,50.843384],[4.393291,50.838017],[4.380182,50.840092],[4.379568,50.836762],[4.379021,50.834023],[4.382325,50.832897],[4.380077,50.830136],[4.389457,50.822422],[4.396076,50.825665],[4.399307,50.824871],[4.404279,50.826992],[4.412213,50.830429],[4.410352,50.830929],[4.409977,50.833676],[4.405246,50.837563],[4.407609,50.838806]]]]}
	,"properties":{"name":"Etterbeek","province":null,"region":"BE-BRU","shn":"BE421005"}},
{"type":"Feature"
	,"geometry":{"type":"MultiPolygon","coordinates":[[[[4.411718,50.852108],[4.422057,50.856838],[4.426555,50.863045],[4.420596,50.86779],[4.426031,50.871754],[4.41415,50.878269],[4.410755,50.876476],[4.407316,50.882207],[4.401978,50.885949],[4.38723,50.882023],[4.388482,50.881019],[4.396267,50.868309],[4.404229,50.860089],[4.413018,50.854042],[4.410795,50.85297],[4.411718,50.852108]]]]}
	,"properties":{"name":"Evere","province":null,"region":"BE-BRU","shn":"BE421006"}},
{"type":"Feature"
	,"geometry":{"type":"MultiPolygon","coordinates":[[[[4.298228,50.882107],[4.298883,50.880062],[4.292475,50.874832],[4.304332,50.869187],[4.309935,50.869141],[4.314291,50.867142],[4.326196,50.865582],[4.32498,50.866768],[4.320606,50.872189],[4.323383,50.872715],[4.320454,50.875195],[4.32108,50.877678],[4.319401,50.878407],[4.319451,50.8802],[4.298228,50.882107]]]]}
	,"properties":{"name":"Ganshoren","province":null,"region":"BE-BRU","shn":"BE421008"}},
{"type":"Feature"
	,"geometry":{"type":"MultiPolygon","coordinates":[[[[4.30095,50.890507],[4.293991,50.888496],[4.295424,50.885628],[4.298228,50.882107],[4.319451,50.8802],[4.319401,50.878407],[4.32108,50.877678],[4.320454,50.875195],[4.323383,50.872715],[4.320606,50.872189],[4.32498,50.866768],[4.329836,50.867504],[4.332376,50.864559],[4.340636,50.871292],[4.338407,50.876454],[4.339254,50.881947],[4.337109,50.886925],[4.329996,50.885235],[4.327463,50.888832],[4.329992,50.890541],[4.326109,50.891209],[4.327857,50.89333],[4.313876,50.89336],[4.30095,50.890507]]]]}
	,"properties":{"name":"Jette","province":null,"region":"BE-BRU","shn":"BE421010"}},
{"type":"Feature"
	,"geometry":{"type":"MultiPolygon","coordinates":[[[[4.307331,50.864231],[4.310737,50.864556],[4.316261,50.861233],[4.322304,50.862515],[4.327029,50.861084],[4.325794,50.856915],[4.328152,50.856724],[4.337787,50.859436],[4.332376,50.864559],[4.329836,50.867504],[4.32498,50.866768],[4.326196,50.865582],[4.314291,50.867142],[4.307177,50.865692],[4.307331,50.864231]]]]}
	,"properties":{"name":"Koekelberg","province":null,"region":"BE-BRU","shn":"BE421011"}}
]}

I'm working on a fix

@mathiasleroy Please make a pull request to us and @pissang  will have a further look.
Thanks for your contribution!

I made a pull request (This is my first time, please let me know if what I did is ok)
https://github.com/apache/incubator-echarts/pull/9386

Sure, thanks! @pissang will review the code later.

Does geojson support polyline?

@Ovilia @mathiasleroy  the geojson data still not works, is there any things new about this pr on this issues.( it failed to merge the pr -.-). any plan about this ?
``json
not works
{"type":"GeometryCollection","geometries":[]}

{
"type":"FeatureCollection",
"features":[{
"type":"Feature",
"properties":{},
"geometry":{
"type":"GeometryCollection",
"geometries":[]
}
}]
}

@Leesson polyline support has been added in 5.3
@diveDylan GeometryCollection is not supported because it misses information like name from properties.

5.3.0里这个还是不行，为啥没修复

Has version 5.3.0 been repaired?

version 5.3.3 has been repaired this bug

Has version 5.3.0 been repaired?

version 5.3.3 has been repaired this bug

5.3.0里这个还是不行，为啥没修复

//  node_modules/echarts/lib/coord/geo/parseGeoJson.js
export default function parseGeoJSON(geoJson, nameProperty) {
geoJson = decode(geoJson);
return zrUtil.map(zrUtil.filter(geoJson.features, function (featureObj) {
if (featureObj.geometry.geometries) {
let geometry = featureObj.geometry.geometries.map(i => {
return i.coordinates;
});
let { type, properties, ...params } = featureObj;
return { type, properties, geometry };
}
// Output of mapshaper may have geometry null
return featureObj.geometry && featureObj.properties && featureObj.geometry.coordinates.length > 0;
}), function (featureObj) {
var properties = featureObj.properties;
var geo = featureObj.geometry;
var geometries = [];
switch (geo.type) {
  case 'Polygon':
    var coordinates = geo.coordinates; // According to the GeoJSON specification.
    // First must be exterior, and the rest are all interior(holes).

    geometries.push(new GeoJSONPolygonGeometry(coordinates[0], coordinates.slice(1)));
    break;

  case 'MultiPolygon':
    zrUtil.each(geo.coordinates, function (item) {
      if (item[0]) {
        geometries.push(new GeoJSONPolygonGeometry(item[0], item.slice(1)));
      }
    });
    break;

  case 'LineString':
    geometries.push(new GeoJSONLineStringGeometry([geo.coordinates]));
    break;

  case 'MultiLineString':
    geometries.push(new GeoJSONLineStringGeometry(geo.coordinates));

  case 'GeometryCollection': {
    let geometry = {
      type: 'Polygon'
    };
    let coordinatesArr = featureObj.geometry.geometries.map(i => {
      return i.coordinates;
    })
    geometry.coordinates = coordinatesArr;
    coordinatesArr.forEach(i => {
      geometries.push({
        type: "polygon",
        exterior: i[0],
        interiors: i.slice(1)
      });
    });
    break;
  }
}

var region = new GeoJSONRegion(properties[nameProperty || 'name'], geometries, properties.cp);
region.properties = properties;
return region;

});
}

Does It fixed？ echarts version：5.3.3

Does It fixed？ echarts version：5.3.3

兄弟，我之前是直接改的本地的echarts代码然后再打包的，你可以试试。


[9.x] Adds glue() method to Arr (better implode)

What?
Adds the glue() method to implode multiple subjects with a string that doesn't repeat between each of them, because implode doesn't care.
$subjects = ['category/', '/post' , '/comment/'];

implode($subjects, '/');
// 🤦♂ "category///post//comment/"

Arr::glue($subjects, '/');
// 😍 "category/post/comment"

I believe this helper could be used for handling paths or small lists with commas.
It also goes the extra mile to ensure the glue... well, glues a subject equal to the glue, because is expected that glue to work almost like implode().
Arr::glue(['foo', 'bar', 'baz'], 'foo');
// foofoobarfoobaz

It also supports final glue like join().
Arr::join(['a ', ' b ', ' c'], ', ', ' and ');
// 🤦♂ a ,  b  and  c

Arr::glue(['a ', ' b ', ' c'], ', ', ' and ');
// 😍 a, b and c

Arr::join(['a ', ' b ', ' c'], ' ', ' and ');
// 🤦♂ a ,  b  and  c
Arr::glue(['a ', ' b ', ' c'], ' ', ' and ');
// 😍 a, b and c

Your examples are not correct, right?
Shouldn't it be:
Arr::join(['a ', ' b ', ' c'], ', ', ' and ');
// 🤦♂ a ,  b  and  c

Arr::glue(['a ', ' b ', ' c'], ', ', ' and ');
// 😍 a, b and c

Arr::join(['a ', ' b ', ' c'], ' ', ' and ');
// 🤦♂ a ,  b  and  c
Arr::glue(['a ', ' b ', ' c'], ' ', ' and ');
// 😍 a, b and c

Your examples are not correct, right?
Shouldn't it be:
Arr::join(['a ', ' b ', ' c'], ', ', ' and ');
// 🤦♂ a ,  b  and  c

Arr::glue(['a ', ' b ', ' c'], ', ', ' and ');
// 😍 a, b and c

Yep, fixed.

Arr::join(['a ', ' b ', ' c'], ', ', ' and ');
// 🤦♂ a ,  b  and  c

Arr::glue(['a ', ' b ', ' c'], ', ', ' and ');
// 😍 a, b and c

Can you add these examples to your tests? I don't think they pass.
I test ran your method in Tinkerwell and i don't get the same output as your examples.

Arr::join(['a ', ' b ', ' c'], ', ', ' and ');
// 🤦♂ a ,  b  and  c

Arr::glue(['a ', ' b ', ' c'], ', ', ' and ');
// 😍 a, b and c

Can you add these examples to your tests? I don't think they pass.
I test ran your method in Tinkerwell and i don't get the same output as your examples.

You're right, glue() won't trim the strings, it will respect their spaces in between. I fixed it now.

Great great, I have another edge for you, what would be the expected output of this example?
Arr::glue(['a,', 'b'], ', '), // "a, b" or "a,, b" ?

The reason I'm asking is that trying to use multi length glue in methods like these always produces a lot of edge cases when the glue only partially matches the start/end of the segments.
I've have done some experiments in the same area previously and ran in to many edge cases.

Arr::glue(['a,', 'b'], ', '), // should it be "a, b" or "a,, b" ?

No prob. Guys had it tough before the internetz tho.
The glue should match exactly the start or the end. In that case, it should be a,, b.
Most of edge cases I can think of can be fixed by pushing the subjects after a trim. Arr::trim() could be an excellent addition to trim multiple subjects.

Thanks for your pull request to Laravel!
Unfortunately, I'm going to delay merging this code for now. To preserve our ability to adequately maintain the framework, we need to be very careful regarding the amount of code we include.
If possible, please consider releasing your code as a package so that the community can still take advantage of your contributions!
If you feel absolutely certain that this code corrects a bug in the framework, please "@" mention me in a follow-up comment with further explanation so that GitHub will send me a notification of your response.


Alternative installation method

Disclaimer: I do not have any experience with go(lang).
Is there any possible alternative method to install this service?  go get takes forever to download docker (which is a dependency I assume).

I did provide prebuilt binaries before, but I took down the server they were on at the time. I do not see a way to avoid importing docker to get this done so I think providing prebuilt binaries would be the best route.
Do you know anywhere where they can be hosted at?

@deltaskelta How about the following:

create a separate git branch named "release"
when changing stuff build the project and commit/push the binaries to this branch
additionally add and push a tag pointing to this commit

This way Github will pick up the tag and display it as release.

oh ok good idea. I was thinking that the binaries would be too big for the repo but I guess no. I will do this soon

I don´t know if they would be too big. It would definitely increase the size of the overall repository and therefore slow down git clone. What size are we talking about? A few mb?

I added a dist folder in the newly created release branch which will contain the most recently built binaries. They have been linked to in the main README file.
The builds are about 7mb for each OS. If revision control makes them too big in the future, I may have to remove it...
https://github.com/deltaskelta/docker-alertd/tree/release
https://github.com/deltaskelta/docker-alertd/blob/master/README.md

That´s nice. Thanks!

The builds are about 7mb for each OS. If revision control makes them too big in the future, I may have to remove it...

I understand. Maybe a separate repository would solve this issue? Something like docker-alertd-dist or  docker-alertd-prebuilt?

perhaps, I will keep that in mind if I run into that issue in the future. I'll have to see how git handles it for now


Presentation outline

This Issue outlines the future presentation content

Objectives

Apply a self-service approach to Innersource enablement.
Provide developers with an easy and fast way to promote a project to Innersource.
Maintain policies and standards for Innersource environments.
Discover Innersource projects, and all essential information (purpose, status, compliance, etc.)

Chapter 1 - Innersource Promote & Comply

...

Exercise

create an Innersource Repo template, to create exercise Repositories for users. That template Repo will contain sample compliance rules and violations, that the user will need to address.

Solution

(template slide created)

Chapter 2 - Innersource Discover & Maintain

(template slide created)

Exercise

(template slide created)

Solution

(template slide created)

Innersource Ready Report App slides are ready for review (committed)
/cc @snsinahub


feat(resolutions): add support for ignoring via ignore-resolutions

:pencil: Description
Why?
Currently it's not possible to conditionally handle the contents of resolutions field. When the property is present in package.json the rule will always fail. I believe this could be improved by allowing for certain packages to be ignored from that validation. A common scenario for this cases is raising hotfixes due to issues with 3rd party dependencies. I'd like to have a bit more fine-grained control on specifying exclusions when needed.
What?
This PR introduces ignore-resolutions config options which is based on the existing ignore-packages
- uses: ExpediaGroup/package-json-validator@v1
    with:
      rules: resolutions
      ignore-resolutions: resolution-package-to-ignore

How?

The default behaviour of resolutions doesn't change when ignore-resolutions is not defined: [code], [tests]

When ignore-resolutions list is provided and it matches the contents of resolutions, the rule will pass. It will fail when there is a mis-match: [code], [passing-test], [failing-test]

Thanks for contributing!

Thanks for creating super useful action! 🙌

Left some comments. Could you also add this new input to action.yml?

Done ✅

@danadajian: Wasn't sure if it fits within scope of this PR, but I figured it would be neat to allow for ignoring the failures for some period of time. Example that comes to mind:

I notice issue with a package today, raise a PR knowing the desire is to get rid of that specific resolution
I'd like to set until when the ignoring of resolutions can last
The actions starts throwing when the set date is passed

I have a commit with the change here:
https://github.com/padamczewski/package-json-validator/commit/d38517b921ba7babe3ec07607ea76aa3874d223c
Happy to bring it over into this PR or raise a follow-up one as well. This is assuming the change looks all right and interesting 🤞

@padamczewski Let's address this in a separate PR. Definitely sounds interesting!

@danadajian: will raise another PR then👌 Also updated the dist folder, the checks should pass now.

:tada: This PR is included in version 1.8.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Internal: Change type import styles

Summary
This PR enables the following ESLint rules:

consistent-type-specifier-style with prefer-inline option
consistent-type-imports with inline-type-imports option

TL;DR is that type keyword is now required for type imports
import { type Foo } from 'Foo';
import type Bar from 'Bar';
type T = Foo;
const x: Bar = 1;

Why?
The benefits include:

Avoiding Unintentional Side Effects
Isolated Module Transpilation, which may reduce bundle size.

Deep Dive
How to import a named export type?
BAD
// 🔴 ReactNode and Reactelement are type imports
import { ReactNode, ReactElement } from 'react';

BAD because we prefer inline type specifiers import { type A, type B } over top-level type specifier import type { A, B }.
// 🔴 Prefer inline type specifiers over top-level type specifier
import type { ReactNode, ReactElement } from 'react';

GOOD
// ✅ Inline type specifiers
import { type ReactNode, type ReactElement } from 'react';

How to import the default export type?
If we are just importing the default export type, we can either use inline type specifier
// inline type specifier
import { type default as Foo } from './Foo';

or the top-level type specifier, which is more concise:
// top-level type specifier
import type Foo from './Foo';

How to import the default export type AND a name import type?
When we import both the default export type AND a named import, we can only use the inline type specifiers like this in order to write it in one import statement:
// Use the inline type specifiers if we are also doing some named imports
import { type default as Foo, type Bar } from './Foo';

Don't: duplicated import statements
BAD
// 🔴 Duplicated import statements for the same module
import type Foo from './Foo';
import { type Bar } from './Foo';

BAD
// 🔴 Only use the top-level specifier if we only import the default export type
// DO NOT use it if we are importing any named import types.
import type Foo, { Bar } from './Foo';

BAD
// 🔴 LegacyContext is not a named export type
import { type Foo, type Bar } from './Foo';

GOOD
// ✅ This correctly imports the default export type as Foo,
// as well as the named export type named Bar
import { type default as Foo, type Bar } from './Foo';

How to import the type of an instance of a class
Suppose we have MyClass.ts
export default class MyClass {}

The default export MyClass is also the type of its instance:
import type MyClass from './MyClass';

type Props = {
  obj: MyClass;
};

How to import a value solely for its type
Suppose we have Foo.tsx
export const MY_CONST = { a: 1, b: 2 } as const;
export default function Foo({ children }: { children: string }) {
  return <div>{children}</div>;
}

And we want to import the types for MY_CONST and Foo:
import { type ComponentProps } from 'react';
import { type default as Foo, type MY_CONST } from './Foo';

type Props = {
  constKeys: keyof typeof MY_CONST; // evaluated type: 'a' | 'b'
  children: ComponentProps<typeof Foo>['chlidren']; // evaluated type: string
};

[!Tip]
Why do we use type import even though Foo and MY_CONST are not actually types?
This is because we are only calling typeof on these values and TypeScript knows that these imports are only necessary for type checking.

If value is imported, derive type from it instead of adding type imports
Note that MyClass, Foo, and MY_CONST are imported for type checking AND runtime. In such case, type imports would be redundant since we can just derive the types from the values.
import MyClass from './MyClass';
import Foo, { MY_CONST } from './Foo';

type Props = {
  constKeys: keyof typeof MY_CONST; // evaluated type: 'a' | 'b'
  children: ComponentProps<typeof Foo>['chlidren']; // evaluated type: string
};

export default function Bar(props: Props) {
  return (
    <Foo
      onSomeEvent={() => {
        const obj: MyClass = new MyClass();
        obj.doSomething(MY_CONST[constKeys]);
      }}
    >
      {children}
    </Foo>
  );
}

r+ but looks like tests are failing

Closing this as it's being stale for months.


Adding module loaders when webpack.config.js is not present in Angular-cli project

How would you add angular2-template-loader in a angular-cli project version 1.0.0-beta.28.3?

Hi. From my (very limited) knowledge, which I'm grasping right now, angular2-template-loader should not be needed with angular-cli and @ngtools/webpack. Do wait for someone else confirming this.


Updates OpenROAD to the latest version of OpenSTA

This is to fix CUDD compile errors related to error reporting.

Today's push takes care of this.

Today's push takes care of this.


Feature: Add new data source - harbor_projects

Is your feature request related to a problem? Please describe.
We have a need to be able to read all Harbor projects through Terraform, so that we can assign permissions to relevant projects where we don't necessarily know the exact name of the project.
Describe the solution you'd like
A new data source harbor_projects with no required arguments, which will return the same output as harbor_project, but for all the projects in Harbor

Hi,
thanks for this feature request.
I can probably do something like this :
data "harbor_projects" "name" {
  type = "ProxyCache" // optionnal (ProxyCache or Project)
  // name // optionnal regex
  // public // optionnal
  // vulnerability_scanning // optionnal
}

and return a list of projects

Hi @slushysnowman,
it will be available with release v3.10.0.


How to run DNN with regression task?

Hi, I am trying to run DNN with regression task (i.e chauffeur). I have training and test data, while trying to calculate the activation traces in this file here
the code only calculates for the DNN with classification task, can you please guide me how can I integrate DNNs with regression task? or if you have some other repository I can look into for guidance that will be very helpful.

You can easily modify the code in order to use SA for non-classification tasks and some code are already there. See the lines https://github.com/coinse/sadl/blob/cea322974168389585e57f7e7ac8f832dfe67a01/sa.py#L270-L274
What you have to do is changing class-based KDE to no-class-based KDE.
Note that DSA is only for classification tasks so LSA many fit for your purpose.


insert into tbl(fld1, fld2) values(1,2)

According to https://github.com/AlaSQL/alasql/discussions/1806#discussioncomment-7091043 alasql does not support
insert into tbl(fld1, fld2) values(1,2)

Hi @mathiasrw can i work on this issue? and can you pls provide me some more information to move forward.

Sure!
Fist, have a look at https://github.com/AlaSQL/alasql/blob/develop/CONTRIBUTING.md and then use the yarn jison command before running yarn test
BUT
the last few months I have had problems with compiling a new jison. Some deep dependencies have been updated and now I cant recreate a version that produces a jison parser that works.
Sooooo - what would be really helpful and first step to this, would be to make sure that yarn jison && yarn test is running. You will see that the version in src/alasqlparser.js is currently 0.4.18 and after recompiling goes to something else (i think its 0.6).
The way forward is to

a) get it back to use v 0.4.18 by using the resolutions field to overwrite (deep)dependency versions
or
b) to find out why the generated alasqlpartser.js does not work.

The fix for b) is the smalles (as its probably a naming thing or something else that is slightly different) but timewise it will probably be faster to go with a). So - it really depends on your appetite for adventure...


"currentDevice.torchAvailable" crash

Fatal Exception: NSInternalInconsistencyException
Cannot update for observer <PBJVision 0x15c75cfb0> for the key path "currentDevice.torchAvailable" from <PBJVision 0x15c75cfb0>, most likely because the value for the key "currentDevice" has changed without an appropriate KVO notification being sent. Check the KVO-compliance of the PBJVision class.
Fatal Exception: NSInternalInconsistencyException
0  CoreFoundation                 0x182da6e38 __exceptionPreprocess
1  libobjc.A.dylib                0x18240bf80 objc_exception_throw
2  CoreFoundation                 0x182da6d80 -[NSException initWithCoder:]
3  Foundation                     0x1836c79f8 -[NSKeyValueNestedProperty object:withObservance:didChangeValueForKeyOrKeys:recurse:forwardingValues:]
4  Foundation                     0x1836a3a24 NSKeyValueDidChange
5  Foundation                     0x18368e6b4 -[NSObject(NSKeyValueObserverNotification) didChangeValueForKey:]
6  PBJVision                      0x1011e3160 __29-[PBJVision _sessionStarted:]_block_invoke (PBJVision.m:2351)

This seems to be our apps most common crashes in the app store recorded by crashlytics. Though I've not seen it happen on my personal device

The only place I can find where _currentDevice is being changed without will/DidChangeValueForKey is in _destroyCamera. So I'm guessing this could be it. I'm using setCurrentDevice in other places but this should automatically call it. And anywhere else I see the ivar changing, the will/Did are there.
Going to try changing it to this:
[self willChangeValueForKey:@"currentDevice"];
_currentDevice = nil;
[self didChangeValueForKey:@"currentDevice"];


add fallback for bad message Id from sendgrid

:tada: This PR is included in version 5.3.4 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


storage: do not copy sync.Mutex by value

baseNeedleMapper contains sync.Mutex which should not be copied by value.

Thanks for this PR! Is this just by reading the source code or noticed during some tests?

go vet did the job.


How to use helia with infura/quicknode?

I am trying to understand how to use helia to add/pin objects with infura/quicknode. Is there reference implementation for that?

Have you tried https://github.com/ipfs/helia-remote-pinning ?

See also: https://github.com/ipfs/helia/issues/180


Linux Compiling Issue

Hi Colin,
Getting these errors when compiling the new wallet..
Older ones worked fine.
All dependencies are up to date.
Got this problem with qmake
nic@nic-desktop:~/Nexus$ qmake nexus-qt.pro RELEASE=1 USE_UPNP=1
Project MESSAGE: Building with Static Linking
Project MESSAGE: Building with UPNP support
Project MESSAGE: Building with Lower Level Database Support
Warning: ignoring  element
Warning: ignoring  element
Warning: ignoring  element
Warning: ignoring  element
Warning: ignoring  element
Warning: ignoring  element
When 'make'
Is it a qt problem?
nic@nic-desktop:~/Nexus$ make
g++ -c -m64 -pipe -fstack-protector -D_FORTIFY_SOURCE=2 -fpermissive -O2 -w -D_REENTRANT -fPIC -DQT_GUI -DBOOST_THREAD_USE_LIB -DBOOST_SPIRIT_THREADSAFE -DUSE_UPNP=1 -DSTATICLIB -DUSE_LLD -DLINUX -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -Isrc -Isrc/core -Isrc/hash -Isrc/json -Isrc/keys -Isrc/net -Isrc/qt -Isrc/util -Isrc/wallet -Isrc/LLD -Isrc/LLP -isystem /usr/include/boost -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -Ibuild/moc -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -o build/obj/main-qt.o src/qt/main-qt.cpp
In file included from src/qt/main-qt.cpp:9:0:
src/qt/core/gui.h:12:23: fatal error: QMainWindow: No such file or directory
compilation terminated.
Makefile:1217: recipe for target 'build/obj/main-qt.o' failed
make: *** [build/obj/main-qt.o] Error 1

you have qt5 installed. the source doesnt compile with it yet, but i'll be pushing my fork in a couple days which will allow it to compile with qt4 and qt5. check back in a couple days

For anyone else with Qt5 already installed and not wanting to remove it ...
Nexus$ sudo apt-get install qt4-default qt4-qmake libqt4-dev
Nexus$ qmake-qt4 nexus-qt.pro "RELEASE=1" "USE_UPNP=1"

... should get you there.

Resolved


 Thank you for all the work that has gone into the recent releases! I'm happy to use pipenv almost on a daily basis.
Issue description
It seems that the latest pipenv falsely flags my macOS + Python3 via Homebrew as a virtual environment.
The subsequent installation of dependencies does noting on existing projects or fails weirdly with python2 errors on new projects.
Expected result
$ pipenv install
Warning: the environment variable LANG is not set!
We recommend setting this in ~/.profile (or equivalent) for proper expected behavior.
Creating a virtualenv for this project…
Pipfile: /private/tmp/cool-project/Pipfile
Using /usr/local/bin/python3.7m (3.7.7) to create virtualenv…
⠴ Creating virtual environment...Using base prefix '/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7'
New python executable in /Users/nico/.local/share/virtualenvs/cool-project-gb-P45lz/bin/python3.7
Also creating executable in /Users/nico/.local/share/virtualenvs/cool-project-gb-P45lz/bin/python
Installing setuptools, pip, wheel...
done.
Running virtualenv with interpreter /usr/local/bin/python3.7m

✔ Successfully created virtual environment!
Virtualenv location: /Users/nico/.local/share/virtualenvs/cool-project-gb-P45lz
Installing dependencies from Pipfile.lock (de0b8f)…
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 21/21 — 00:00:02
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.

Actual result on new projects
$ pipenv install
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project. You can set PIPENV_IGNORE_VIRTUALENVS=1 to force pipenv to ignore that environment and create its own instead. You can set PIPENV_VERBOSITY=-1 to suppress this warning.
Installing dependencies from Pipfile.lock (de0b8f)…
Failed to load paths: /bin/sh: /Users/nico/.local/share/virtualenvs/cool-project-gb-P45lz/bin/python: No such file or directory

Output:
Failed to load paths: /bin/sh: /Users/nico/.local/share/virtualenvs/cool-project-gb-P45lz/bin/python: No such file or directory

Output:
Failed to load paths: /bin/sh: /Users/nico/.local/share/virtualenvs/cool-project-gb-P45lz/bin/python: No such file or directory

Output:
An error occurred while installing cachetools==4.1.0 --hash=sha256:1d057645db16ca7fe1f3bd953558897603d6f0b9c51ed9d11eb4d071ec4e2aab --hash=sha256:de5d88f87781602201cde465d3afe837546663b168e8b39df67411b0bf10cefc! Will try again.
An error occurred while installing marshmallow==3.6.0 --hash=sha256:f88fe96434b1f0f476d54224d59333eba8ca1a203a2695683c1855675c4049a7 --hash=sha256:c2673233aa21dde264b84349dc2fd1dce5f30ed724a0a00e75426734de5b84ab! Will try again.
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 21/21 — 00:00:02
Installing initially failed dependencies…
[InstallError]:   File "/usr/local/lib/python3.7/site-packages/pipenv/cli/command.py", line 252, in install
[InstallError]:       site_packages=state.site_packages
[InstallError]:   File "/usr/local/lib/python3.7/site-packages/pipenv/core.py", line 2062, in do_install
[InstallError]:       keep_outdated=keep_outdated
[InstallError]:   File "/usr/local/lib/python3.7/site-packages/pipenv/core.py", line 1314, in do_init
[InstallError]:       pypi_mirror=pypi_mirror,
[InstallError]:   File "/usr/local/lib/python3.7/site-packages/pipenv/core.py", line 901, in do_install_dependencies
[InstallError]:       retry_list, procs, failed_deps_queue, requirements_dir, **install_kwargs
[InstallError]:   File "/usr/local/lib/python3.7/site-packages/pipenv/core.py", line 796, in batch_install
[InstallError]:       _cleanup_procs(procs, failed_deps_queue, retry=retry)
[InstallError]:   File "/usr/local/lib/python3.7/site-packages/pipenv/core.py", line 703, in _cleanup_procs
[InstallError]:       raise exceptions.InstallError(c.dep.name, extra=err_lines)
[pipenv.exceptions.InstallError]: DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
[pipenv.exceptions.InstallError]: ERROR: Could not find a version that satisfies the requirement cachetools==4.1.0 (from -r /var/folders/bm/nrklr36j2d92m7wz22_1nkym0000gn/T/pipenv-lc3jfmuu-requirements/pipenv-nnfotjey-requirement.txt (line 1)) (from versions: 0.0.0, 0.1.0, 0.2.0, 0.3.0, 0.3.1, 0.4.0, 0.5.0, 0.5.1, 0.6.0, 0.7.0, 0.7.1, 0.8.0, 0.8.1, 0.8.2, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.1.5, 1.1.6, 2.0.0, 2.0.1, 2.1.0, 3.0.0, 3.1.0, 3.1.1)
[pipenv.exceptions.InstallError]: ERROR: No matching distribution found for cachetools==4.1.0 (from -r /var/folders/bm/nrklr36j2d92m7wz22_1nkym0000gn/T/pipenv-lc3jfmuu-requirements/pipenv-nnfotjey-requirement.txt (line 1))
ERROR: Couldn't install package: cachetools
 Package installation failed...
  ☤  ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 1/2 —

Actual result on existing projects
$ pipenv install
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project. You can set PIPENV_IGNORE_VIRTUALENVS=1 to force pipenv to ignore that environment and create its own instead. You can set PIPENV_VERBOSITY=-1 to suppress this warning.
Installing dependencies from Pipfile.lock (de0b8f)…
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 —

Steps to replicate

Use macOS (I'm on Mojave 10.14.6)
Install python using homebrew: brew install python
a. Probably unrelated: I've also installed Python 3.8 using homebrew brew install<EMAIL_ADDRESS>Also make sure the install paths of homebrew are in your PATH.
a. I think my setup is based upon this guide
b. Make sure to reload/reboot any open sessions so the changes in PATH are reflected
Run pip3 install -U pipenv to install the latest pipenv
Run pipenv install in a python project
Acknowledge incorrect virtual environment detection because it spits out the "Pipenv found itself running within a virtual environment" message.

System info
$ pipenv --support
Pipenv version: '2020.6.2'
Pipenv location: '/usr/local/lib/python3.7/site-packages/pipenv'
Python location: '/usr/local/opt/python/bin/python3.7'
Python installations found:

3.7.7: /usr/local/bin/python3
3.7.7: /usr/local/bin/python3.7m
3.7.7: /usr/local/bin/python3.7
3.6.7: /usr/local/bin/python3.6
3.6.7: /usr/local/bin/python3.6m
2.7.17: /usr/local/bin/python2
2.7.17: /usr/local/bin/python2.7
2.7.16: /usr/bin/python2.7

PEP 508 Information:
{'implementation_name': 'cpython',
 'implementation_version': '3.7.7',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '18.7.0',
 'platform_system': 'Darwin',
 'platform_version': 'Darwin Kernel Version 18.7.0: Mon Apr 27 20:09:39 PDT '
                     '2020; root:xnu-4903.278.35~1/RELEASE_X86_64',
 'python_full_version': '3.7.7',
 'python_version': '3.7',
 'sys_platform': 'darwin'}

System environment variables:

TERM_SESSION_ID
SSH_AUTH_SOCK
LC_TERMINAL_VERSION
Apple_PubSub_Socket_Render
COLORFGBG
ITERM_PROFILE
XPC_FLAGS
PWD
SHELL
LC_CTYPE
TERM_PROGRAM_VERSION
TERM_PROGRAM
PATH
LC_TERMINAL
COLORTERM
TERM
HOME
TMPDIR
USER
XPC_SERVICE_NAME
LOGNAME
ITERM_SESSION_ID
__CF_USER_TEXT_ENCODING
SHLVL
OLDPWD
ZSH
PAGER
LESS
LSCOLORS
ZNT_REPO_DIR
ZNT_CONFIG_DIR
NVM_DIR
GOPATH
_
PIP_DISABLE_PIP_VERSION_CHECK
PYTHONDONTWRITEBYTECODE
PIP_SHIMS_BASE_MODULE
PIP_PYTHON_PATH
PYTHONFINDER_IGNORE_UNSUPPORTED

Pipenv–specific environment variables:
Debug–specific environment variables:

PATH: /usr/local/opt/openjdk@11/bin:/Users/nico/Library/Android/sdk/platform-tools:/Users/nico/Library/Python/3.7/bin:/Users/nico/Projects/go/bin:/usr/local/bin:/usr/local/sbin:/Users/nico/.poetry/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/usr/local/CrossPack-AVR/bin:/Users/nico/.composer/vendor/bin
SHELL: /bin/zsh
PWD: /tmp/cool-project

Contents of Pipfile ('/private/tmp/cool-project/Pipfile'):
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
flask = "*"
docker = "*"
waitress = "*"
flask-basicauth = "*"
sentry-sdk = {extras = ["flask"],version = "*"}
flask-marshmallow = "*"
cachetools = "*"

[requires]
python_version = "3.7"

Contents of Pipfile.lock ('/private/tmp/cool-project/Pipfile.lock'):
{
    "_meta": {
        "hash": {
            "sha256": "09c8342a4c3edee1ba3cffcf27e6d97613ed3c020e1c1c77b62a9fd7ffde0b8f"
        },
        "pipfile-spec": 6,
        "requires": {
            "python_version": "3.7"
        },
        "sources": [
            {
                "name": "pypi",
                "url": "https://pypi.org/simple",
                "verify_ssl": true
            }
        ]
    },
    "default": {
        "blinker": {
            "hashes": [
                "sha256:471aee25f3992bd325afa3772f1063dbdbbca947a041b8b89466dc00d606f8b6"
            ],
            "version": "==1.4"
        },
        "cachetools": {
            "hashes": [
                "sha256:1d057645db16ca7fe1f3bd953558897603d6f0b9c51ed9d11eb4d071ec4e2aab",
                "sha256:de5d88f87781602201cde465d3afe837546663b168e8b39df67411b0bf10cefc"
            ],
            "index": "pypi",
            "version": "==4.1.0"
        },
        "certifi": {
            "hashes": [
                "sha256:1d987a998c75633c40847cc966fcf5904906c920a7f17ef374f5aa4282abd304",
                "sha256:51fcb31174be6e6664c5f69e3e1691a2d72a1a12e90f872cbdb1567eb47b6519"
            ],
            "version": "==2<IP_ADDRESS>"
        },
        "chardet": {
            "hashes": [
                "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
                "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
            ],
            "version": "==3.0.4"
        },
        "click": {
            "hashes": [
                "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a",
                "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"
            ],
            "version": "==7.1.2"
        },
        "docker": {
            "hashes": [
                "sha256:1c2ddb7a047b2599d1faec00889561316c674f7099427b9c51e8cb804114b553",
                "sha256:ddae66620ab5f4bce769f64bcd7934f880c8abe6aa50986298db56735d0f722e"
            ],
            "index": "pypi",
            "version": "==4.2.0"
        },
        "flask": {
            "hashes": [
                "sha256:4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060",
                "sha256:8a4fdd8936eba2512e9c85df320a37e694c93945b33ef33c89946a340a238557"
            ],
            "index": "pypi",
            "version": "==1.1.2"
        },
        "flask-basicauth": {
            "hashes": [
                "sha256:df5ebd489dc0914c224419da059d991eb72988a01cdd4b956d52932ce7d501ff"
            ],
            "index": "pypi",
            "version": "==0.2.0"
        },
        "flask-marshmallow": {
            "hashes": [
                "sha256:6e6aec171b8e092e0eafaf035ff5b8637bf3a58ab46f568c4c1bab02f2a3c196",
                "sha256:a1685536e7ab5abdc712bbc1ac1a6b0b50951a368502f7985e7d1c27b3c21e59"
            ],
            "index": "pypi",
            "version": "==0.12.0"
        },
        "idna": {
            "hashes": [
                "sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb",
                "sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa"
            ],
            "version": "==2.9"
        },
        "itsdangerous": {
            "hashes": [
                "sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19",
                "sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749"
            ],
            "version": "==1.1.0"
        },
        "jinja2": {
            "hashes": [
                "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0",
                "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035"
            ],
            "version": "==2.11.2"
        },
        "markupsafe": {
            "hashes": [
                "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473",
                "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161",
                "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235",
                "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5",
                "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42",
                "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff",
                "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b",
                "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1",
                "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e",
                "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183",
                "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66",
                "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b",
                "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1",
                "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15",
                "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1",
                "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e",
                "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b",
                "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905",
                "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735",
                "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d",
                "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e",
                "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d",
                "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c",
                "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21",
                "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2",
                "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5",
                "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b",
                "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6",
                "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f",
                "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f",
                "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2",
                "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7",
                "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"
            ],
            "version": "==1.1.1"
        },
        "marshmallow": {
            "hashes": [
                "sha256:c2673233aa21dde264b84349dc2fd1dce5f30ed724a0a00e75426734de5b84ab",
                "sha256:f88fe96434b1f0f476d54224d59333eba8ca1a203a2695683c1855675c4049a7"
            ],
            "version": "==3.6.0"
        },
        "requests": {
            "hashes": [
                "sha256:43999036bfa82904b6af1d99e4882b560e5e2c68e5c4b0aa03b655f3d7d73fee",
                "sha256:b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6"
            ],
            "version": "==2.23.0"
        },
        "sentry-sdk": {
            "extras": [
                "flask"
            ],
            "hashes": [
                "sha256:0e5e947d0f7a969314aa23669a94a9712be5a688ff069ff7b9fc36c66adc160c",
                "sha256:799a8bf76b012e3030a881be00e97bc0b922ce35dde699c6537122b751d80e2c"
            ],
            "index": "pypi",
            "version": "==0.14.4"
        },
        "six": {
            "hashes": [
                "sha256:236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a",
                "sha256:8f3cd2e254d8f793e7f3d6d9df77b92252b52637291d0f0da013c76ea2724b6c"
            ],
            "version": "==1.14.0"
        },
        "urllib3": {
            "hashes": [
                "sha256:3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527",
                "sha256:88206b0eb87e6d677d424843ac5209e3fb9d0190d0ee169599165ec25e9d9115"
            ],
            "version": "==1.25.9"
        },
        "waitress": {
            "hashes": [
                "sha256:045b3efc3d97c93362173ab1dfc159b52cfa22b46c3334ffc805dbdbf0e4309e",
                "sha256:77ff3f3226931a1d7d8624c5371de07c8e90c7e5d80c5cc660d72659aaf23f38"
            ],
            "index": "pypi",
            "version": "==1.4.3"
        },
        "websocket-client": {
            "hashes": [
                "sha256:0fc45c961324d79c781bab301359d5a1b00b13ad1b10415a4780229ef71a5549",
                "sha256:d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010"
            ],
            "version": "==0.57.0"
        },
        "werkzeug": {
            "hashes": [
                "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43",
                "sha256:6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c"
            ],
            "version": "==1.0.1"
        }
    },
    "develop": {}
}

Notes
Assuming that a Homebrew installed python is not supposed to be a virtual environment, I tried digging into this myself and found a possible cause of the bug. Please note that i'm making some assumptions so I'd love to hear your input on this :)
The last release introduced an _OSX_VENV variable that is later-on used in the method is_in_virtualenv() to determine if the command is running inside
a virtual environment. This variable stores the removed value of an __PYVENV_LAUNCHER__ environment variable, which is originally implemented to prevent faulty shebangs.
I suspect that using the OSX_VENV variable is too aggressive in determining if we are running inside a virtual environment. I've checked on a different mac setup with a Python 3.7.2  and it seems that the __PYVENV_LAUNCHER__ is also set there.
My suggested fix would be to remove the _OSX_VENV variable, this works on my machine. Although I'm not sure if this reintroduces https://github.com/pypa/pipenv/pull/4284
Edit: Formatting and typo's

Just a note: this was closed as a duplicate (https://github.com/pypa/pipenv/issues/4341) but I think it adds something to this issue... I'm also experiencing this issue, and to me it seems 2-fold. First, it throws the warning about the existing environment when there is one, but it still will proceed to successfully create a pipenv. However, pipenv --rm will throw the same error and then abort the removal. So pipenv --rm is broken in this case, and the virtualenv must be removed manually

Seeing this too. Looks like #4341 was closed as a duplicate of this issue?

Hey, I noticed that this is reopened. Did the applied fix in #4317 not work well enough?
I read https://github.com/pypa/pipenv/issues/4359 but can only assume why this reopened 😄

@nstapelbroek Just to leave at least one issue open so that newcomers won't file duplicate issues.
I didn't notice #4359 , I have closed that one.

I'm also experiencing this on Red Hat 7 when I install pipenv with pipx and on macOS via brew . From what I can tell though, pipenv install and pipenv --rm work as expected if pipenv was not installed in a virtualenv and the message is incorrect about using the virtualenv pipenv is installed in.

I've had this problem since I entered #%% in the terminal to set up a environment now I can't stop it?

Came here because of this problem. Are there plans to cut a bugfix release soon? Pipenv is kinda broken for me until that fix is released.

You can just roll back the version for now.
On Thu, Jul 16, 2020 at 4:58 PM Christian Hudon<EMAIL_ADDRESS>wrote:

Came here because of this problem. Are there plans to cut a bugfix release
soon? Pipenv is kinda broken for me until that fix is released.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/pypa/pipenv/issues/4316#issuecomment-659468310, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABH47TTTYEIRXN5AXKJQLF3R34IRBANCNFSM4NR726ZQ
.

I just thumbed up the issue a month or so ago, but didn't post a comment here.  Yet the problem here just had me determine pipenv to be non-viable to use.
I just have a very standard MacOS set up I have (i.e. latest Python 3.8 installed with homebrew).
My feedback here is meant with goodwill and respect to the people that put their time in to support the project, and just want to give the feedback that the issue here impacts engagement with the project for another individual here, also.

So, I'm trying to be as kind as possible. I know how much of the opensource community (to which I am also a part of) is powered by volunteers. But pipenv has been broken for at least a good portion of the macOS Python user base for almost two months now. I know there's are tradeoffs to be made in selecting a threshold for when to do bugfix point release vs when to wait for the next normal release. I would like to very respectfully suggest that this project has its threshold for what requires a bugfix point release set too high currently. In the meantime, I can't use or recommend a core tool that stays broken for this long for a significant portion of its userbase.
(If the project changes its mind and wishes to do a bugfix point release, and is lacking the time to port over the patch, I'd be more than happy to help.)

So what's the way forward with this?

I ran into this as well. + 1
In the meantime, since I did not want to go through homebrew history (I had pipenv installed via brew), I decided to uninstall the homebrew version (2020.6.2), and installed via my pyenv's pip; i.e. pip install 'pipenv==v2020.5.28'. I ensured that I did not have any Pipfiles in any unwanted directories (e.g. ~) and restarted iTerm2. Seems like things are back to normal - at least until a fix is available.

I ran into this as well. + 1
In the meantime, since I did not want to go through homebrew history (I had pipenv installed via brew), I decided to uninstall the homebrew version (2020.6.2), and installed via my pyenv's pip; i.e. pip install 'pipenv==v2020.5.28'. I ensured that I did not have any Pipfiles in any unwanted directories (e.g. ~) and restarted iTerm2. Seems like things are back to normal - at least until a fix is available.

Spent hours figuring out what is wrong with my python setup, just to eventually lend here. At least change what version brew points to maybe?

@MiluchOK You would have to take that up with the Homebrew people and I don't think they will downgrade pipenv. You're better off manually downgrading pipenv on your machine.

Confirming this is fixed in Release v2020.8.13.

Thanks for testing


Added $firstMessageID by Dynamic

Type

[ ] Bug Fix
[x] Functions: $firstMessageID
[ ] Callbacks:
[ ] Handlers:
[ ] Others:

Dependencies (Third Party Modules) needed: none
Want a credit? Discord tag or other social media link: Dynamic#0005
Referenced Issue: #118
Description
$firstMessageID or $firstMessageID[channelID] returns First message's ID from the current channel or in given channel.

WoW 🤩


Remove the _index() function?

It's annoying me that it's there, as it doesn't really fill a need. It's also obscure as to what it's for.
For anyone wondering, it gets called by the indexing notation:
array[0] = 1;

It was a pain to code, and might be hiding subtle bugs due to how it works, and how many ways it can be used.
It's gotta go before 1.0.

This is related to #25 - the whole thing needs to be reworked.

I've dummied this out with 402abb6 - but #25 means I'll need more work around this area.


No IntelliSense in WebStorm for all HTMLIon*Elements in an angular project

Support Question
Solution
https://youtrack.jetbrains.com/issue/WEB-37192

node_modules\@ionic\core is excluded from indexing, because this module is not listed in project dependencies in package.json. Un-excluding it ( Mark directory as/Not excluded) should make typings from node_modules\@ionic\core\dist\types available to the IDE, making completion work

Doing this or adding "@ionic/core": "^4.0.0" to the package.json will work.
Question
Why cannot we add this dependency directly by generating the project?

Ionic version: 4.x
Current behavior:
Using any Ionic Controller (e.g. AlertController, ToastController) and creating HTMLIonElements, e.g. HTMLIonAlertElement or HTMLIonToastElement, there is no IntelliSense in Webstorm.
Expected behavior:
There should be IntelliSense / hints for these classes and theirs members or methods.
Steps to reproduce:

Setup a new project with angular type:

ionic start myApp tabs --type=angular

Open WebStorm, open the Tab2Page class and create an alert and try to get IntelliSense for example the dismiss method of the HTMLIonAlertElement.

Related code:
import { Component } from '@angular/core';
import { AlertController, ToastController } from '@ionic/angular';

@Component({
    selector: 'app-tab2',
    templateUrl: 'tab2.page.html',
    styleUrls: ['tab2.page.scss']
})
export class Tab2Page {
    constructor(private alertController: AlertController, public toastController: ToastController) {
    }

    private async showLoading() {
        const loading = await this.alertController.create({header: 'test header'});
        // const ionAlertElement: HTMLIonAlertElement;

        loading.dismiss();
    }
}

Other information:
WebStorm Info:
I already Invalidated Caches and Restarted WebStorm. (at least two times)
Version 2018.3.4
Mac OS

If I click on the HTMLIonAlertElement I land here: components.d.ts
interface HTMLIonAlertElement extends Components.IonAlert, HTMLStencilElement {}
var HTMLIonAlertElement: {
    prototype: HTMLIonAlertElement;
    new (): HTMLIonAlertElement;
};

Ionic info:
Ionic:

   ionic (Ionic CLI)             : 4.10.2 (/usr/local/lib/node_modules/ionic)
   Ionic Framework               : @ionic/angular 4.0.1
   @angular-devkit/build-angular : 0.12.4
   @angular-devkit/schematics    : 7.2.4
   @angular/cli                  : 7.2.4
   @ionic/angular-toolkit        : 1.3.0

System:

   NodeJS : v8.11.3 (/usr/local/bin/node)
   npm    : 6.7.0
   OS     : macOS Mojave

Windows
Also happening on a windows machine:

Ionic:

   ionic (Ionic CLI)             : 4.10.2 (C:\Users\K.Shah.KS1\AppData\Roaming\npm\node_modules\ionic)
   Ionic Framework               : @ionic/angular 4.0.1
   @angular-devkit/build-angular : 0.12.4
   @angular-devkit/schematics    : 7.2.4
   @angular/cli                  : 7.2.4
   @ionic/angular-toolkit        : 1.3.0

System:

   NodeJS : v10.15.0 (C:\Program Files\nodejs\node.exe)
   npm    : 6.4.1
   OS     : Windows 10

Is WebStorm not able to parse something or is the default tsconfig.json or something wrong?
Maybe this is related: https://github.com/ionic-team/ionic/issues/14784
and https://github.com/ionic-team/ionic/issues/15867
Thank you very much in forward.
@michaelcamper mentioning you here, because you had the same problem.

Thanks for the issue! Are you still seeing this with latest? The linked issues seem to have been closed.

@brandyscarney
Thank you, the issue is resolved.


add findAll(GET) method in the campaign-application.service(second try)

Closes #{issue number}
Motivation and context

Testing
Steps to test
New endpoints

Environment
New environment variables:

[ ] NEW_ENV_VAR: env var details

New or updated dependencies:

Dependency name
Previous version
Updated version
Details

dependency/name
v1.0.0
v2.0.0

Трябва ли да правя някакви промени?


[FEATURE]Add german default template

The way I use this lib, will be to display incomming invoices, as it is requested for next year by the german goverment.
I can contribute and add a german translation, if you agree.

The way I use this lib, will be to display incomming invoices, as it is requested for next year by the german goverment. I can contribute and add a german translation, if you agree.

Of course, I would be delighted if you could provide a suitable template. That would save me a lot of work... ;-)
Kind regards


Add --update-uuids option to osxphotos exportdb

    That's an interesting scenario. Unfortunately, osxphotos doesn't support this situation as currently designed. osxphotos tracks assets in the library using a universally unique identifier (UUID) which Photos assigns to each asset upon import. However, this unique identifier is unique only to the copy of the Photos library.  If you rebuild the library or have a copy of the library from a different computer, the UUIDs won't match and thus Photos won't be able to match the exported photos to those in the 2nd library.

There are a couple of ways osxphotos could solve this:

For iCloud photos (your situation) each photo has a "cloud master UUID" that maps the photo to the original in iCloud. osxphotos doesn't currently read this value but if it did, this could be used to compare the photos in the two databases to find the matching photos.
For all photos, including those not in the cloud, Photos computes a "fingerprint" hash that is unique to each asset and is the same across computers/libraries. osxphotos already uses this to find identical photos for the osxphotos sync command. This could be used to find the matching photos (though there is some ambiguity as you could have duplicate photos in the library and they'd have the same fingerprint).

Given one or both of the above, it would be possible to add a new command to osxphotos exportdb that would update the export database with new UUIDs from a new library. In addition to your situation, this would be helpful for those that want to maintain an existing export after moving to a new computer (the photos, if downloaded from iCloud and not restored from a backup, will have different UUIDs).
I'll think about this but I think it's do-able and would be useful.  I'll open a new issue to add this feature.
Originally posted by @RhetTbull in https://github.com/RhetTbull/osxphotos/discussions/989#discussioncomment-5021390

@all-contributors please add @swduncan for ideas

Added in v0.57.2 as --migrate-photos-library


Adding link to awesome-styled-components

Fix for https://github.com/styled-components/awesome-styled-components/issues/13

cc @mxstbr

@philpl I agree that your message is a lot more thoughtful and friendlier. I added that in and reverted back to the Built with styled-components header

Super! Thanks a lot for taking the initiative here 🙌
Let’s see if Max has some more suggestions


bug:

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

Versions

Please paste the output of terraform version command from within the initialized directory:
Terraform v1.9.7

Please enter the module version that you are using:
4.1.4

Description
When making future changes to the subscription, the changes are not applied. For example, if the subscription was previously placed in the contoso-management management, changing the subscription_management_group_id to contoso-connectivity and then running a terraform apply does not re-associate the subscription to the contoso-connectivity management group
Steps to Reproduce

Using the examples, provision a new subscription and populate the subscription_management_group_id
Run terraform apply
Change the subscription_management_group_id to another management group
Run terraform apply

Following this, the subscription should still be in the original management group
Screenshots

Additional context

No workaround found for changing management group ids - instead just a manual move.

Hi - this is strange as we use the management group association resource to manage this - what does your module input look like?

Hi,
It's pretty typical of some of the examples. While testing I'm just hard-coding, but variables would eventually be used. Just to note as well I wasn't able to copy and paste so just had to re-type the below. The original code works without errors so the inputs appear correct.
module lz_vending {
   source = "azure/lz-vending/azurerm"
   subscription_id = "subid"
   subscription_alias_enabled = false
   subscription_billing_scope = ""
   subscription_display_name = "test sub"
   subscription_alias_name = "test sub"
   subscription_workload = "production"
   subscription_management_group_id = "contoso-online"
}

At the moment, the subscription is currently under the "contoso-sandbox" management group id, and running a terraform plan doesnt detect it or apply doesn't change it.

Just to note as well, I tried to use the azurerm_management_group_subscription_association as outlined in the terraform documentation (using the data blocks as well) which did successfully associate to the correct management group using the exact same information as outlined above, so it looks like it's something within the lz_vending module rather than the azurerm module
data azurerm_management_group test {
   name = "contoso-online"
}

data azurerm_subscription test {
   subscription_id = "subid"
}

resource azurerm_management_group_subscription_association test {
   management_group_id = data.azurerm_management_group.test.id
   subscription_id = data.azurerm_subscription.test.id
}


Please change macro definition to fix native build on raspberry pi

px4/Firmware/src/lib/DriverFramework/framework/include/
on raspberry pi b+ ,mpu9250 spi device 0  is  /dev/spidev0.0
and mag should be /dev/spidev0.0
`#if defined(__IMU_USE_I2C)
#include "I2CDevObj.hpp"
#else
#include "SPIDevObj.hpp"
#endif
#if defined(__DF_QURT)
#include "dev_fs_lib_spi.h"
#define IMU_DEVICE_PATH "/dev/spi-1"
#elif defined(__DF_BEBOP)
#define IMU_DEVICE_PATH "/dev/i2c-mpu6050"
#elif (defined(__DF_RPI) && !defined(__IMU_USE_I2C))
#define IMU_DEVICE_PATH "/dev/spidev0.0"
#elif (defined(__DF_RPI) && defined(__IMU_USE_I2C))
#define IMU_DEVICE_PATH "/dev/i2c-1"
#elif defined(__DF_EDISON)
#define IMU_DEVICE_PATH "/dev/spidev5.1"
#else
#define IMU_DEVICE_PATH "/dev/spidev0.0"
#endif
#if (defined(__DF_RPI) && !defined(__IMU_USE_I2C))
#include <linux/spi/spidev.h>
#define IMU_DEVICE_ACC_GYRO "/dev/spidev0.0"
#define IMU_DEVICE_MAG "/dev/spidev0.0"
#elif  (defined(__DF_RPI) && defined(__IMU_USE_I2C))
#include <linux/i2c-dev.h>
#define IMU_DEVICE_ACC_GYRO "/dev/i2c-1"
#define IMU_DEVICE_MAG "/dev/i2c-1"
#else
#define IMU_DEVICE_ACC_GYRO ""
#define IMU_DEVICE_MAG ""
#endif
#define IMU_CLASS_PATH  "/dev/imu"`

@crossa could you submit a pull request?
PX4 DriverFramework is here - https://github.com/PX4/DriverFramework

@crossa according to upstream Navio2 [0], the devices are correct. Are you using an older Navio board?
Also, Navio2 only supports RPi 2+3 [1].
[0] https://github.com/emlid/Navio2/blob/navio2/C++/Navio/LSM9DS1.cpp#L7
[1] https://docs.emlid.com/navio2/Navio-APM/hardware-setup/

OK，I had fix it without any change。I try to build a coptor with pi zero without navio or pxfmini
I’ll  submit a pull request when I finish it

Ok, good, closing this then.


Don't proxy on the libevent thread.

Don't suppose you have any test that exhibits deadlocks or such without this fix?

LGTM


⚠ Bofrost.lu has degraded performance

In bb14073, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1392 ms

Resolved: Bofrost.lu performance has improved in 7b79197 after 9 minutes.


isLoading: wrong state

Bug report
Description / Observed Behavior
Sometimes, the value of isLoading returned by useSWR is true when there is data and no errors.
Expected Behavior
The isLoading should be false when there is data returned from useSWR.
Repro Steps / Code Example
Or share your code snippet or a CodeSandbox link is also appreciated!
Additional Context
SWR version: 2.0.0-beta.3.

Hi! Do you have a way to easily reproduce this? Thanks.
(BTW when the key changes, isLoading can be true again even if there’s previous data loaded)

@shuding same issue for the same key also, I fetched the data in one component when I change the pages sometimes the isLoading set to true and the network request is finished in the network tab

reproduction: https://codesandbox.io/s/swr-2030-fm0g36


Add Remark and RemarkCommand

InTrack is built on an Internship object and its attributes, and does not have the Remark field.
Let's add a Remark field to allow users to store notes and remarks about their internship applications.
Users will not need to use the AddCommand to add remarks to their applications, instead let's add a RemarkCommand that will update the Remark field with the user's input.
RemarkCommand is in the format: remark [INDEX] [PREFIX].

Codecov Report
Base: 72.73% // Head: 73.59% // Increases project coverage by +0.86% :tada:

Coverage data is based on head (8406045) compared to base (6d7eea0).
Patch coverage: 86.76% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff              @@
##             master      #79      +/-   ##
============================================
+ Coverage     72.73%   73.59%   +0.86%
- Complexity      442      462      +20
============================================
  Files            76       79       +3
  Lines          1368     1424      +56
  Branches        148      154       +6
============================================
+ Hits            995     1048      +53
- Misses          329      331       +2
- Partials         44       45       +1

Impacted Files
Coverage Δ

.../java/seedu/intrack/model/util/SampleDataUtil.java
20.00% <0.00%> (ø)

src/main/java/seedu/intrack/ui/InternshipCard.java
0.00% <0.00%> (ø)

...in/java/seedu/intrack/model/internship/Remark.java
75.00% <75.00%> (ø)

...java/seedu/intrack/logic/commands/EditCommand.java
97.33% <100.00%> (+0.03%)
:arrow_up:

...va/seedu/intrack/logic/commands/RemarkCommand.java
100.00% <100.00%> (ø)

...va/seedu/intrack/logic/commands/StatusCommand.java
73.91% <100.00%> (ø)

...a/seedu/intrack/logic/parser/AddCommandParser.java
100.00% <100.00%> (ø)

...ain/java/seedu/intrack/logic/parser/CliSyntax.java
87.50% <100.00%> (+1.78%)
:arrow_up:

...java/seedu/intrack/logic/parser/InTrackParser.java
90.00% <100.00%> (+0.52%)
:arrow_up:

...eedu/intrack/logic/parser/RemarkCommandParser.java
100.00% <100.00%> (ø)

... and 2 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Implement table sorting in webadmin, addresses #40

Here's what it looks like

I still need to sort out the fixing odd and even rows after the tables are sorted.
Mainly I wanted your opinion on

Whether this vanilla js solution is fine, or should I use the recent-ish added jquery for maximum compatibility. I believe the main limitation here is its >=IE9 with some of the functions I use.
Are the simple little arrows okay
Is the formatting etc fine

Personally I agree with psychon on the issue page that using a really hefty library is kinda overkill. Which is why I opted to just make a simple sorting function.

I also like the simple sort function approach, but I don't know what is the policy for supported browsers.
PS. Is that 'BLACK UP/DOWN-POINTING TRIANGLE'? To me, looks quite massive. :) How about 'BLACK UP/DOWN-POINTING SMALL TRIANGLE'?

Yup, here's what BLACK UP/DOWN-POINTING SMALL TRIANGLE looks like.

small looks better in my opinion, so that leaves the last concern as maximum browser compatibility with dependence on jquery vs a vanilla js solution that doesn't support less than IE9. Looks like that accounts for 1.4% of the total browser market share.

I don't know web development at all, so disregard this my comment. But if it's possible to use jQuery to support more browsers, and still not bring some huge library, that would be good, I guess.

It's hard to reason about compatibility with browsers, unless all supported browsers are actually tested (something like #772?)

I don't know web development at all, so disregard this my comment. But if it's possible to use jQuery to support more browsers, and still not bring some huge library, that would be good, I guess.

I thought about it a bit and I have to say that znc is a technically orientated tool, I doubt there's much overlap between people with super outdated versions of IE and people who use znc. But anyway, I was initially off putted from jQuery by the discussion in the issue, namely the fact that it's so large and its use here would be so limited.
In conclusion: I feel that this is fine as it is.

It's hard to reason about compatibility with browsers, unless all supported browsers are actually tested (something like #772?)

ehh, automated testing of browser compatibility is really overkill, I don't think there's nearly enough web code in this project to justify that


Export OHM-ID

closes #4

Coverage increased (+7.0%) to 85.366% when pulling 1f64ca39c7071c7b347634287f2e381b3154ccd7 on 4-export-ohm-id into c36d2109dbc4fc21f9328c8468ef9933610d6564 on master.


[ui issues] Design QA bugs

Design QA items found in QA call with professor. Gonna add a check list after I fix retire links. Its gonna be great.

[ ] on filter results project page make dropdown items touch select input (no padding). width 100% left aligned text with same padding/aligned with select text
[x] update space between stats and activities from 2.4rem to 1.2rem
[ ] for project stats (not seller state) if !currentSupply or !totalRetired (should this be || or &&?) then dont show stats . we can change "Data for this project and vintage" text to ""No data found for this project and vintage"

@jabby09 to review if these are still design bugs