Problem with [Right Alt+a]

RainLoop version, browser, OS:
11.3, Chrome
Expected behavior and actual behavior:
[Right Alt+a] combination of keys should give "ą" in polish language, instead it mark all chars
Steps to reproduce the problem:
press [Right Alt+a]
Logs or screenshots:

I'm using Polish but I do not have this issue.
OS: Linux
Browser: Chromium

Problem exists in windows.

Problem is with CKEditor library ckeditor.js.
Correct string in line 789:
from
var c=a.data.$;65==a.data.getKey()
to
var c=a.data.$;1==2&&65==a.data.getKey()
Don't know if it messing something else, for sure solve problem with "ą" and chrome.

Thanks

Hi I changed this line in ckeditor.js but this solution is not working all the time, any other ideas how to solve this?

The problem still exists on version 1.12.0. I've noticed that if you save the new message as draft and re-open it from draft folder there is no issue.


Problem when compiling

Q
A

Fixed Issues
Fixes #1, Fixes #2

Patch: Bug Fix?

Major: Breaking Change?

Minor: New Feature?

Tests Added/Pass?

Spec Compliancy?

License
MIT

Doc PR

Any Dependency Changes?

Codecov Report

Merging #539 into master will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master     #539   +/-   ##
=======================================
  Coverage   91.77%   91.77%
=======================================
  Files         427      427
  Lines       26907    26904    -3
  Branches     8130     8127    -3
=======================================
- Hits        24693    24691    -2
+ Misses       2183     2182    -1
  Partials       31       31

Impacted Files
Coverage Δ

...helper-builder-react-jsx-experimental/src/index.js
97.78% <100.00%> (-0.02%)
:arrow_down:

packages/babel-helper-function-name/src/index.js
97.36% <100.00%> (ø)

...ransform-classes/src/inline-createSuper-helpers.js
46.15% <100.00%> (+7.69%)
:arrow_up:

...bel-plugin-transform-classes/src/transformClass.js
98.06% <100.00%> (+0.01%)
:arrow_up:

packages/babel-preset-env/src/normalize-options.js
95.95% <100.00%> (-0.05%)
:arrow_down:

packages/babel-traverse/src/scope/index.js
84.28% <100.00%> (-0.09%)
:arrow_down:

packages/babel-types/src/constants/index.js
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


Sidebar scratch

Hi
I created new pull request due to a particularly murky rebase process I had to do to work on up to date project. Besides, the name tabbed_scratch doesn't have much in common with what's going on in this branch ;) I'm aware that creating second pull request is a pain but rebase was really nasty as it is with rebasing between two different repos. Maybe a link in each request to the other one would help.
Changelog
What's Done

Changed ionicons to react-bytesize-icons as suggested
Changed Roboto to Fira but it looked just bad so reverted
Reworked whole sidebar layout to flexbox so it's robust and resizing ready, I don't know how to implement the latter though
Made default workspace part of the list (first item)
Removed header altogether, added 'new project' button to default workspace item
Removed sidebar toggle handle, bound sidebar toggling to ctrl+b shortcut
With toggle handle gone, text area is properly centered again
Adjusted sidebar colors -> sidebar has darker shade of background instead of gradient border, active scratch just has the same color ar scratch background
'Calmed down' hover animations
Aligned sidebar scrollbar behavior with default scrollbar
Removed unnecessary text
Reworked prompts so that they appear instead of the edited item or in place of new-item-to-be
Reworked app rendering to have single react root
Move theme management to top level component, sidebar supports light theme
Replaced custom signalEmitter with ipcRenderer, eliminated memory leaks
Moving default scratch should work, the rest of projects hierarchy is relative to it (tested)

Need help with

Sidebar drag resize - I don't know how to bite that, I gather you don't want to include any full-blown library just for that and you mentioned you have some experience with that.

Todo

keyboard support for items management and navigation

Todo just for you ;)

clicking outside of the sidebar should close it
no roboto
single parsed text file storage
automatic naming based on first word of the scratch
last scratch -> new scratch, persist on content
remove empty scratch that lost focus
moving to a different scratch closes the sidebar

Added one more super useful feature :)

sidebar icontains (project / scratch) search, togglable by ctrl + h (or by search icon in default workspace item)

I haven't forgotten you @Brachacz, just haven't gotten around to it yet!

Sure, no frills ;)

Good improvement, UI is much better but it will take a lot of work before this can land.

Still has the project/scratch hierarchy, it should be a flat list
I think all the text finagling should happen in the render env, not the main env (main env just stores and retrieves from a single file) On disk there should be a single content file with all contents in it (with some smart unicode to split the different scratches). Having all this code in the main env complicates things a lot.
the way mainapp.jsx, fromscratch.jsx and sidebar.jsx now work together adds a layer of indirection that I'm not comfortable with, as it circumvents "The React Way". Can you make it so that fromscratch.jsx just has a  element? (And I would expect it to have props currentScratch and scratchList as well as function props setcurrentScratch, addScratch, updateScratch and deleteScratch, from which it builds it state, with the project management done in the Fromscratch component.
Please use rems for sizing. Check the height of the search (ctrl + F) or update bar to see how this works. I'd like all rows to be the same both inside the sidebar and in the text area. everywhere you use 26px, it sohuld be 2 rems
Any text input, such as create/edit/search should visually look the same as the search bar to create a coherent UI

Other smaller ui things:

sidebar is pretty wide (would be nice to have it be a percentage of the width with a reasonable min/max)
there's some horizontal overflow/scroll issues when your sidebar is higher than the page and you scroll horizontally
text search overlaps sidebar

If you want me to set up some sort of skeleton code wise, let me know.


Make field codes optional

Package build should not fail if execFieldCodes is not specified.
Also documents execFieldCodes in README.

Hi @erickedji , sorry for the late reply.
Thanks for the updates


fix typo in BBC_News

BBC_News is the correct name in OCTIS

Hi Gregory, thanks for your contribution, this is indeed a typo


Execution Workflow: GETUTR

WHAT
Write execution workflow for GETUTR. Use the provided small files for testing (running the workflow on real data is a different issue).
CHECKLIST

[ ] Use snakemake template or nextflow template to create your workflow.
[ ] Comment your code
[ ] Run individual rules/processes in either conda envs or docker/singularity containers for reproducibility
[ ] Input:  .bam or .fastq from test_data
[ ] Give feedback about the method

OUTPUTS (see specification):

[ ] Output: Adhere to output specification for Identification challenge

This BED file contains single-nucleotide position of poly(A) sites identified by the tool.
Fields:

chrom - the name of the chromosome
chromStart - the starting position of the feature in the chromosome
chromEnd - the ending position of the feature in the chromosome; as identified PAS are single-nucleotide, the ending position is the same as starting position
name - defines the name of the identified poly(A) site
score - not used, leave as "."
strand - defines the strand; either "." (=no strand) or "+" or "-".

[ ] Output: Adhere to output specification for quantification challenge

This BED file contains positions of unique poly(A) sites with TPM values for each identified site in the score column.

chrom - the name of the chromosome
chromStart - the starting position of the feature in the chromosome
chromEnd - the ending position of the feature in the chromosome; as identified PAS are single-nucleotide, the ending position is the same as starting position
name - defines the name of the identified poly(A) site
score - TPM value for the identified site
strand - defines the strand; either "." (=no strand) or "+" or "-".

[ ] ~Output: Adhere to output specification for differential usage challenge~ No differential usage

GETUTR looks to be using python2.x, having problems installing rpy2 (one of the requirements):
pip2.7 install rpy2
Collecting rpy2
Downloading rpy2-3.5.2.tar.gz (202 kB)
|████████████████████████████████| 202 kB 6.8 MB/s
ERROR: Command errored out with exit status 1:
rpy2 is no longer supporting Python < 3.7.Consider using an older rpy2 release when using an older Python release.
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Ok trying to make it work in a clean Docker install with python2.7


Non deterministic conversion between WKT and Proj.4

I found an extremely weird behavior with pycrs.parser where the conversion changes randomly with each Python interpreter.
This is the offending script:
import pycrs

# From https://epsg.io/2000
wkt_epsg_2000 = '''PROJCS["Anguilla 1957 / British West Indies Grid",
    GEOGCS["Anguilla 1957",
        DATUM["Anguilla_1957",
            SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,
                AUTHORITY["EPSG","7012"]],
            AUTHORITY["EPSG","6600"]],
        PRIMEM["Greenwich",0,
            AUTHORITY["EPSG","8901"]],
        UNIT["degree",0.0174532925199433,
            AUTHORITY["EPSG","9122"]],
        AUTHORITY["EPSG","4600"]],
    PROJECTION["Transverse_Mercator"],
    PARAMETER["latitude_of_origin",0],
    PARAMETER["central_meridian",-62],
    PARAMETER["scale_factor",0.9995],
    PARAMETER["false_easting",400000],
    PARAMETER["false_northing",0],
    UNIT["metre",1,
        AUTHORITY["EPSG","9001"]],
    AXIS["Easting",EAST],
    AXIS["Northing",NORTH],
    AUTHORITY["EPSG","2000"]]'''

print(pycrs.parser.from_esri_wkt(wkt_epsg_2000).to_proj4())

And this is what happens if I run it from the command line:
$ python wtf.py
+proj=utm +a=6378249.145 +f=293.465 +pm=0.0  +lat_0=0.0 +lon_0=-62.0 +x_0=400000.0 +y_0=0.0 +units=m +axis=enu +no_defs
$ python wtf.py
+proj=utm +a=6378249.145 +f=293.465 +pm=0.0  +lat_0=0.0 +lon_0=-62.0 +x_0=400000.0 +y_0=0.0 +units=m +axis=enu +no_defs
$ python wtf.py
+proj=tmerc +a=6378249.145 +f=293.465 +pm=0.0  +lat_0=0.0 +lon_0=-62.0 +x_0=400000.0 +y_0=0.0 +units=m +axis=enu +no_defs

Notice how the projection changes randomly. I cross checked with @slava-kerner in another machine and the same happens. The problem does not appear within a running Python process.

I removed "ESRI" from the issue title because the same behavior occurs with from_ogc_wkt and from_unknown_wkt.

That's quite strange. Did you ever figure this one out? Will try this myself too.

Sorry, I switched to pyproj for this task.


fix(@schematics/angular): add missing express REQUEST and RESPONSE tokens

This commit updates the nguniversal migration to add REQUEST and RESPONSE tokens.
Closes #26110

@alan-agius4 Whats the new package that exports these? I just ran the ng update @angular/core @angular/cli --next --force and it didn't update imports.

@alan-agius4 did you get a chance to look at this?

The tokens are no longer exporting from a package. Instead the migration will create them in the project when encountering imports to @nguniversal/express-engine/tokens.

The tokens are no longer exporting from a package. Instead the migration will create them in the project when encountering imports to @nguniversal/express-engine/tokens.

Thanks. I was expecting that after looking at PR.

But it's not creating them during migration
When I create them manually, I see error

 error TS2742: The inferred type of 'REQUEST' cannot be named without a reference to '.pnpm/@types+express-serve-static-core@4.17.35/node_modules/@types/express-serve-static-core'. This is likely not portable. A type annotation is necessary.

export const REQUEST = new InjectionToken<Request>('REQUEST');

You can run the migration on here https://github.com/stevermeister/ngx-cookie-service and reproduce the issue

Are you importing the Request from the right place?
import { InjectionToken } from '@angular/core';
import { Request, Response } from 'express';

export const REQUEST = new InjectionToken<Request>('REQUEST');
export const RESPONSE = new InjectionToken<Response>('RESPONSE');

Are you importing the Request from the right place?
import { InjectionToken } from '@angular/core';
import { Request, Response } from 'express';

export const REQUEST = new InjectionToken<Request>('REQUEST');
export const RESPONSE = new InjectionToken<Response>('RESPONSE');

I think so. You can see them here https://github.com/stevermeister/ngx-cookie-service/blob/test/projects/ngx-cookie-service-ssr/src/lib/tokens.ts

Are you importing the Request from the right place?
import { InjectionToken } from '@angular/core';
import { Request, Response } from 'express';

export const REQUEST = new InjectionToken<Request>('REQUEST');
export const RESPONSE = new InjectionToken<Response>('RESPONSE');

I think so. You can see them here https://github.com/stevermeister/ngx-cookie-service/blob/test/projects/ngx-cookie-service-ssr/src/lib/tokens.ts

It seems like an issue with PNPM. When I tried with NPM I don't see an issue. But PNPM gives that error. Any idea why?


[BUG] undefined method `match' for nil:NilClass

There is an issue while running this plugin:
[!] The exception involves the following plugins:
 -  danger-spm_version_updates

/Users/bartosz/.gem/ruby/3.2.3/gems/semantic-1.6.1/lib/semantic/version.rb:13:in `initialize':  (Danger::DSLError)
[!] Invalid `Dangerfile` file: undefined method `match' for nil:NilClass
 #  from Dangerfile:46
 #  -------------------------------------------
 #  spm_version_updates.report_above_maximum = true
 >  spm_version_updates.check_for_updates("Project.xcodeproj")
 #  -------------------------------------------

	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-spm_version_updates-0.1.1/lib/spm_version_updates/plugin.rb:157:in `new'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-spm_version_updates-0.1.1/lib/spm_version_updates/plugin.rb:157:in `warn_for_new_versions'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-spm_version_updates-0.1.1/lib/spm_version_updates/plugin.rb:63:in `block in check_for_updates'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-spm_version_updates-0.1.1/lib/spm_version_updates/plugin.rb:41:in `each'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-spm_version_updates-0.1.1/lib/spm_version_updates/plugin.rb:41:in `check_for_updates'
	from Dangerfile:46:in `eval_file'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-9.4.3/lib/danger/danger_core/dangerfile.rb:311:in `eval'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-9.4.3/lib/danger/danger_core/dangerfile.rb:311:in `eval_file'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-9.4.3/lib/danger/danger_core/dangerfile.rb:204:in `block in parse'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-9.4.3/lib/danger/danger_core/dangerfile.rb:201:in `instance_eval'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-9.4.3/lib/danger/danger_core/dangerfile.rb:201:in `parse'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-9.4.3/lib/danger/danger_core/dangerfile.rb:287:in `run'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-9.4.3/lib/danger/commands/dry_run.rb:44:in `run'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/claide-1.1.0/lib/claide/command.rb:334:in `run'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-9.4.3/bin/danger:5:in `<top (required)>'
	from /Users/bartosz/.gem/ruby/3.2.3/bin/danger:25:in `load'
	from /Users/bartosz/.gem/ruby/3.2.3/bin/danger:25:in `<main>'
/Users/bartosz/.gem/ruby/3.2.3/gems/semantic-1.6.1/lib/semantic/version.rb:13:in `initialize': undefined method `match' for nil:NilClass (NoMethodError)

      v = version_str.match(SemVerRegexp)
                     ^^^^^^
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-spm_version_updates-0.1.1/lib/spm_version_updates/plugin.rb:157:in `new'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-spm_version_updates-0.1.1/lib/spm_version_updates/plugin.rb:157:in `warn_for_new_versions'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-spm_version_updates-0.1.1/lib/spm_version_updates/plugin.rb:63:in `block in check_for_updates'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-spm_version_updates-0.1.1/lib/spm_version_updates/plugin.rb:41:in `each'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-spm_version_updates-0.1.1/lib/spm_version_updates/plugin.rb:41:in `check_for_updates'
	from Dangerfile:46:in `eval_file'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-9.4.3/lib/danger/danger_core/dangerfile.rb:311:in `eval'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-9.4.3/lib/danger/danger_core/dangerfile.rb:311:in `eval_file'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-9.4.3/lib/danger/danger_core/dangerfile.rb:204:in `block in parse'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-9.4.3/lib/danger/danger_core/dangerfile.rb:201:in `instance_eval'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-9.4.3/lib/danger/danger_core/dangerfile.rb:201:in `parse'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-9.4.3/lib/danger/danger_core/dangerfile.rb:287:in `run'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-9.4.3/lib/danger/commands/dry_run.rb:44:in `run'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/claide-1.1.0/lib/claide/command.rb:334:in `run'
	from /Users/bartosz/.gem/ruby/3.2.3/gems/danger-9.4.3/bin/danger:5:in `<top (required)>'
	from /Users/bartosz/.gem/ruby/3.2.3/bin/danger:25:in `load'
	from /Users/bartosz/.gem/ruby/3.2.3/bin/danger:25:in `<main>'

Any workarounds?

@BartoszCichecki Thanks for the report. This is happening because there is a package listed in your Project.xcodeproj that is missing from your Package.resolved so the plugin has nothing to check against. Do you know why this might be the case for your project? If you are able to put up an example repo I can take a look as well.
In the meantime, this crash has been fixed in 0.1.2 and a warning will print to your console or CI logs identifying the missing package.

Thanks for quick response. I updated to 0.1.2 and it doesn't crash, but it prints quite a bit of warnings now for what looks to be all packages. For example:
Unable to locate the current version for adjust/ios_sdk (https://github.com/adjust/ios_sdk) in Project.xcworkspace/xcshareddata/swiftpm/Package.resolved and when I check the Package.resolved file, I can find the version:
    {
      "package": "Adjust",
      "repositoryURL": "https://github.com/adjust/ios_sdk",
      "state": {
        "branch": null,
        "revision": "a7b50f187855dfc0fb84114c22661216393387ae",
        "version": "4.32.1"
      }
    },

Danger is configured like this:
# SPM Version Updates
spm_version_updates.check_when_exact = true
spm_version_updates.report_above_maximum = true
spm_version_updates.check_for_updates("Project.xcodeproj")

Both dangerfile, Project.xcodeproj and Project.xcworkspace are in the root dir of the repo. Path to Package.resolved is also correct.
Maybe the parsing of Package.resolved is failiing? Let me know what info you need.

Hmm, I'm guessing this is due to how Xcode mangles repo URLs. Can you look at the Adjust URL in Project.xcodeproj/project.xcodeproj?

4153F63E28FD5048003BEEA3 /* XCRemoteSwiftPackageReference "ios_sdk" */ = {
			isa = XCRemoteSwiftPackageReference;
			repositoryURL = "https://github.com/adjust/ios_sdk";
			requirement = {
				kind = upToNextMajorVersion;
				minimumVersion = 4.29.0;
			};
		};

In addition to having a Project.xcworkspace/xcshareddata/swiftpm/Package.resolved do you also have a Project.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved file? (note in the second path project.xcworkspace is always that name regardless of your actual project name).
Digging around I came across this link https://stackoverflow.com/a/71721448 which suggests there may be multiple .resolved files in projects that use both SPM and CocoaPods. (According to Apple the .xcodeproj form is canonically correct https://developer.apple.com/documentation/xcode/building-swift-packages-or-apps-that-use-them-in-continuous-integration-workflows#Use-the-expected-version-of-a-package-dependency )
I'll release a new version soon to handle this issue and the URL mangling cases, and also add more debug logging. In the meantime you can email me your Package.resolved if you're comfortable with that Harold . Martin @ gmail

Working on addressing the multiple resolved files in https://github.com/hbmartin/danger-spm_version_updates/pull/2
Will follow-up on the URL issue in another PR

Addressing URL issue in https://github.com/hbmartin/danger-spm_version_updates/pull/3

In addition to having a Project.xcworkspace/xcshareddata/swiftpm/Package.resolved do you also have a Project.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved file? (note in the second path project.xcworkspace is always that name regardless of your actual project name).

There is only 1 packaged resolved file: Project.xcworkspace/xcshareddata/swiftpm/Package.resolved
Also tested 1.3 with exactly the same result.

I think we're finally on the verge of solving this... does your Package.resolved have "version": 1?
If so it's not currently supported... but working on it now should be done tomorrow

Yes! Thanks! 👏


Add support for slice of pointers

Currently parsing supports slices but not slices of pointers.

#9 closed this issue.


fix(explore): Certificate icon not displaying for certified metrics

SUMMARY
Certificate icon was not displayed for certified saved metrics in metrics panel and in select options in metrics popover. This PR fixes it and adds some basic tests for OptionControls using react-testing-library.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
Before: see https://github.com/apache/superset/issues/13078
After:

TEST PLAN

ADDITIONAL INFORMATION

[x] Has associated issue: fixes https://github.com/apache/superset/issues/13078
[ ] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[ ] Introduces new feature or API
[ ] Removes existing feature or API

CC: @junlincc @villebro @nikolagigic

Codecov Report

Merging #13133 (3c436b8) into master (2ce7982) will increase coverage by 8.76%.
The diff coverage is 33.86%.

@@            Coverage Diff             @@
##           master   #13133      +/-   ##
==========================================
+ Coverage   53.06%   61.82%   +8.76%
==========================================
  Files         489      553      +64
  Lines       17314    20252    +2938
  Branches     4482     5300     +818
==========================================
+ Hits         9187    12521    +3334
+ Misses       8127     7517     -610
- Partials        0      214     +214

Flag
Coverage Δ

cypress
?

javascript
61.82% <33.86%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...end/src/SqlLab/components/RunQueryActionButton.tsx
64.28% <ø> (+11.50%)
:arrow_up:

superset-frontend/src/chart/ChartContainer.jsx
100.00% <ø> (ø)

superset-frontend/src/chart/ChartRenderer.jsx
39.18% <0.00%> (-37.53%)
:arrow_down:

...perset-frontend/src/common/components/Dropdown.tsx
54.76% <ø> (+4.76%)
:arrow_up:

...ontend/src/components/ListViewCard/ImageLoader.tsx
86.36% <0.00%> (+11.36%)
:arrow_up:

...set-frontend/src/components/URLShortLinkButton.jsx
100.00% <ø> (ø)

...src/dashboard/components/HeaderActionsDropdown.jsx
54.79% <ø> (-12.78%)
:arrow_down:

...end/src/dashboard/components/StickyVerticalBar.tsx
50.00% <ø> (-50.00%)
:arrow_down:

...ponents/nativeFilters/FilterBar/CascadePopover.tsx
20.28% <0.00%> (-76.38%)
:arrow_down:

...d/components/nativeFilters/FilterBar/FilterBar.tsx
70.93% <0.00%> (-24.46%)
:arrow_down:

... and 521 more

Continue to review full report at Codecov.

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


Unable to create 2 epg under 2 BD using contiv

Created 2 network objects under tenant t1
[root@localhost ~]# netctl network list -t=t1
Tenant  Network  Nw Type  Encap type  Packet tag  Subnet       Gateway     IPv6Subnet  IPv6Gateway

t1      n2       data     vlan        0           <IP_ADDRESS>/24  <IP_ADDRESS>
t1      n1       data     vlan        0           <IP_ADDRESS>/24  <IP_ADDRESS>
It created 2 BD's under a VRF on apic.
Create 3 groups : epg1,epg2 with n1 and epg1-n2 with 2
[root@localhost ~]# netctl group list -t=t1
Tenant  Group    Network  Policies

t1      epg1     n1
t1      epg2     n1       allowicmp
t1      epg1-n2  n2
When I create a profile :
netctl app-profile  create -t t1 -g epg1,epg2,epg1-n2 profile1 , all the 3 epg's created are under the same BD.
If I do 1 by 1
netctl app-profile  create -t t1 -g epg1,epg2 profile1
netctl app-profile  create -t t1 -g epg1-n2 profile1
epg1-n2 overrides the other 2 epg's created. Also app-profile update does not help.  Hence I cannot  create 2 EPG's under 2 different BD.

Looks like related to this one : https://github.com/contiv/netplugin/issues/347
@jojimt : Could you please confirm that we support only one BD for all EPGs right now ?

@santosh76: can you please describe the use case you have in mind, when trying to create two BDs in one tenant/vrf? Contiv supports only one BD for all epgs per tenant; the reason is because BD is not modeled natively, because all epgs can belong to one BD (broadcast domain).

Was not aware that we support only 1 BD for all epgs. Could be an enhancement request


Admin UI: Detect SSL from URL

@toddboom

@gunnaraasen would this be related to https://groups.google.com/d/msgid/influxdb/51bfc91e-8ae5-42d9-8914-1c6bf5323971%40googlegroups.com?

@beckettsean I believe that was a different issue and posted on the mailing list.
This change is a usability enhancement for new users who may not realize there is an SSL connection setting. Most of the time, users are running both the API and admin UI with HTTPS enabled. This change makes the admin UI connection settings automatically select "SSL" when the admin UI is served using HTTPS.

@toddboom I'm going to merge this on green.


product.js not being injected?

Problem
product.js not being injected?
Product Variants Updates not working.
When you scaffold slate for a new theme using the create-theme command using the starter-theme.  the code from product.js is not executing.  So this means you cannot select a variant to add to cart and the price update isn't not showing
Replication steps

yarn create slate-theme my-new-theme
Create private app get api password
Duplicate theme and get ID
build .env
yarn deploy
Populate store with shopify developer tools.
visit page and try to invoke a variant.

The variant dropdown is present.
https://ellwooodz.myshopify.com/products/adaptive-awesome-soft-pizza?variant=7842794995763
More Information
I'm kind of a shopify noob. and if I'm just missing something (to get section level .js to work), if you could point me in the right direction that would rock.

@kpow your timing is impeccable. It's going to be fixed in https://github.com/Shopify/starter-theme/pull/54
Once that is merged, try creating a new project and everything should work.


Bumped version number & build for npm publish

I forgot to bump & build on #8

I did bump it from 1.0.2 to 1.0.3 so all's good. :)


  Whatever happens to be present in the package repositories at build-time is content included in the images.  This is undesirable from a user perspective as it results in the image contents frequently changing. It's also undesirable from an operational perspective as there is no way to recover a prior image should it become corrupt or get pruned from the registry server.
This PR puts the machinery in place to support rebuildable "stable" container images.  This PR does not include the automation necessary to maintain the static package lists.  A future PR may add that functionality, for now they're simply re-generated for every CI run.

@edsantiago when you get a chance, would you mind giving maintain_packages.sh and the Containerfile changes a quick once-over?  This PR is still a WIP, but I don't want to carry onward, if you feel any major changes are needed.  TIA.

Force-push: New VM image, increased timeouts, removed dnf install unzip workaround.

Force-push: New CI VM image.  Added distro name/release to metadata.

Force-push: Disabled arm testing (in DO NOT MERGE commit) because the Fedora repos are misbehaving.

Heavily considering abandoning this effort, it seems to be taking up a LOT of time and adding a lot of complexity.  I'm currently facing a problem that only reproduces in CI and not locally (using same version of podman).  Also, basically nobody (IMHO) worries about point-in-time rebuildable container images, why should we be different?

I've been reviewing and re-reviewing, usually in one-to-two-hour chunks. The general idea SGTM but this is huge and complicated. I will pause review until you decide whether to proceed with it.

I will pause review until you decide whether to proceed with it.

Thanks, and thanks for taking the time to look.  It is big and not even the end of it, more work is needed to get Renovate or some other tool to actually update the static files - otherwise there's no point and it's only extra complexity for nothing.
I'm leaning more toward abandoning it every time it crosses my mind.  The fact I can't get CI to pass (but it works locally) is also weighing on me heavily.

I'm going to abandon this, it's too complex and "against the grain" WRT how other images are built.  Better to spend my time on more useful items rather than spin my wheels any further here.


Scrape metrics per DMap from Olric Partition

Describe the solution you'd like
// Stats is a struct that exposes statistics about the current state of a member.
type Stats struct {
        ...
       	// Partitions is a map that contains partition statistics.
	Partitions map[PartitionID]Partition `json:"partitions"`
        ...
}

// Partition denotes a partition and its metadata in the cluster.
type Partition struct {
	// PreviousOwners is a list of members whose still owns some fragments.
	PreviousOwners []Member `json:"previous_owners"`

	// Backups is a list of members whose holds replicas of this partition.
	Backups []Member `json:"backups"`

	// Total number of entries in the partition.
	Length int `json:"length"`

	// DMaps is a map that contains statistics of DMaps in this partition.
	DMaps map[string]DMap `json:"dmaps"`
}

From Partition DMaps (mapping from DMap name to DMap), periodically scrape metrics per DMap and publish to prom metrics.

Follow up (low priority) issue from Olric Metrics (https://github.com/fluxninja/aperture/issues/460)


httptrace stats

With the addition of the new httptrace package, https://golang.org/pkg/net/http/httptrace/, there is more possibility to show more precise information all along the different events during a request.
Introduce an optional experimental flag to use httptrace and display the data.

@rakyll
Added -http-trace and have opened a pull request.
Currently supports average Connection setup, Dns lookup, request and response read and write times.
Please suggest

Closed experimentally by https://github.com/rakyll/hey/pull/4.


After slimming down, many environments are gone and the operation fails.

run：docker-slim build --http-probe=false lui_label:v1
cmd=build info=exec message='changing continue-after from probe to nothing because http-probe is disabled'
cmd=build info=exec message='changing continue-after to enter'
cmd=build state=started
cmd=build info=params target.image='lui_label:v1' continue.mode='enter' rt.as.user='true' keep.perms='true' tags='' image-build-engine='internal' target.type='image'
cmd=build state=image.inspection.start
cmd=build info=image size.bytes='29592992698' size.human='30 GB' id='sha256:8b94a9be17f599791890905463c523742dad41c7c315ad3bc1e814a09d109989'
cmd=build info=image.stack index='0' name='lui_label:v1' id='sha256:8b94a9be17f599791890905463c523742dad41c7c315ad3bc1e814a09d109989'
cmd=build info=image.exposed_ports list='22/tcp'
cmd=build state=image.inspection.done
cmd=build state=container.inspection.start
cmd=build info=container status='created' name='slimk_3922407_20240529070544' id='dd4ce71728d925ae22cc395960b52fd42ece51ac1740c9e2f674161ab764fba0'
cmd=build info=container id='dd4ce71728d925ae22cc395960b52fd42ece51ac1740c9e2f674161ab764fba0' status='running' name='slimk_3922407_20240529070544'
cmd=build info=container message='obtained IP address' ip='<IP_ADDRESS>'
time="2024-05-29T15:05:46+08:00" level=error msg="channel.Client.Read: read error (read tcp <IP_ADDRESS>:38232-><IP_ADDRESS>:32778: read: connection reset by peer), exiting..."
time="2024-05-29T15:05:46+08:00" level=error msg="channel.NewCommandClient: channel verify error = read tcp <IP_ADDRESS>:38232-><IP_ADDRESS>:32778: read: connection reset by peer"
cmd=build info=cmd.startmonitor status='sent'
cmd=build info=event.startmonitor.done status='received'
cmd=build info=container name='slimk_3922407_20240529070544' id='dd4ce71728d925ae22cc395960b52fd42ece51ac1740c9e2f674161ab764fba0' target.port.list='32779' target.port.info='22/tcp => <IP_ADDRESS>:32779' message='YOU CAN USE THESE PORTS TO INTERACT WITH THE CONTAINER'
cmd=build info=continue.after mode='enter' message='provide the expected input to allow the container inspector to continue its execution'
cmd=build prompt='USER INPUT REQUIRED, PRESS  WHEN YOU ARE DONE USING THE CONTAINER'
docker exec -it lui:lable sh
cmd=build state=container.inspection.finishing
enter
cmd=build state=container.inspection.artifact.processing
cmd=build state=container.inspection.done
cmd=build state=building message="building optimized image" engine=internal
cmd=build state=completed
cmd=build info=results by='4.72X' size.original='30 GB' size.optimized='6.3 GB' status='MINIFIED'
cmd=build info=results image.id='sha256:db4bcae6c6286bab008b00779ec5d0f9c823ae2836701417ec2e2092eee48a08' image.digest='sha256:6a37dbde71906cf1b869490d83668bcdc6a1a9709c3cef360fee4dc86337a19f' has.data='true' image-build-engine='internal' image.name='lui_label.slim' image.size='6.3 GB'
cmd=build info=results artifacts.location='/tmp/slim-state/.slim-state/images/8b94a9be17f599791890905463c523742dad41c7c315ad3bc1e814a09d109989/artifacts'
cmd=build info=results artifacts.report='creport.json'
cmd=build info=results artifacts.dockerfile.reversed='Dockerfile.reversed'
cmd=build info=results artifacts.seccomp='lui_label-seccomp.json'
cmd=build info=results artifacts.apparmor='lui_label-apparmor-profile'
cmd=build state=done
cmd=build info=commands message='use the xray command to learn more about the optimize image'
cmd=build info=report file='slim.report.json'
app='slim' message='GitHub Discussions' info='https://github.com/slimtoolkit/slim/discussions'
app='slim' message='Join the CNCF Slack channel to ask questions or to share your feedback' info='https://cloud-native.slack.com/archives/C059QP1RH1S'
app='slim' message='Join the Discord server to ask questions or to share your feedback' info='https://discord.gg/9tDyxYS'
app='slim' message='Join the Gitter channel to ask questions or to share your feedback' info='https://gitter.im/docker-slim/community'
docker logs：
/usr/lib/python3/dist-packages/requests/init.py:89: RequestsDependencyWarning: urllib3 (2.2.1) or chardet (3.0.4) doesn't match a supported version!
warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
Traceback (most recent call last):
File "/paddle/server_fast.py", line 7, in
from model_infer import text_cls
File "/paddle/model_infer.py", line 5, in
from fast_uie import LUI_UIE
File "/paddle/fast_uie.py", line 4, in
import distutils.util
ModuleNotFoundError: No module named 'distutils'

Hahaha, it's all the same.


Fix problems when installing packages on Ubuntu

Allow non alphanumeric characters in package names and ensure that duplicate lines don't get appended to sources.list

Coverage increased (+0.01%) when pulling a329a38b2d1bd63f10f5a900cebdafffebeb7c93 on smspillaz:polysquare-travis-container.item_13 into 516656c292db9e1ee7fd8d160b309552c234e0bc on polysquare:master.


Fix misspellings of 'receive'

Thanks for the PR! I misspell "receive" all the time; turned on spellchecker now!


GEODE-11: Fixing creation of replicated region after an error is thrown

If a replicated region is created after a lucene index is defined, an error is thrown but the region is still created (since this check is done in the afterCreate method). This was fixed by moving the check to the beforeCreate method of the region listener.
Signed-off-by: Gester Zhou<EMAIL_ADDRESS>

+1


Fix #176 Enable pin for variable watching during debugging

#176
Enable pin for variable watching during debugging.
@AndreSayreMSFT @HuanhuanSunMSFT

Looks good!


macOS CMake CI builds can't find libSDL2_test

Even after #258, we're only building or running testimage on Linux+Autotools, Linux+CMake and macOS+Autotools, because the macOS+CMake build fails to find SDL_test:
FAILED: test/testimage
: && /Applications/Xcode_13.2.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -O3 -DNDEBUG -isysroot /Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk -mmacosx-version-min=11.6 -Wl,-search_paths_first -Wl,-headerpad_max_install_names  test/CMakeFiles/testimage.dir/main.c.o -o test/testimage  -Wl,-rpath,/Users/runner/work/SDL_image/SDL_image/build  libSDL2_image-2.0.501.0.0.dylib  /usr/local/Cellar/sdl2/2.0.22/lib/libSDL2main.a  -lSDL2_test  /usr/local/Cellar/sdl2/2.0.22/lib/libSDL2.dylib && :
ld: library not found for -lSDL2_test
clang: error: linker command failed with exit code 1 (use -v to see invocation)

@madebr speculates that something like this might work:
find_library(SDL2_TEST_LIBRARY
     NAMES SDL2_test
)
if(SDL2_TEST_LIBRARY AND NOT TARGET SDL2::SDL2test)
    add_library(SDL2::SDL2test UNKNOWN IMPORTED)
    set_target_properties(SDL2::SDL2test PROPERTIES
        IMPORTED_LOCATION "${SDL2_TEST_LIBRARY}"
    )
endif()

but neither of us are Mac users, so this might be wrong.
Windows is out of scope here: the MSYS mingw-w64-*-SDL packages that we're using don't even have SDL_test (it's not just that we can't find it, it isn't even in the package).

Fixed in https://github.com/libsdl-org/SDL_image/commit/22c4127100e81d58a913085213adbe1957f7c8a1


User's tokens get revoked after every external ldap authentication

When using an external LDAP identity provider, UAA stores some hash value in the password field of the user table. I'm not sure how this is calculated but it changes each time you get a token using the password grant_type, which causes all previous tokens to be revoked for the user.

hi @mikeroda - https://github.com/cloudfoundry/uaa/pull/214 was an attempt to fix a similar issue.
I'll take a look at it today

Thanks Filip. I am using 2.5.2 so that may very well be since I see #214
was fixed in 2.7.0.
On Tue, Oct 6, 2015 at 8:18 AM, Filip Hanik<EMAIL_ADDRESS>wrote:

hi @mikeroda https://github.com/mikeroda - #214
https://github.com/cloudfoundry/uaa/pull/214 was an attempt to fix a
similar issue.
I'll take a look at it today
—
Reply to this email directly or view it on GitHub
https://github.com/cloudfoundry/uaa/issues/235#issuecomment-145839671.

Another story I'm working on will also add extra protection for this
https://github.com/cloudfoundry/uaa/commit/1cdcbfe86261e69505f99144094560dcf8fd6b68#diff-57214a7a08c8617e4241eadbff6e57d1R150

Closing. Believe to be fixed.


Feature-add/consolidate KKM, KM. GKE, K3s, AKS, EKS support with Kustomize for multiple K8s platforms

Adding GKE support with KKM because GKE restricts turning on Nested Virtualization for its worker nodes even though the same node can use Nested KVM as a GCP VM.

Added kustomize support for GKE, kind, k3s, AKS, EKS. minikube, kind etc.  to consolidate K8s deployments.  Added overlays with kustomize with minimal changes for both KM and KKM.


PMOD: block and unblock players though chat command

Here we implement the base block/unblock functionality for this epic.
1pg: https://docs.google.com/document/d/1MnIL4Cg9ltLGxlXAcss8NSAB2KSqwK7Gfj81Ltal1Vc

/mute and /unmute is already implemented. closing this.


Add a missing discord link

@appinteractive do you understand why Travis doesn't want to build a fork, thus never building the branch?

@appinteractive do you understand why Travis doesn't want to build a fork, thus never building the branch?

@roschaefer This is not an issue with Travis but with GitHub as non of the checks where triggered.


Fix ExchangeClient not properly release ExchangeQueue issue upon close

When Task terminates and cleans up resource, close() is called for ExchangeClient. But close() omits to gracefully clean up resources in ExchangeQueue when there is a MemoryPool provided in SerializedPage.
Crash will happen when there is still unprocessed SerializedPage in ExchangeQueue in ExchangeClient when Task is destructed. This is because of the destruction order of fields in Task: MemoryPool is destructed before ExchangeClient, making ExchangeClient not able to properly use MemoryPool to cleanup upon the invocation of its destructor.

@tanjialiang Looks good to me % a couple small comments. Does the test fail or crash without the fix?

Yeah the test fail without the fix


Client authorization problem with two SecurityFilterChain

I have noticed a strange problem with my oauth2 server configuration.
@Configuration
@EnableWebSecurity
public class SecurityConfig {
    PasswordEncoder passwordEncoder;

    @Bean
    @Order(1)
    public SecurityFilterChain authorizationServerSecurityFilterChain(HttpSecurity http) throws Exception {
        OAuth2AuthorizationServerConfiguration.applyDefaultSecurity(http);
        http.oauth2ResourceServer(resourceServer -> resourceServer.jwt(Customizer.withDefaults()));

        return http.build();
    }

    @Bean
    @Order(2)
    public SecurityFilterChain defaultSecurityFilterChain(HttpSecurity http) throws Exception {
        http.csrf(csrf ->
                        csrf.disable()
                )
                .authorizeHttpRequests(auth ->
                        auth.anyRequest().permitAll()
                );

        return http.build();
    }

    @Bean
    public RegisteredClientRepository registeredClientRepository() {
        var accountClient = RegisteredClient.withId(UUID.randomUUID().toString())
                .clientId("account-client")
                .clientSecret(passwordEncoder.encode("secret"))
                .clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_BASIC)
                .authorizationGrantType(AuthorizationGrantType.CLIENT_CREDENTIALS)
                .authorizationGrantType(AuthorizationGrantType.REFRESH_TOKEN)
                .redirectUri("http://account-service:8082/login/oauth2/code/spring")
                .postLogoutRedirectUri("http://<IP_ADDRESS>:8080/")
                .scope(OidcScopes.OPENID)
                .scope("server")
                .clientSettings(ClientSettings.builder().requireAuthorizationConsent(true).build())
                .build();

        return new InMemoryRegisteredClientRepository(accountClient);
    }

    @Autowired
    public void setPasswordEncoder(PasswordEncoder passwordEncoder) {
        notNull(passwordEncoder, "PasswordEncoder can not be null!");
        this.passwordEncoder = passwordEncoder;
    }

If I have this config I am able to receive accessToken from "/oauth2/token", however I am not able to use it. When I use a test controller (with postman) like this:
@PostMapping("/test")
    public Object test(@CurrentSecurityContext Object context) {
        return context;
    }

Im getting:
{
    "authentication": {
        "authorities": [
            {
                "authority": "ROLE_ANONYMOUS"
            }
        ],
        "details": {
            "remoteAddress": "HERE IS IP",
            "sessionId": null
        },
        "authenticated": true,
        "principal": "anonymousUser",
        "keyHash": 240952174,
        "credentials": "",
        "name": "anonymousUser"
    }
}

I noticed that OAuth2 for clients works correctly when I put the oauth2ResourceServer configuration in the second filter chain, as here:
    @Bean
    @Order(1)
    public SecurityFilterChain authorizationServerSecurityFilterChain(HttpSecurity http) throws Exception {
        OAuth2AuthorizationServerConfiguration.applyDefaultSecurity(http);
        return http.build();
    }

    @Bean
    @Order(2)
    public SecurityFilterChain defaultSecurityFilterChain(HttpSecurity http) throws Exception {
        http.csrf(csrf ->
                        csrf.disable()
                )
                .authorizeHttpRequests(auth ->
                        auth.anyRequest().permitAll()
                )
                .oauth2ResourceServer(resourceServer -> resourceServer.jwt(Customizer.withDefaults()));

        return http.build();
    }

I think this is a bug and the first solution should work because it is presented in your "getting started" docs.

@blackydev thanks for your interest in the project!

I think this is a bug and the first solution should work because it is presented in your "getting started" docs.

Your configuration is not equivalent to the getting started example, and you may be misunderstanding the intent of the sample configuration. The getting started example does not include authenticating to the authorization server with an access token for a custom endpoint, only for authenticating as a user with form login.
If you have further questions, please ask a question on Stack Overflow. We prefer to use GitHub issues only for bugs and enhancements. Feel free to update this issue with a link to the re-posted question (so that other people can find it).


Adding config options for enabling Roger to pull data from S3

@YaphetKG this PR is ready for review now that the roger change is in. I've been using a dev build of roger: cschreep/roger:0.6.dev


chore: fix backport workflow

There's currently somewhat of a mess with the backport workflow, which doesn't actually work.
The action we use is tibdex/backport@v1, which I mistakenly thought was internally using the backport tool i've been testing this out with. The correct action to use is actually sqren/backport-github-action.
However, the action doesn't currently use the correct version of backport that contains the fix we need for DCO to pass.
I asked the author to cut a new release, but he hasn't responded yet. I then realized the action is not really necessary, since most of the logic is implemented in the backport tool (finally a well moduled action). So this PR configures the workflow to use the backport tool as a normal run step, via projen.
Signed-off-by: Eli Polonsky<EMAIL_ADDRESS>

💚 All backports created successfully

Status
Branch
Result

✅
k8s-21/main

✅
k8s-20/main

Questions ?
Please refer to the Backport tool documentation


Backend realization

Here is the super simple Flask-MongoDB backend for your plugin.
Open to any comments :)

Hello @dremdem
Thanks for your work 👍🏻 . This is really cool. I'll soon publish a server too (using SQL db instead of NoSQL ones). I'll note yours as an alternative in pytest-monitor README.md file once it is delivered!
Again, many thanks! This is a super contribution.

Referenced in README


add local install instructions

this should fix #14

Hey @betatim, do these instructions work for you?

Kind of :-/
$ bundle install
....
Installing sawyer 0.7.0
An error occurred while installing nokogiri (<IP_ADDRESS>), and Bundler cannot
continue.
Make sure that `gem install nokogiri -v '<IP_ADDRESS>'` succeeds before bundling.

$ gem install nokogiri -v '<IP_ADDRESS>'

nokogirl fails with compiler errors. I'll have to investigate if that is something weird on my machine because I don't ever use ruby or what.

After upgrading XCode (and reinstalling the dev tools) the error changed to something about lzma. That error is discussed here: sparklemotion/nokogiri#1483 and the solution is to brew install xv --universal after that bundle install succeeds.
Big 👍  from me.

@betatim should we modify the instructions to prevent your error?

Gonna merge in for now! Let's make a new issue if we want more comprehensive install instructions 😄 Thanks for going through all that @betatim! upgrading XCode is not easy...

Not sure it is possible to make comprehensive instructions. It should just work but if it doesn't it is probably weird obscure errors that are all wonderfully unique snowflakes :-/ So I'd keep it as it is


Activities Project: Linter and Prettier config file missing

What is the issue?
Nowadays everyone uses Prettier, An automated code formatting tool.
The issue is everyone have different global settings of prettier according to their style. BUT this can cause useless changes to opensource projects as many people works on same code.
So having a prettier config file inside project directory can resolve this issue.
How to solve this issue?
adding a file .prettierrc and .prettierignore will solve this issue

Hi @RohitSaini7 Can you please check the linter also?

Hi this @RohitSaini7 other ID.

Hey Assign this to my other id @Rohit-Saini7.

Hey Assign this to my other id @Rohit-Saini7.

Done!


Documentation typo fix.

KieSession names must be unique. Also session with name KSession2_2 is mentioned later in documentation, so this was a copy-paste mistake I think.

Thanks for the PR.!The location of the drools-docs changed recently and this one is no longer used and needs to  be removed. I committed the fix to the correct location: https://github.com/droolsjbpm/droolsjbpm-knowledge/commit/30335d565a5f8bd78b5c83d17d456e22d38af740


Prototyping new cases column.

THIS IS A PROTOTYPE / NOT FINAL
I'm opening this PR to facilitate a discussion around introducing a new cases column to the data sets. The current implementation is very rudimentary and just serves as a proof of concept.
I'd like to discuss the following questions:

Is this the right place where we will be transforming the dataset? The implication is that only MultiRegionTimeseriesDataset will have this column included.
How general do we want the mechanism to be? For example, we could create a Transform class in the same way how Filters are currently implemented. Perhaps the Transform could be applied to any DatasetBase? This is certainly more work but more robust long term.
How do we deal with edge cases? For example, when one row has a cases value of Nil then the resultant diff will also be zero (regardless of the fact that there may have been an increase on this day). Generally, this happens early on the first day in the timeseries where the cohort is reporting data.
Another edge case worth considering, though I'm not entirely sure it is present in the data, is that in theory, the current implementation could calculate the difference between two rows from different cohorts (e.g. where the states, counties, or countries are not equal). The current implementation doesn't allow for that (I will need to do more research into panda to understand its limitations with regards to performing operations based on constraints). Due to the way the dataset is currently sorted, this doesn't seem to be a problem (but that's purely by chance).
What, if any, are the performance concerns here? I'm not entirely sure what performance boundaries we're operating under.

THIS IS A PROTOTYPE / NOT FINAL
I'm opening this PR to facilitate a discussion around introducing a new cases column to the data sets. The current implementation is very rudimentary and just serves as a proof of concept.
I'd like to discuss the following questions:

Is this the right place where we will be transforming the dataset? The implication is that only MultiRegionTimeseriesDataset will have this column included.

I think we should be doing the transformation outside of the class.  My thinking is that it should actually be an additiona line either here or here
maybe something like:
timeseries_dataset: TimeseriesDataset = combined_datasets.build_from_sources(
    TimeseriesDataset, data_sources, ALL_TIMESERIES_FEATURE_DEFINITION, filter=US_STATES_FILTER
)
timeseries_dataset = add_new_cases(timeseries_dataset)

multiregion_dataset = MultiRegionTimeseriesDataset.from_timeseries(timeseries_dataset)
multiregion_dataset = add_new_cases(multiregion_dataset)

but I'd also be interested in @TomGoBravo's thoughts there.

How general do we want the mechanism to be? For example, we could create a Transform class in the same way how Filters are currently implemented. Perhaps the Transform could be applied to any DatasetBase? This is certainly more work but more robust long term.

I don't have a strong opinion on the mechanism - my inclination is to start out simple and if we have 2 or 3 cases we can make a more robust solution.

How do we deal with edge cases? For example, when one row has a cases value of Nil then the resultant diff will also be zero (regardless of the fact that there may have been an increase on this day). Generally, this happens early on the first day in the timeseries where the cohort is reporting data.

That's a very good question.

Another edge case worth considering, though I'm not entirely sure it is present in the data, is that in theory, the current implementation could calculate the difference between two rows from different cohorts (e.g. where the states, counties, or countries are not equal). The current implementation doesn't allow for that (I will need to do more research into panda to understand its limitations with regards to performing operations based on constraints). Due to the way the dataset is currently sorted, this doesn't seem to be a problem (but that's purely by chance).

Yeah this is a good point.  I think you'll want to apply a groupby on the location to calculate this by region.  You are right that it does work but is also purely by chance.
There are a couple examples I can point you to.

What, if any, are the performance concerns here? I'm not entirely sure what performance boundaries we're operating under.

Don't think there are really any strong performance concerns! Ideally it's snappy - I would expect this to just take a couple of seconds - but unless it's taking more than a minute i wouldn't be too concerned

Sorry one more question I forgot to ask in the original description:

Are we okay with reusing CommonFields.NEW_CASES or should we consider a new column name, e.g. CommonFields.CALCULATED_NEW_CASES or similar? I wasn't sure if that will cause problems if one of the upstream datasources start importing a column under the same name.

Sorry one more question I forgot to ask in the original description:

Are we okay with reusing CommonFields.NEW_CASES or should we consider a new column name, e.g. CommonFields.CALCULATED_NEW_CASES or similar? I wasn't sure if that will cause problems if one of the upstream datasources start importing a column under the same name.

CommonFields.NEW_CASES I think is good!

THIS IS A PROTOTYPE / NOT FINAL
I'm opening this PR to facilitate a discussion around introducing a new cases column to the data sets. The current implementation is very rudimentary and just serves as a proof of concept.
I'd like to discuss the following questions:

Is this the right place where we will be transforming the dataset? The implication is that only MultiRegionTimeseriesDataset will have this column included.

I think we should be doing the transformation outside of the class. My thinking is that it should actually be an additiona line either here or here
maybe something like:
timeseries_dataset: TimeseriesDataset = combined_datasets.build_from_sources(
    TimeseriesDataset, data_sources, ALL_TIMESERIES_FEATURE_DEFINITION, filter=US_STATES_FILTER
)
timeseries_dataset = add_new_cases(timeseries_dataset)

multiregion_dataset = MultiRegionTimeseriesDataset.from_timeseries(timeseries_dataset)
multiregion_dataset = add_new_cases(multiregion_dataset)

but I'd also be interested in @TomGoBravo's thoughts there.

A function or method with MultiRegionTimeseriesDataset parameter and MultiRegionTimeseriesDataset result makes sense to me.

How general do we want the mechanism to be? For example, we could create a Transform class in the same way how Filters are currently implemented. Perhaps the Transform could be applied to any DatasetBase? This is certainly more work but more robust long term.

DatasetBase is an abstraction that represents timeseries and non-timeseries data separately. I created MultiRegionTimeseriesDataset because I think these two types are instead often passed around together and treated separately. Use MultiRegionTimeseriesDataset, I'm trying to retire the others.

I don't have a strong opinion on the mechanism - my inclination is to start out simple and if we have 2 or 3 cases we can make a more robust solution.

How do we deal with edge cases? For example, when one row has a cases value of Nil then the resultant diff will also be zero (regardless of the fact that there may have been an increase on this day). Generally, this happens early on the first day in the timeseries where the cohort is reporting data.

That's a very good question. I think there are a couple details to iron out. For this PR I think it would be best just to get some super simple code in place and then deal with a couple of these edge cases.

Agreed with Chris on getting everything wired up, then turn your focus to handling the corner cases well.

Another edge case worth considering, though I'm not entirely sure it is present in the data, is that in theory, the current implementation could calculate the difference between two rows from different cohorts (e.g. where the states, counties, or countries are not equal). The current implementation doesn't allow for that (I will need to do more research into panda to understand its limitations with regards to performing operations based on constraints). Due to the way the dataset is currently sorted, this doesn't seem to be a problem (but that's purely by chance).

Yeah this is a good point. I think you'll want to apply a groupby on the location to calculate this by region. You are right that it does work but is also purely by chance.

cohorts, as in subsets of regions grouped by similarity in the data? Maybe not worth going into lots of detail on corner cases since focus right now is getting some data flowing.
Agreed that using CommonFields.NEW_CASES is fine. One day we'll have provenance information to differentiate synthesized and original NEW_CASES timeseries.

My only hesitation on a method on MultiRegionTimeseriesDataset is that the dataset doesn't explicitly contain case data.  it's more of a wrapper in that sense

My only hesitation on a method on MultiRegionTimeseriesDataset is that the dataset doesn't explicitly contain case data. it's more of a wrapper in that sense

Here's an example of the style of method I had in mind: https://github.com/covid-projections/covid-data-model/blob/master/libs/datasets/statistical_areas.py#L25

A few lines from multiregion.csv. The new_cases column is bolded. Notice how it equals the difference in cases between previous row and current row.
01,2020-03-14,iso1:us#iso2:us-al,AL,USA,,state,12,0,6,,,6,22,,,,,,,,
01,2020-03-15,iso1:us#iso2:us-al,AL,USA,,state,23,0,11,,,12,28,,,,,,,,
01,2020-03-16,iso1:us#iso2:us-al,AL,USA,,state,29,0,6,,,28,28,,,,,,,,
01,2020-03-17,iso1:us#iso2:us-al,AL,USA,,state,39,0,10,,,36,28,,,,,,,,

Added a basic unit test to verify new cases are calculated correctly.
Moved the function to be an instance method of the MultiRegionTimeseriesDataset class, though I'm not sure this was the best choice. I wasn't entirely comfortable putting it in dataset_utils because that seems to be a bit of a random bag of functionality all thrown together, and at the very least should only operate on dataframes, and it sounded like you wanted this functionality to be specific to MRTD classes.
If the new location is not appropriate, please feel free to correct and point me in a better direction :-)

Added a basic unit test to verify new cases are calculated correctly.
Test looks good, thank you.

Moved the function to be an instance method of the MultiRegionTimeseriesDataset class, though I'm not sure this was the best choice. I wasn't entirely comfortable putting it in dataset_utils because that seems to be a bit of a random bag of functionality all thrown together, and at the very least should only operate on dataframes, and it sounded like you wanted this functionality to be specific to MRTD classes.

While neat little bags of code are great I'm okay with random bags when they are documented and tested. So far we've mostly kept 'business' logic out of the classes in timeseries.py. A function at the bottom of timeseries.py seems like an easy place to stick this.
For sure I'd like to keep MultiRegionTimeseriesDataset instances immutable, sorry for not noticing the mutation when I last looked at your code.
Please add types to your function def decorate_new_cases(multiregion_timeseries: MultiRegionTimeseriesDataset) -> MultiRegionTimeseriesDataset: instead of in the docstring. This increases the chances that pycharm, mypy etc helps us find problems.

Moving the function to dataset_utils is problematic when having an interface that depends on MultiRegionTimeseriesDataset: there is a circular import dependency between timeseries.py and dataset_utils.py.
E.g.
ImportError while importing test module '/Users/jleroux/w/can/covid-data-model/test/dataset_utils_test.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
test/dataset_utils_test.py:9: in <module>
    from libs.datasets import dataset_utils
libs/datasets/__init__.py:4: in <module>
    from libs.datasets.sources.jhu_dataset import JHUDataset
libs/datasets/sources/jhu_dataset.py:7: in <module>
    from libs.datasets import dataset_utils
libs/datasets/dataset_utils.py:10: in <module>
    from libs.datasets.timeseries import MultiRegionTimeseriesDataset
libs/datasets/timeseries.py:20: in <module>
    from libs.datasets import dataset_base
libs/datasets/dataset_base.py:9: in <module>
    from libs.datasets.dataset_utils import AggregationLevel, DatasetType
E   ImportError: cannot import name 'AggregationLevel' from 'libs.datasets.dataset_utils' (/Users/jleroux/w/can/covid-data-model/libs/datasets/dataset_utils.py)

Sorry, I misunderstood your comment. I see now you implied that it can be a module function that lives outside of the class, but also contained in timeseries.py?

Okay, so giving this some more thought, I'm not entirely sure having MultiRegionTimeseriesDataset in the interface, and requiring the function to make copies, is the way to go about doing this. The reason being that this class seems to be more complex than I thought (it separates out timeseries_ts, latest_ts and has provenance info). It also has no simple way of making copies, other than doing a deep copy of each of the individual attributes, and then creating a new class. At this point, the helper function that adds new cases has more logic around how to make a new copy of MRTD, than actual functionality for adding new cases.
Perhaps it makes more sense if the interface accepts a pd.DataFrame and returns the same instead?

Sorry, I misunderstood your comment. I see now you implied that it can be a module function that lives outside of the class, but also contained in timeseries.py?

Yes, that's what I had in mind. Hope you didn't get sucked into a nasty import loop vortex.

Okay, so giving this some more thought, I'm not entirely sure having MultiRegionTimeseriesDataset in the interface, and requiring the function to make copies, is the way to go about doing this. The reason being that this class seems to be more complex than I thought (it separates out timeseries_ts, latest_ts and has provenance info). It also has no simple way of making copies, other than doing a deep copy of each of the individual attributes, and then creating a new class. At this point, the helper function that adds new cases has more logic around how to make a new copy of MRTD, than actual functionality for adding new cases.
Perhaps it makes more sense if the interface accepts a pd.DataFrame and returns the same instead?

But we still need to get that returned DataFrame back into a MultiRegionTimeseriesDataset. I'm imaging making the copy is similar to the merge function:
ts_with_new_cases = mrtd.data.copy()
grouped_df = self.groupby_region()
ts_with_new_cases[CommonFields.NEW_CASES] = grouped_df[CommonFields.CASES].diff(1)
return MultiRegionTimeseriesDataset.from_dataframes(ts_with_new_cases, mrtd.latest.reset_index(), mrtd.provenace)

Do I just resolve the conflicts and then perform a merge?

Do I just resolve the conflicts and then perform a merge?

Yes. I generally update the PR desc, then use it again for the squash merge desc.


[STI-32] Add new Online Exclusive tab

Problem
https://artsyproduct.atlassian.net/browse/STI-32
We want to add a new Online Exclusive tab to shows page which shows similar section as city based tabs except it only shows Online Exclusive shows.
Solution
Added new online route to shows routes which basically makes same call as city based tab except instead of passing near it passes has_location and set it to false.
Also renamed city.jade to location_based.jade for clarity.
Depends on
Depends on coming gravity PR where we start support  has_location for finding shows.
https://github.com/artsy/gravity/pull/11583
Selfie

@ashkan18 - these conflicts are just move / rename conflicts related to moving sources into /src and should automatically resolve through a rebase

@mzikherman @saolsen this is good to go, we just need to make sure on production Gravity gets deployed first.

Gravity is deployed to production we are 👍 here.


Npm update

Update npm package for latest dependencies and version #

Is 1.0.4beta going to be published on npm soon? I just ran into #94 because I was precompiling with the latest in npm, which is 1.0.2beta.

I have tried to push this but have not had any luck as the request hangs.  Filed https://github.com/isaacs/npm/issues/1945 to see whats going on as this looks like a server-side issue.


Improve Performance of Some Tests in siatest/renter

This pull request improves the performance of various tests in siatest/renter.  Many tests in this directory have large initialization times due to having to initialize many test hosts.  This pull request lowers the amount of test hosts created in tests where it was unnecessarily high which improves performance in these tests by about 20-30%.

Note: None of the tests that failed appear to have anything to do with the tests I modified.


Add design tokens to Figma Utility Spec

Issue
All component design specs require Characteristic specs to aid development and ensure alignment between design and code. These specs can easily become outdated. There are also opportunities for human error when duplicating tokens to reuse design elements. Creating the specs can be time consuming
Tasks

Add visual representations of each characteristic token into the Salt Spec Utilities library in Figma as component instances.
Each characteristic should be its own component, with each token within the characteristic being an instance of that component
Consider a redesign of the characteristic spec to improve scanning and readability.
All additions to the Spec Utility must use Salt Next variables

Benefits
Creating visual representations of each design token within Figma...

Reduces the chance of error
Speeds up the creation of characteristic specs
Ensures consistency across specs
Helps keep design specs up-to-date with minimal manual effort

Future considerations

Allows deprecated tokens to be flagged with the update filtering through to any specs the token is used in
If the spec utility is opened up to a wider audience can help other teams create custom components or patterns
Using the Salt Next variables allows specs to be set up for specific themes/style recipes

### Tasks
- [ ] Update spec utilities to use Salt NEXT Color library
- [ ] Update spec utilities to use Salt NEXT Style library
- [ ] Add color sku component to Spec utilities

a quick update - 31 Jul - updated/published cursor order: moved default cursor to the left so it will be the default from the asset panel

Cortado Goal: Paul to complete his part (Ivan to help if needed)

Aug 12 - WIP

Aug 14 - Finished the core component with @pseys. In review.


Can't Render Hair Curly

I am having an issue which may be a bug or a feature limitation with LuxCore in Blender. I have a character with curly particle hair mostly using the kink settings. While it appears properly in the eevee-based viewport, when I switch over to Luxcore preview or render things start getting strange. The hair renders as either straight, or as mostly straight with a few rough curls.
Please note that in the following images, I'm only referring to the shape of the hair and not the materials applied to it.
This is what it is supposed to look like as per the Eevee viewport:

This is what is looks like in the Luxcore viewport:

Things get even worse when I actually render:

I'm using a brand new computer with everything mostly up to date. Is curly hair not a feature LuxCore supports, or do you think it's a bug? I am new to LuxCore, but not new to Blender and am happy to answer any questions you might have in pursuit of fixing this. I'd much rather prefer to use LuxCore for this project as I'm really happy with how it handles the rest of the scene and I don't want to start dealing with complicated issues of rendering parts of the scene in different browsers. You can see my system information here: https://drive.google.com/file/d/1LcS8y5UCcM-xD8KwIVwSheftAq69BPDj/view?usp=sharing
Here's a copy of the Blend File if it can help you reproduce the problem: https://drive.google.com/file/d/1VZ1azon1gOYoDBIFiP5CGC8-UKrmdXCl/view?usp=sharing
I appreciate any help you can offer! Luxcore is so amazing!

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

I realized I wasn't at the most recent stable version of Blender when I'd posted the above, so I upgraded and tested it again but got the same results.

I realized I wasn't at the most recent stable version of Blender when I'd posted the above, so I upgraded and tested it again but got the same results.

I just tried this in Cycles and had the same problem, so it looks like it's a larger Blender problem and probably has nothing to do with LuxCore...

I just tried this in Cycles and had the same problem, so it looks like it's a larger Blender problem and probably has nothing to do with LuxCore...

LuxCore tessellates the hairs/strands with triangles so first thought was that your problem was related to an insufficient tessellation, etc.
However if you can reproduce the same result with Cycles, it must something related to an internal Blender problem.

LuxCore tessellates the hairs/strands with triangles so first thought was that your problem was related to an insufficient tessellation, etc.
However if you can reproduce the same result with Cycles, it must something related to an internal Blender problem.


Counterstrike tweak suggestions

Have any arrest attempts cancel your interaction so it doesn't trivialize the new cop behavior. I don't think you should be able to just brute force your way through objectives even when you're surrounded.
Also, unless there's some unlisted instruction I need to be aware of, the "counter-arrest cop" thing on the Aced variant does not work at all.

Arresting on counter-attack doesn't work yet. I had hoped to make this work a little sooner, but it turns out that it is nearly impossible to arrest a cop through just Lua code without constantly crashing the game. I honestly forgot about it in the meantime.
Canceling the interaction sounds like a neat idea. The problem is that Counter-Strike is already a very niche skill to begin with, and the ability to continue uninterrupted could be considered a "feature", or a reward for putting in those 8 points that you could have spent elsewhere.
I'll think about it some more. I might have it still cancel the interaction if you only have Basic and not Aced. Thanks for your suggestion!


chunked body autests: avoid UUID colision

The ATS via header string contains a UUID which is a set of hex values. Since some of the chunked encoding tests used a chunked body of abc, this would sometimes coincidentally cause a failure when the autest found abc, not from the body, but from the UUID. This avoids that by including non-hex values in the test body.
Fixes #11841

Cherry-picked to v10.0.x


Allow searching for certificates by name via API

Coverage decreased (-0.09%) to 60.435% when pulling 3f10b43254bec0c850322cd84445aad1d3ed14c3 on castrapel:search_by_name into 02554b427a1446cd083a1ebca9cf29cc0a213042 on Netflix:master.


Is anyone keeping this project alive?

Many open PRs and stuck commits since last year

Hi @joaovitoras,
I can't speak for the project broadly any longer as I no longer work for Procore / work on the Blueprinter project — though I believe there are still other core Blueprinter core-contributors at Procore. While I no longer work on the project, hopefully I can provide some context on the silence.
This project was initially built by Procore to support the needs of Procore, and was open-sourced when it was seen that it can provide value to the open-source community at large.
Initially, Procore set aside time for the core developers to build out the project as it was needed internally. Blueprinter reached a point where the initial company needs were met and the developers got moved to other projects and we core maintainers worked on Blueprinter in more of our free time at the company to support the community.
I'm sure there are still those at Procore who would love to see the project get the tender loving care and maintenance / improvements it needs to move these open source contributions along, but I can't speak for them so hopefully someone there can chime in here 😄 Thanks for your patience and understanding.
TL;DR, I no longer work for the sponsoring company (Procore) / on Blueprinter, but know there are several other core maintainers at Procore that would love to see Blueprinter get the love and care it needs (I'm only one of several people who've worked on Blueprinter). However, I know their time is stretched and they are pulled onto other projects currently so I can't speak to their future involvement here. Hoping they can chime in as well and that Blueprinter can get jumpstarted again ❤

@mcclayton - would it be possible for you to discuss with the other maintainers within Procore (if you're still in touch with them) and see if they'd be willing to extend the maintenance of this project beyond procore? There haven't been any responses on gitter or here from them, last I tried.

let's get more maintainer here on board!

It's a nice project that you have here Procore. It could be the number 1 replacement for active model serializers but if it's not actively maintained that's a problem
It'd be great if it could go open source with external maintainers as well

we also used it for part of our app, as a replacement. since it's not maintained anymore, further develop was witha ctive model serializers

I hope Blueprinter continues on, it's been a great resource for me. But I know open source maintenance can be incredibly tricky, especially when development has been sponsored by a company. I wanted to note The Ruby Toolbox lists a few alternatives that may be worth considering for those looking: https://www.ruby-toolbox.com/categories/API_Builders. FWIW I settled on Alba for my project, and I've been quite happy with it.

I would potentially be interested in being part of a team of maintainers :v:

Please keep it alive.

Hi @ritikesh
i also used blueprinter "early" (2019) and even contributed a ~little~ tiny bit with thoughts
i'm supporting your idea of forking and would support any new name that you can come up with and would appreciate the idea of pushing a new one to rubygems.

Thank you @ritikesh -- Feel free to loop me in if you ever need help maintaining -- You can find me on github or my personal website. Cheers!

cool @ritikesh. I hope your initiative can get some traction. I will promote it to use in my projects

The best way to do that is to update the README stating that this gem is not longer going to be supported and linking to the fork. If Procore is not interested anymore in it (which is fair) that little update will be helpful.

@ritikesh we use Blueprinter throughout the RaiseMe codebases (raise.me) as well, would love if your fork can get some traction.  I'm happy to jump on as a maintainer to help move things along as well.

i'm happy to act as a code reviewer on future PRs

Released - https://github.com/blueprinter-ruby/blueprinter/issues/1.

so which one should we use now? 🤷

The fork has had some traction and we've pushed several updates including performance improvements, CI via github actions, support for non-AR objects to name a few. You can checkout the recent changes here and make an informed decision! 😄

so which one should we use now? 🤷

👋 Hey ya'll! My name is Jake, and I'm an engineer at Procore.
First and foremost, I wanted to apologize for the general lack of communication here. Persistent radio silence and an ever-growing list of unreviewed PRs and open issues are not the hallmarks of a well maintained open source project. I know this has caused a lot of frustration for those that are leveraging this functionality, as well as those that have been kind enough to improve and extend it.
Internal maintenance of this project has regretfully fallen off substantially over the past few years (as evident by the age of open issues and PRs). I won't try and justify this, but just know that there was never an intent to completely abandon this project.
With that said, while this comment is many years overdue, we're currently planning to fully revive Blueprinter moving forward. We've been working through plans internally on how to approach this, and we have a group of engineers that are eager to get this project back in well-maintained state.
Initially, we'll be focused on "clean up" work, which will include going through every open PR and issue and touching base with the authors, as well as providing more guidance around contributions and sharing our expectations around maintenance from here on out.
Again, we apologize for letting this project get into this state, but we're looking forward to working with ya'll on this moving forward! Please keep an eye out for updates!

@lessthanjacob maybe join the fork? you know... follow the community.
antiforking isn't great in open source

@lessthanjacob appreciate the transparency and updates. I had created the fork with the below caveat, that I'd happily move/contribute-back all the relevant changes to the upstream, provided Procore changes their mind on the maintenance front. Not having non-procore maintainers is definitely a big negative and makes the project susceptible to similar wilderness in the future.

If the people of Procore change their minds tomorrow - and open up more contributors to the repo / move the library to a community driven organisation, I will move all the active development to that version back.

@krtschmr Thank you for calling that out. As part of the initial work I mentioned above, we also planned on evaluating any forks that have moved ahead (specifically the main fork that's mentioned here that @ritikesh started), and determine if that changes our initial thoughts on how we'd like to handle this project moving forward. In any case, we certainly don't intend to ignore the will of the community here, especially after such a prolonged absence.

@ritikesh Totally agree with your sentiments. We fully intended to open this up for external maintainers moving forward. There's a few tasks that need to be completed before setting that up, but they're already underway.
Regarding the caveat you outlined, while many "tomorrows" have passed since your initial message, we'd be happy to discuss this further and come up with a plan of action. I (personally) would love to coalesce back around this repository given the history, as well as the current usage across many projects, but extending on my above comment, if the community desires to continue development on the fork instead, we wouldn't want to disregard that.
Again, I want to apologize for the lack of engagement from our side of things. We're excited and committed to leaning in and working with ya'll from here on out.

Wanted to provide a quick update here as it's been a few weeks since my last message.
We're about to move this repository into a new organization, which will allow us to setup external reviewers and maintainers. Once that's completed, I'll come back with some more information on that process, so that we can get those roles setup. This should all be happening over the next couple days.

@lessthanjacob thanks for the update. We'll also need to discuss about how we want to merge upstream changes from #blueprinter-ruby/blueprinter to this repo as well.

Wanted to provide a quick update here as it's been a few weeks since my last message.
We're about to move this repository into a new organization, which will allow us to add external reviewers and maintainers. Once that's completed, I'll come back with some more information on that process, so that we can get those roles setup. This should all be happening over the next couple days.

Hey @ritikesh! Apologies for the delay (we ran into a couple obstacles while getting things moved around here). You should have received an invitation to join the @procore-oss/procore-blueprinter team, which will give you the necessary permissions to function as an external maintainer moving forward. For any one else that'd like to become a maintainer/collaborator,  we'll be providing an update in the next week or so that details that process and provides instructions for making that request.
As far as merging the upstream changes from blueprinter-ruby/blueprinter, let's go ahead and open the PR, and we can continue that discussion there!

Thanks @lessthanjacob. I'll work towards creating a PR and also setting up the process on sunsetting the fork.

Hmm, I was just about to pick a serializer, but in the face of recent developments, should I wait for @ritikesh 's fork to be sunset?

@lessthanjacob - PR raised - https://github.com/procore-oss/blueprinter/pull/327/files.

Thanks @lessthanjacob. I'll work towards creating a PR and also setting up the process on sunsetting the fork.

I've merged the fork's changes from #327. The fork no longer serves any purpose and hence has been archived to read-only mode. Please feel free to raise issues / PRs on this repo going forward. 🚀


openai==1.2.3: segmentation fault with async

Confirm this is an issue with the Python library and not an underlying OpenAI API

[X] This is an issue with the Python library

Describe the bug
seg fault when using async and running openai integration tests with the latest version on windows
running this
python -q -X faulthandler test.py

gets this:
ChatCompletion(id='chatcmpl-8JvRae0P4EOZRkIJuGQQMFBQ6lRpf', choices=[Choice(finish_reason='stop', index=0, message=ChatCompletionMessage(content='Hello! How can I assist you today?', role='a
ssistant', function_call=None, tool_calls=None))], created=1699759738, model='gpt-3.5-turbo-0613', object='chat.completion', system_fingerprint=None, usage=CompletionUsage(completion_tokens=
9, prompt_tokens=18, total_tokens=27))
Windows fatal exception: access violation

Current thread 0x000032c8 (most recent call first):
  Garbage-collecting
  File "C:\Users\erik\.pyenv\pyenv-win\versions\3.11.6\Lib\asyncio\proactor_events.py", line 82 in __repr__
  File "C:\Users\erik\.pyenv\pyenv-win\versions\3.11.6\Lib\asyncio\proactor_events.py", line 116 in __del__
Segmentation fault

i updated to 3.11.6 jut to see if that helped... nope
i don't normally have issues with async code, and i have unit tests and code passing fine.   only the openai lib has this issue.
fortunately it only fails at exit, so i can keep on keeping on for now without worrying too much
To Reproduce
using windows pyenv python 3.11.5 or 3.11.6, use the async openai client to make a single chat completion in a pytest test.
it works, but then your program segfaults
all other httpx async/rest/tests all work, even respx live tests, etc.
only when i do the integration test with openai does it fail
Code snippets
example of failure

from openai import AsyncOpenAI
import asyncio

async def x():
    model="gpt-3.5-turbo"
    client = AsyncOpenAI()
    messages = [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user",
            "content": "Hello"
        },
    ]

    response = await client.chat.completions.create(
        model=model,
        messages=messages,
        max_tokens=500
    )

    return response

print(asyncio.run(x()))

### OS

windows

### Python version

3.11.5

### Library version

openai==1.2.3

OK, the workaround is this:
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())

Maybe talk to the https://github.com/projectdiscovery/httpx guys.   But I use httpx all the time on windows and it's typically fine.


"Alexandru Odobescu" is listed in the drop-down menu

Description:
"Alexandru Odobescu" is listed in the drop-down menu alongside its corresponding county and commune, according to the law
Precondition:
The website is up an running.

Step 1
Type "Alexandru Odobescu" in the search bar.

Expected results
The location is listed in the drop-down menu as "Comuna Alexandru Odobescu, CĂLĂRAȘI".


Max level is adept

I have leveled up 3 weapons, Shuriken, Hammer, And rapier, and they all stopped at adept. its a small server with me and my friend. How do i resolve this?

That's an addon mod, but you can change the level cap in the "TinkerToolLeveling.cfg" config.


Support MacOS X (4.1 core)?

It should be possible to support OpenGL 4.1 core for many of the examples (excluding Chapter 10).  This would enable MacOS users to run the examples.

[x]  Chapter 1
[x]  Chapter 2
[x]  Chapter 3
[x]  Chapter 4
[x]  Chapter 5
[x]  Chapter 6
[x]  Chapter 7
[x]  Chapter 8
[x]  Chapter 9

Chapter 1 should now work on OS X (except for the debug example).

All recipes except Chapter 10 and the OIT example in chapter 5 now function under MacOS.


Remove "algebraic data types"

This is incorrect. A tagged union is one way to implement sum types, which is a kind of algebraic data type. However, product types (another common ADT) is not possible in TypeScript.

+1 for more correct documentation. However, TypeScript supports a tuple type. Isn't that a product type?

Tuple types and record types (i.e. objects) are both product types, so I'm not even sure if the pedantry here is correct. ;)

The pedantry is correct because a tagged union is an ADT but not all ADTs are tagged unions. The documentation will be more understandable with concrete descriptions and explanations, not with grand claims about general support. Let me explain with an example.
In Typescript this is a union type:
type Thing =
  | Widget
  | Gadget;

whereas in other languages such as Elm a similar syntax is a sum type. In order to get the effect of sum types with tagged unions, you have to manually specify the tags; in other ML-derived languages the compiler does this for you. (Note that tagged unions and sum types are not really the same thing. https://github.com/Microsoft/TypeScript/issues/186 was opened asking for sum types and closed with the addition of tagged unions, to some users' dismay.)
This is a source of confusion for people coming from other ML-derived languages. I'm trying to make this clearer for people coming from these languages. Saying that TS supports ADT's implies that the compiler handles this for you, but in reality TS has as much support for ADT's as Lisp (yeah you can implement these types with raw lists and macros, but you need to put in a lot more work than you do in Haskell/Elm).
Maybe it would make more sense to describe TS types in the context of ML, and give common alternatives and patterns, rather than just a generalized "TS supports ADTs" claim.


Fix issues found by puppet-lint

joenyland@Joes-MBP ~/Documents/puppet-cloudwatch $ rake lint
manifests/init.pp - WARNING: top-scope variable being used without an explicit namespace on line 23
manifests/init.pp - WARNING: case statement without a default case on line 23

Fixed in 8efb25694e60c5de443a436ed9582969abcdfd1a


Use Epoll datagram channel for DNS resolver group when running on Epoll

Fixes #476.
It also extends DNS options with new :epoll? setting.

Verified that the patch works, thanks!

@ztellman Quick update for the PR: getting rid of unnecessary event loop specification for the DNS resolver builder (instance of the appropriate event loop will be setup by the group internally).


<IP_ADDRESS>/10 private/shared range

carrier-grade NAT shared space RFC 6598

Well, actually that was a fix for Windows Wi-Fi AP. It won't use CGN range for NAT.


Split validation classes into multiple files

This change splits the validation class implementation into separate source files.
Previously all of the validation types were implemented in the source/validate_types.cpp file and defined in the source/validate.h header.
This change moves all of the types associated with the validation into the source/val directory. The validate_[cfg,id,instruction,layout,ssa].cpp and validate.cpp files are still located in the source folder. I would leave it up to you guys to decide the location of these files.
This PR does not add or remove any logic from the validator. Its purely a refactoring change.
This change was inspired by the work in #219.

Rebased against master

-1 Please change the #include with angle brackets to local files back to #include with quotes.
Also normally you should keep a "moving files around" PR to just doing that.  Then do logic changes like the Function::get_current_block() change and renames (like CFConstruct to Construct) to a different PR.
This time around I saw the get_current_block change in the first commit, separately.

Sorry about that. I will keep that in mind for future PR.
I have made the suggested changes in the latest commit. Are you ok with the directory structure described in the descriptions?

Ok, I squashed these into two commits and pushed onto master as 90a4252aae7


Problems with mailadress parsing

Example Email-header:
"Foo <bar"<EMAIL_ADDRESS>Description:
The example email-header should be valid according to https://tools.ietf.org/html/rfc2822#section-3.4 but the function AdressList.php/addFromString matches it incorrect. The result has the following form:
"bar<EMAIL_ADDRESS>This is clearly not a valid adress and therefore causes exceptions in the following code
Solution:
Changing the regex in the addFromString function from lazzy to greedy by removing "?" from the named capture group "name"

old: ^((?P.*?)<(?P[^>]+)>|(?P.+))$
new: ^((?P.*)<(?P[^>]+)>|(?P.+))$

@Baztey created PR based on your comments, including tests:
https://github.com/zendframework/zend-mail/pull/143
however, it needs more fixes, because encoding back creates invalid result.
btw, your bugreport here has lost <>, use markdown code blocks to preserve them.


Privacy issues,!

Why is the app sending user draw history to the app developer?!
Why is the app sending what i draw to the app developer?!

1j01 instead of adding a question label,  just answer it! Why the your app (jspaint.app) sending what user paint to you?!

As far as I remember, it use firebase to store your history, it's used to restore your progress and organize online collaboration sessions.

So, this app has no privacy at all.

@q10123p, i just checked default session, and it actually has no request which sends any your drawings to dev.
When you open new session it starts in local mode, and nothing goes beyond your browser which is somehow can compromise you.
It stores data in local storage:

Spoiler

Only in public session here's web socket connection to firebase:

Spoiler

Also here's disclaimer that all multi-user sessions are public. Your issue seems unreasonable, or you get scummed by app clone(?)
@1j01 here's only one thing i noticed, every draw app re-requests tool icon:

Spoiler

I guess I'll open new issue about that, if there are none yet?

https://jspaint.app doesn't send any information to a server (or "to the app developer") by default.
There are a few features which do talk to a server:

File > Upload to Imgur (naturally)
If you paste an image URL, the app will fetch the image via the URL, or if that doesn't work, fetch via a CORS Anywhere proxy service, or if that doesn't work, attempt to fetch via the Internet Archive Wayback Machine.
(In Speech Recognition mode, if you say "draw a cat", it will do an anonymous Bing Images search for "cat" clipart.)
Multi-User mode, intended for online collaboration. You should see a disclaimer dialog letting you know that it's a public session.

If the URL starts with https://jspaint.app/#local:, it's a local session, private to you. You can view all local sessions with File > Manage Storage.
If the URL starts with https://jspaint.app/#session:, it's a multi-user session. Multi-user sessions are currently entirely public. (That is, there's no support for private online collaborative sessions yet.)
If the URL doesn't start with https://jspaint.app/, it's an unofficial instance, and may have invasive advertisements and trackers.
If you got linked to the app via a multi-user session URL, this may be confusing, and I'm sure I could do something better to handle that case, like explaining in the disclaimer dialog how to switch to a private local session.

I guess I'll open new issue about that, if there are none yet?

@Zekfad Please do. These icon requests are for the Document History view (Extras > History), but it shouldn't be making requests on every brush stroke!

Thank you all for your fruitful interaction with my issue.
I am not a developer, iam just a normal user for applications.
What made the issue is this:
I use samsung Dex now (was using windows 10) and win i installed a wifi controller app from google playstore the app tells me that (jspaint.app) is sending data to servers! So i post this issue we are solving now.
According to what i read from you, the app (jspaint.app) is some how must be online to be useful, so i tried to paint on it while iam offline and it works!
What i did is i added it as a webapp to my Dex home screen then turned off the wifi and it paint and also saved my paint to myfiles app as normal! Then when i reopened it again it doesn't work and ask for wifi connection.
The app also asked for to read my clipboard promotion and i gave it! Is this another privacy issue?!
Why iam so concerned about privacy so much in this app (jspaint.app) because i paint my ideas..! before when i was using ms paint it was so easy, but when i turned to Dex there is no similar app to ms paint in the google playstore what so ever. So i was happy to find this app (jspaint.app) but now I'm concerned about my privacy!
Now is there's away to made for me a native android app from (jspaint.app) that works completely offline and out of firebase with ms paint user interface if Possible? (I will bay you for this).Please check my profile for contact info.
Thank you all again.

Thank you all.

Closing in favor of:

https://github.com/1j01/jspaint/issues/189 - Errant icon requests
https://github.com/1j01/jspaint/issues/214 - Privacy Policy
https://github.com/1j01/jspaint/issues/215 - Clarify how to get out of multiuser session


Does livereload auto listen for changes?

I'm using this plugin with grunt watch and it works great. When I change a file that my grunt watch is watching it will cause the page to be reloaded successfully.
But I noticed that because you declare livereload to watch a directory and if you console out the server variable that it's in fact looking for a bunch of different files by default...
var livereload = require('livereload');
var server = livereload.createServer();
server.watch(__dirname);

console.log(server);

So does this mean that the plugin should automatically causing a reload if files are changed in the specified directory? As for me this isn't the case, it only fires via the grunt watch module. So if I edit a HTML file or CSS file, nothing happens...

Ah, it's because I do CTRL+C to call the grunt watch... which seems to cause the livereload module to no longer listen but weirdly still work for grunt watch???

After testing this some more, it does in fact work but if I call grunt watch it breaks livereload listening to files but the grunt watch reload continues to work... Which seems really weird!

This can be solved by using tiny-lr and then handling ALL the watching via grunt watch.


⚠ HDBits has degraded performance

In d652a49, HDBits ($HDB) experienced degraded performance:

HTTP code: 200
Response time: 3293 ms

Resolved: HDBits performance has improved in 1010adb after 6 minutes.


Use intermediate hidapi.c to force C compiler call

This allows to switch to upstream libusb/hidapi

Download:
Environment: QT=5.12, ARCH=64, PYTHON_PATH=C:\Python35-x64
installer/trik-studio-installer-master-x86_64-auto.zip
installer/trik-studio-installer-master-x86_64.exe
trik-studio-master_qt5.12_x86_64.zip
Environment: QT=5.12, ARCH=32, PYTHON_PATH=C:\Python35
installer/trik-studio-installer-master-i686-auto.zip
installer/trik-studio-installer-master-i686.exe
trik-studio-master_qt5.12_i686.zip