Improvement Suggestion for predictor_proba Function in sklearn.py

Hello,
I've been exploring the predictor_proba function defined in sklearn.py at this location and I have some suggestions to improve its functionality and usability.

Clarify the Function's Docstring: The current docstring mentions a parameter num_targets which is not present in the function signature. It might be beneficial for future users if the documentation accurately reflects the function's parameters and intended use.
Handling Multi-class Predictions: For models that predict probabilities across multiple classes, flattening the output might not always be desirable. It could be more useful to return the original array structure to preserve the relationship between classes and probabilities.
Error Handling for predict_proba Method: Not all Scikit-Learn estimators have a predict_proba method. Adding a check to ensure that the estimator passed to predictor_proba supports this method could prevent runtime errors and improve user experience.

& 3) are no brainers IMOs, thanks for pointing out those improvements. PRs welcome.

is an interesting point. There are a few considerations around return types needing to be the same for Postgres functions with the same name, but we are starting to accumulate function variants for features like this. It might be worth it to add pgml.predict_proba_multi or some other appropriately named function to provide an more appropriately structured return type.


Add support for importing elasticstack_elasticsearch_cluster_settings

Is there a provision to import the existing cluster settings to the Terraform state ?
The 'import' section is missing here - https://registry.terraform.io/providers/elastic/elasticstack/latest/docs/resources/elasticsearch_cluster_settings#import

@sameer-samant-sp importing cluster settings isn't supported with the current provider SDK. We may be able to revisit this when the provider is migrated to Terraform plugin framework (https://github.com/elastic/terraform-provider-elasticstack/issues/214)


CFP: Move away from early-cycle RCs in favor of snapshot releases

During recent release cycles, Cilium has gone through a process of releasing monthly snapshots of the tree as vX.Y.0-rcN. These snapshots have been useful as regular targets for developers to focus on in order to ship features, but at the same time they have also raised some questions in the community:

Given that the format is vX.Y.0-rcN, this format does not follow SemVer v2. Some tooling expects the form vX.Y.Z-rc.N instead, and can better handle the number ordering if we follow SemVer v2.
Most related projects do not consider any monthly snapshot of the main branch as a "release candidate", so it can be confusing for users to understand how close the release is when each month brings a new release candidate with various brand new features.

I'd like to propose moving to a scheme like vX.Y.0-snapshot.N for each monthly release, then once we reach close to feature freeze, we can begin tagging release candidates. We can continue to encourage users to download and try out snapshot releases in order to provide early feedback on new features.
The primary blocker for this effort is to update the contrib/ release scripting to support the new version format. I can take on that effort as part of preparing the February snapshot release.

Thanks for writing this down, I'm all in favor of moving to SemVer v2 as this will alleviate the problem, notably with Go, that v1.0.0-beta1 < v1.0.0-beta10 < v1.0.0-beta2 as opposed to v1.0.0-beta.1 < v1.0.0-beta.2 < v1.0.0-beta.10 :tada:
Something to consider however: the vX.Y.0-rc.N scheme is technically not SemVer v2 compatible in the sense the that the v prefix should be omitted (see here). However, Go modules expect versions with a v prefix (see here).

I'd like to propose moving to a scheme like vX.Y.0-snapshot.N for each monthly release, then once we reach close to feature freeze, we can begin tagging release candidates.

Is there a particular reason to use the term snapshot instead of the more standardized alpha < beta < rc for pre-release versions?

Something to consider however: the vX.Y.0-rc.N scheme is technically not SemVer v2 compatible in the sense the that the v prefix should be omitted (see here). However, Go modules expect versions with a v prefix (see here).

As it turns out we are already tagging every release with two tags: One with the v prefix and one without. The official version from VERSION file at the top of the repo already omits the prefix so that version should follow Semver v2. If you find any other places where we need to include or omit the prefix, then please raise them or file a PR to improve the way these versions interact with other tooling.

Is there a particular reason to use the term snapshot instead of the more standardized alpha < beta < rc for pre-release versions?

So far we've followed a model where the main branch is always releasable, hence our prior approach to labeling RCs at arbitrary points during development. For specific features we may determine the stability and document those features as beta / stable / etc, but we don't make any such classification for the overall release. Discussing with some folks, I heard opinions that labeling the snapshots as a "beta" implies in some way that the core functionality is somehow less stable than the RCs or full releases, but that's not really the case. The idea with the -snapshot naming is to avoid some of those preconceptions.

We've moved towards snapshots and successfully published them for the first two months of v1.14 development. Closing this issue.


iss #197: make homepage fancier

Looks like this now:

Is having the google button a requirement? It's kind of ugly, heh.

No. I was just trying to think up ways to please the overlords lol. We can do a style pass later

+1 thanks and LGTM 😄  another small thought: what do you folks think of moving this template and route from /accounts/login to simply / or /index since it's now more of a bona fide home page?


notification and payload

hello, i have a problem with how to replace notification and payload.
i have tried many combinations but i don't know how to replace them.
this is the actual module config:
{
        		module: 'MMM-AlexaControl',
        		notifications: [
			    {
			        name: 'MMM-NowPlayingOnSpotify',
			        port: 11001,
			        OnOff: true,
			        notification: [["NOTIFICATION ON",{ action: "SHOW", module: "MMM-NowPlayingOnSpotify" }],["NOTIFICATION OFF",{ action: "HIDE", module: "MMM-NowPlayingOnSpotify" }]]
			    }
		],
			position: 'middle_center',
        		config:{
            			image:
   			        pm2ProcessName: "mm",
            			vcgencmd: true
			}
		},

ok , so the mirror works ,but alexa is only finding pm2 processes ,mirror refresh and monitor power, but can't find the module to turn it on and off, for example i want to control MMM-NowPlayingOnSpotify module.
The name ,port and OnOff seems to be ok ,but the notification is the problem i think.
I changed the NOTIFICATION and PAYLOAD as i thinked.
Can you explain me how to change them?
notification: [["NOTIFICATION ON", "PAYLOAD"],["NOTIFICATION OFF", "PAYLOAD"]]
To be more explicied ,this part.

Hi, first you need to put the notifications array inside the config, too. Then you have to change the port because on this port is one of the configured devices. You should take 11100. I think you want to send the notification to MMM-RemoteControl ? The payloads are right but you have to edit also the notifications. I mean with NOTIFICATION ON and NOTIFICATION OFF the different notifications. You have to change both to REMOTE_ACTION so the MMM-RemoteControl module get the notifications. Here is the edit config:
{
        module: 'MMM-AlexaControl',
	position: 'middle_center',
        config:{
            	image: true,
   	        pm2ProcessName: "mm",
            	vcgencmd: true,
                notifications: [
	               {
			     name: 'MMM-NowPlayingOnSpotify',
			     port: 11101,
			     OnOff: true,
			     notification: [["REMOTE_ACTION",{ action: "SHOW", module: "MMM-NowPlayingOnSpotify" }],["REMOTE_ACTION",{ action: "HIDE", module: "MMM-NowPlayingOnSpotify" }]]
		      }
		],
	}
},

In addition you should configure the option image. I change it to true but if you don't want the image you can change it to false.
Do you really want to name the device MMM-NowPlayingOnSpotify because it's really long to say?
I hope it works and I will add a better explanation in the next days.

First time ,I put the notifications in the config part ,and the magic mirror will say the config file is corrupted and it will indicate me the "notifications" part as it doesn't have to be there .

Have you test my edit config because it must be inside the config part? I think either you forgot a comma or the image option wasn't configured.

I will try it soon as I will have my RPI on my hands. I will tell you if it works or not

ok , with the spotify module ,it works somehow , but only with this , i copied tje same code for another modules , and only changed the name ,but alexa can't find them

You have to change the port also because every devices need another port. So you have use the port 11100 for Spotify. For the next module you should use 11101 and then for the next 11102.


Question: markers link like this http://www.geocodezip.com/v3_MW_example_map2.html ?

I am currently working on one application (using this package) where I need to implement markers link like this
http://www.geocodezip.com/v3_MW_example_map2.html
Any comments/suggestions ?

Not sure what exactly you're asking. Seems like a pretty basic map with info windows. Did you check out our Getting Started guide?

I am looking to make external markers link.
Map
`
<sebm-google-map
[latitude]="optModel.cen.lat"
[longitude]="optModel.cen.lng"
[zoom]="optModel.zoom.current"
[maxZoom] = "optModel.zoom.max"
[minZoom] = "optModel.zoom.min"
(zoomChange)="zoomChange($event)"
(centerChange)="centerChange({coor : $event})"
[disableDefaultUI]="false"
[zoomControl] = "true">
<sebm-google-map-marker
*ngFor="let m of markers; let i = index"
[latitude]="m.lat"
(markerClick)="makersHighlight()"
[longitude]="m.lng">
        <sebm-google-map-info-window>
            {{m.name}}

            Delete me
        </sebm-google-map-info-window>
    </sebm-google-map-marker>

</sebm-google-map>

`
Markers list (links)

{{m.name}}

How can I connect markers list to their respective marker on the map?

I am looking to make external markers link
 <sebm-google-map
            [latitude]="optModel.cen.lat"
            [longitude]="optModel.cen.lng"
            [zoom]="optModel.zoom.current"
            [maxZoom] = "optModel.zoom.max"
            [minZoom] = "optModel.zoom.min"
            (zoomChange)="zoomChange($event)"
            (centerChange)="centerChange({coor : $event})"
            [disableDefaultUI]="false"
            [zoomControl] = "true">

        <sebm-google-map-marker
                *ngFor="let m of markers; let i = index"
                [latitude]="m.lat"
                (markerClick)="makersHighlight()"
                [longitude]="m.lng">

            <sebm-google-map-info-window>
                {{m.name}}

                Delete me
            </sebm-google-map-info-window>
        </sebm-google-map-marker>

    </sebm-google-map>

Markers List

    {{m.title}}

How can I make  a link between the markers list and their respective marker on the map?
I think I need to use these google API methods in the zone but not sure how to do that?
 marker.addListener('click', function() {
            infowindow.open(this.map, marker);
        });

myclick(i:any) {
        console.log(i);
       google.maps.event.trigger(this.gmarkers[0], "click");
    }

@AsifAmin I did it by putting a property on the marker showInfoWindow then modify like so:
    <sebm-google-map-marker
                *ngFor="let m of markers; let i = index"
                [latitude]="m.lat"
                (markerClick)="makersHighlight()"
                [longitude]="m.lng">

            <sebm-google-map-info-window [open]="m.showInfoWindow">
                {{m.name}}

                Delete me
            </sebm-google-map-info-window>
        </sebm-google-map-marker>

    {{m.title}}


Git presentation rework

The front facing part of this project's GitHub is lacking. It can improved in the following ways:
A comprehensive readme file including:

Project description
Link to tutorials/documentation
Instructions on how to contribute

Additionally, a new name for the project need to be thought.

Rebaptized the project as FluxLumina

Added an initial version of the readme.md file. Information regarding documentation still needs to be added in the future
Closing this for now until more substantial changes are needed

Added an initial version of the readme.md file. Information regarding documentation still needs to be added in the future
Closing this for now until more substantial changes are needed


AttributeError: module 'six.moves' has no attribute 'collections_abc'

I'm trying to parse the updated google doc but I'm seeing the following error when I run gdoc_parser.py
(base) RSMCP01:c3s_434_ecde_page_text clp73$ python code/gdoc_parser.py Traceback (most recent call last):   File "code/gdoc_parser.py", line 165, in <module>     parse_google_spreadsheet()   File "code/gdoc_parser.py", line 141, in parse_google_spreadsheet     service = discovery.build('sheets', 'v4', http=http, discoveryServiceUrl=discoveryUrl)   File "/Users/clp73/anaconda3/lib/python3.7/site-packages/googleapiclient/_helpers.py", line 134, in positional_wrapper     return wrapped(*args, **kwargs)   File "/Users/clp73/anaconda3/lib/python3.7/site-packages/googleapiclient/discovery.py", line 288, in build     adc_key_path=adc_key_path,   File "/Users/clp73/anaconda3/lib/python3.7/site-packages/googleapiclient/_helpers.py", line 134, in positional_wrapper     return wrapped(*args, **kwargs)   File "/Users/clp73/anaconda3/lib/python3.7/site-packages/googleapiclient/discovery.py", line 466, in build_from_document     if isinstance(client_options, six.moves.collections_abc.Mapping): AttributeError: module 'six.moves' has no attribute 'collections_abc'

So I did
pip install -U -r requirements.txt  to update the requirements.
And ran the gdoc_parser again but got an error telling me that the google-api-python-client was using an incompatible version of six.
So I updated six with pip install -U six
And now I can run gdoc_parser without complaint.


KeyError: 'car_birdview'

Traceback (most recent call last):
File "/usr/local/bin/wc-cli", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.8/site-packages/weconnect_cli/weconnect_cli.py", line 185, in main
weConnect.update(updateCapabilities=(not args.noCapabilities), updatePictures=(not args.noPictures))
File "/usr/local/lib/python3.8/site-packages/weconnect/weconnect.py", line 419, in update
self.updateVehicles(updateCapabilities=updateCapabilities, updatePictures=updatePictures, force=force)
File "/usr/local/lib/python3.8/site-packages/weconnect/weconnect.py", line 457, in updateVehicles
vehicle = Vehicle(weConnect=self, vin=vin, parent=self.__vehicles, fromDict=vehicleDict,
File "/usr/local/lib/python3.8/site-packages/weconnect/elements/vehicle.py", line 67, in init
self.update(fromDict, updateCapabilities=updateCapabilities, updatePictures=updatePictures)
File "/usr/local/lib/python3.8/site-packages/weconnect/elements/vehicle.py", line 167, in update
self.updatePictures()
File "/usr/local/lib/python3.8/site-packages/weconnect/elements/vehicle.py", line 389, in updatePictures
self.updateStatusPicture()
File "/usr/local/lib/python3.8/site-packages/weconnect/elements/vehicle.py", line 392, in updateStatusPicture
img = self.__carImages['car_birdview']
KeyError: 'car_birdview'

I will investigate that as soon as possible. As a work-around you may want to check the parameter --no-pictures

Works, thanks! Do not need pictures, anyway.

Yea, I think this is true for most. I might turn the option around to opt-in for pictures. Will save some requests.

Should be fixed in 0.13.2 that I just released.


git-remote-hg has python import problem

Describe the bug
git-remote-hg depends on mercurial, which depends on python. Executing git-remote-hg shows that certain modules are imported incorrectly.
To Reproduce
$ nix-env -iA nixos.gitAndTools.git-remote-hg
$ git clone "hg::~/foo"
Klone nach 'foo' ...
Traceback (most recent call last):
  File "/nix/store/pcwk49av5fkrsbv6hghnxp6bjr6zfhpa-git-remote-hg-1.0.1/bin/.git-remote-hg-wrapped", line 16, in <module>
    from mercurial import hg, ui, bookmarks, context, encoding
  File "/nix/store/l6k31xsm4w68zb9ff0m0l9ybc7miml2q-mercurial-5.3/lib/python3.7/site-packages/mercurial/hg.py", line 16, in <module>
    from .i18n import _
  File "/nix/store/l6k31xsm4w68zb9ff0m0l9ybc7miml2q-mercurial-5.3/lib/python3.7/site-packages/mercurial/i18n.py", line 15, in <module>
    from .pycompat import getattr
  File "/nix/store/l6k31xsm4w68zb9ff0m0l9ybc7miml2q-mercurial-5.3/lib/python3.7/site-packages/mercurial/pycompat.py", line 38, in <module>
    from .thirdparty.concurrent import futures
ImportError: No module named concurrent

Cloning the same repository directly with hg works fine.
Metadata

system: "x86_64-linux"
host os: Linux 5.4.25, NixOS, 20.09pre217446.ddf87fb1baf (Nightingale)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.3.3
channels(root): "musnix, nixos-20.09pre217446.ddf87fb1baf"
channels(turion): "home-manager, nixos-19.03-19.03.173691.34c7eb7545d, nixos-unstable-newer-20.09pre217446.ddf87fb1baf"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

This is still relevant.

Tested recently, seems to work again for some reason.


Fix indentation and add status=="Approved" to event filter

Also disabled a unit test that check scoreboard content, given that now
scoreboard is filtered to countries with at least 1 event and without events inserted in the testdb is blank

Commands used to fix indentation:
# replace tabs with 4 spaces
find . -name '*.py' -exec sed -i 's/\t/    /g' {} \;
# remove trailing backspaces
find . -name '*.py' -exec sed -i 's/ *$//g' {} \;

ping @mitio

#421

@michelesr I think this sed pattern can potentially do harm to some files as it replaces tabs in any place in the line, not only at the start. Maybe we should instead anchor it to the beginning of the line?
Also, how about we add \t to the one for removing trailing spaces as well? Might have some trailing tabs here and there.
Another point--why didn't you separate the whitespace changes from the other ones? I think it's a better idea (by using feature branches).
Are you going to change the patterns or should I do the replacement?

@michelesr I think this sed pattern can potentially do harm to some files as it replaces tabs in any place in the line, not only at the start. Maybe we should instead anchor it to the beginning of the line?

Appending the regex for the beginning of the line will not remove multiple tab i guess, and even if you use the + wildcard you can't know how many spaces to apply ...

Also, how about we add \t to the one for removing trailing spaces as well? Might have some trailing tabs here and there.

If the command to replace tabs with spaces is performed well, than tabs are replaced with spaces and trailing spaces are removed with the next command

Another point--why didn't you separate the whitespace changes from the other ones? I think it's a better idea (by using feature branches).

That's a good point, i was thinking to split in two commits (one for the indentation, and one for the filter hotfix)

@mitio: if you got idea for sed pattern post here and i'll give a check

@michelesr I think this sed pattern can potentially do harm to some files as it replaces tabs in any place in the line, not only at the start. Maybe we should instead anchor it to the beginning of the line?
Appending the regex for the beginning of the line will not remove multiple tab i guess, and even if you use the + wildcard you can't know how many spaces to apply ...

Agreed about the count of replacements.
How about we use autopep8 or this script instead?

Also, how about we add \t to the one for removing trailing spaces as well? Might have some trailing tabs here and there.
If the command to replace tabs with spaces is performed well, then tabs are replaced with spaces and trailing spaces are removed with the next command

If we're removing only indentation spaces, tabs can still be left at the end of the line.

Ok... then let's try with the autopep8 and remotion of trailing spaces and tabs.
Working on it.

Closing this PR... i'll make another with cleaner commits

:+1:


Add Comick.fun source

Checklist:

[ ] Updated source's version for individual source changes
[ ] Updated all sources' versions for template changes
[x] Set appropriate nsfw value
[x] Did not change id even if a source's name or language were changed
[x] Tested the modifications by running it on the simulator or a test device

j

I don't really understand filtering by a single translation group, especially when it's not done on the API side.

As it simple to view all single chapters and the user may have preferred choices

I don't really understand filtering by a single translation group, especially when it's not done on the API side.

As it simple to view all single chapters from one group and the user may have preferred choices

Users may forget that they've set a preferred scanlator and wonder why their manga have no chapters though. I think it's better to leave the job of filtering scanlators to Aidoku to implement in the future.

I don't really understand filtering by a single translation group, especially when it's not done on the API side.

As it simple to view all single chapters from one group and the user may have preferred choices

Users may forget that they've set a preferred scanlator and wonder why their manga have no chapters though. I think it's better to leave the job of filtering scanlators to Aidoku to implement in the future.

Ok,
Removed filtering scanlation group

Any update on this ?

replaced by #143


Increase the max allowed size for grpc messages in python client

@tanmayv25  Was there a related issue for this? Make sure to reference and close it.


Fix build errors on Windows when making Unicode builds

Description
Fixes build errors on windows when using the Unicode Character Set (which any serious project should be using these days). Practically this means that TCHAR is defined as a WCHAR, which is a 16-bit integral type. A TCHAR[] is encoded as UTF-16. There are a few places in the source code which assume a TCHAR is equal to a char (or alternatively, a TCHAR* can be converted to a std::string, this assumption is false.
Since the rest of the OpenImageIO project assumes strings are encoded using UTF-8 (?), I have removed the dependency on the <tchar.h> and any calls to win32 API functions explicitly use the wide versions (with the W suffix). The input / result is converted immediately before / after the API call (an approach inspired by http://utf8everywhere.org/)
Also simd.h depends on missing_math.h for the roundf function.
Note: on MSVC 2013 and older, snprintf is named _snprintf, I'm not sure what your preference is to deal with that.
Tests
I think these changes are covered by existing tests, if any.

I'm not sure why this didn't get properly reviewed long ago. Apologies. It actually looks like all positive changes to me. I will rebase myself and test, and if it all seems to work and passes CI, I'll merge it.

Looks good, passes tests, merging.
I'm going to merge it directly from my tree, since I had to make some minor edits when I rebased. I wish that GitHub had more choices for how to close a ticket: "Close ticket, this has been merged separately" would be helpful here, so it doesn't look the same as a rejected or abandoned PR.
Apologies again for letting this sit around for so long.

Hi, no problem.
I noticed _snprintf is not a direct replacement for snprintf — it will not null-terminate the string if truncation occurs. This is something to watch out for if it it ever used for arbitrary length strings.

Can you think of any reason why we should still use _snprintf at all, instead of std::snprintf which by being part of C++11 (our minimum requirement these days) is expected to work on all platforms?

I think Visual Studio 2013 doesn’t have snprintf.

Ah, but now I'm confused about our minimum requirements. The INSTALL.md file says we support VS 2013, but platform.h sure looks like we would not currently build with anything less than VS2015.
Also this MSDN page seems to indicate that VS2013 doesn't understand constexpr, among other C++ features we use liberally through the code nowadays.
So I think maybe INSTALL.md is wrong, and we're actually VS2015 minimum and have been for a while.
What do you think?

I didn't look in detail, just checked INSTALL.md for system requirements. It looks like VS2015 is required so you can leave it out and just use snprintf.


Support github pulls within Conda

In some cases, code that needs to be used comes from a Github repository and not a full package.
Pip, for example, allows code to be pulled directly from a Github repository. A feature similar to this would be nice with the conda decorator; in other words, the ability to point to code/package/something in a specific github. See also #170  for more context.

Conda installs from a binary (tarball) and not source (unlike pip), so unless the GitHub repo also contains a release binary we can't use conda for dependency installation.


Unittest crash on macOS 10.14

The azure pipeline on macOS crashed running the unit tests:
https://dev.azure.com/DLR-SC/tigl/_build/results?buildId=120&view=logs&j=5b08ef7f-a1c3-507b-61aa-990725944352&t=17da43bf-c8b7-5525-58dd-721403c11888&l=385
I could reproduce this error in an macOS 10.14 VM. The error seems to come from the exception handling machanism and is similar to the following issue:
https://github.com/lastpass/lastpass-cli/issues/447
Somehow, some object is beeing freed in a wrong way during stack unwinding.
A minimal example is required to completely understand the origin of this issue, but I suspect the origin to be in OCCT.

Rebuilding oce / occt on macOS 10.14 with the native compilers fixes this problem, but this is not a true solution for our problem. I am trying to figure out, what the actual problem is.

This issue seems to come from mixing different compilers.
A good solution is to simply switch to the macOS 10.13 image in the azure builds.


Some notes and questions on Prolly Trees

Heya, great work!
We had been looking for a deterministic hash linked b-tree for some time. Since we hadn’t found your work until recently we did a bunch of our own research and arrived at an almost identical solution. As such, there’s a few notes I should probably share with you.
The first, and probably the most important, is that using a rolling hash as the primary way of finding chunk boundaries is less than ideal and introduces unnecessary inefficiencies. We also started with a rolling hash, the original thought process for the trees was to treat it “like a chunking problem” and therefor apply a rabin chunker to it. But we quickly realized that there was a better method.
If you simply take the entire entry (key and value) and hash them you have a deterministic and securely randomized binary.  Unlike a rolling hash it won’t be effected by changes to entries near it. The math for causing a split is easy, and probably identical to what you are already doing, you just divide MAX_INTEGER by the target size of the chunks.
The more consistent the chunk boundaries the less chunk merges you’ll encounter when mutating the tree, so a fully deterministic hash function is preferable.
Now, we’re working on some use cases that have very different trust relationships than you do, so we’re actually worried about a potential attack on the tree that would aggressively blow up the block size, but we’re looking to solve that with a secondary rolling hash with a linearly closing window that is only applied to the back of a chunk after it reaches a certain size.
The next thing I should share is something I realized while implementing the trees. Mutations occur more often in the top of the tree, with an increasing probability from the leaves to the root where it reaches a 100% likelihood of mutation on any given change.
Since you have to mutate trees from the leaves on up you can actually adjust the branching factor as you work your way up the tree as you build it. You don’t have to use the same branching factor for leaves and branches, you can make the leaves rather large and then adjust the branching as you work your way up the tree until you hit a cutoff point. This lets you reduce the size of the branches towards the top of the tree which brings down the size of the blocks you orphan as you mutate the tree.
Finally, I’ve actually implemented a SQL database with about 40% of the total SQL grammar. Reading your docs I was left with a few unanswered questions:
Why do you require a primary key? You can implement a table without primary keys as a sparse array, which can be done easily with the ordered map you already have by just using integer keys. I bring this up because there are some amazing optimizations you can do when appending to a traditional table. If you have a large batch of inserts you can actually partition the batch and create trees concurrently, then stitch then together with a modest amount of computation, but this use case is somewhat off limits when you only support tables with a primary key.
What do your transaction data structures look like? I couldn’t find any docs on this particular point. I ask because I recently re-designed how these work in IPSQL (here’s a very new and incomplete doc on how they work). We’ve run into a lot of problems in other projects as we layer replication operations over large graphs. Someone has to do the traversal work and even if you have a graph you’re comparing against in order to produce a delta the work required to generate a delta can be quite large. This is especially a problem in databases because every mutation is going to hit the leaf of nearly every tree, which means generating a delta is always going to be a full depth traversal (with the required round trips) so even if you do it concurrently you’re going to have to eat the latency. I started to think it would be nice if the transactions could actually represent the traversal work so that anyone who had a transaction wouldn’t need to do it again.
My solution (SQL proofs) make every transaction (read AND write) generate a data structure that describes the blocks that were required for read and write. Re-using the same trees you’re already quite familiar with we can create a Set() for the block addresses. These Sets can be compared against each other much much faster than a traversal over the database graph and you can easily commute them together or generate new ones to describe cache states. This provides much faster deltas between states with limited traversal and potentially zero IO because you can serialize a set and send it between nodes. You can also put the deltas themselves in a set and serialize them around, in fact the writes in every transaction already are the representation of a delta.

Also, I forgot to ask, why SHA2-512 instead of SHA2-256 if you’re truncating the hashes?

I'll answer your questions but... dude I pitched prolly trees incessantly the entire time I was at PL with you.

And certainly many many other people at protocol labs were very familiar with prolly trees.

@aboodman dude, how did i never hear about this!!! I’ve been asking for a hash linked b-tree for 2 years, I even searched through academic papers. I even got questions from people in PL over this time like “wish i had a b-tree” and for the last 4 months I’ve been showing slides to people about how these work and nobody mentioned prolly trees.
I wouldn’t even know about them if @ribasushi hadn’t randomly found a link to doltdb in a hacker news thread.

Dunno :). Ask any of {Juan, why, stebalien, david the researcher guy (sorry can't remember last name)...} why they didn't tell you.
Or consult this presentation https://docs.google.com/presentation/d/18zRxxI7plB0mJkhLPfo8KJ_f-tyIIPj9L4dZroyqEF0/edit?usp=sharing that I recorded and distributed while I was there.

I mean, it's not a mystery why people at PL don't remember.

If you simply take the entire entry (key and value) and hash them you have a deterministic and securely randomized binary.

This assumes good distribution of input data. For a pathological case consider a sequence of zeroes - this would likely never hash by simply taking the cryptographic hash of the last item. The idea of the rolling hash is to decrease the chance of pathological cases (though they are still possible). We weren't concerned with malicious input, just expected input that got unlucky.

Now, we’re working on some use cases that have very different trust relationships than you do, so we’re actually worried about a potential attack on the tree that would aggressively blow up the block size, but we’re looking to solve that with a secondary rolling hash with a linearly closing window that is only applied to the back of a chunk after it reaches a certain size.

We looked into this but it got super complex to reason about whether the algorithm was deterministic. It would be interesting to think through the threat model for something like a blockchain, I wish I'd had the chance to do that.

The next thing I should share is something I realized while implementing the trees. Mutations occur more often in the top of the tree, with an increasing probability from the leaves to the root where it reaches a 100% likelihood of mutation on any given change.

This is a good point. I guess the purpose would be to reduce write amplification? Typically in database systems there is a balancing act of reducing both iops and write amplification. In Noms, we picked a chunk size that was close to the block size of common hardware we wanted to run on, so reducing chunk size at upper levels of tree would not have an effect on real write amplification, but would increase iops, so I'm not sure it's a win. But interesting idea. (Also in practice most implementations keep the top two levels of the tree in memory).

Why do you require a primary key?

I don't understand this question. Noms only exposes data structures like maps, sets and lists. It doesn't have a notion of a table. Maybe you are thinking of Dolt?

If you have a large batch of inserts you can actually partition the batch and create trees concurrently, then stitch then together with a modest amount of computation, but this use case is somewhat off limits when you only support tables with a primary key.

Noms includes some of these optimizations, Dolt has some other ones. I agree there are so many fun opportunities. Check out NewStreamingMap, GraphBuilder, etc in this repo. Dolt also recently did a blog post about optimizations to unordered insertions they have one. There's github issues in this repo with early experiments we did to parallelize tree construction and splice subtrees together.

hat do your transaction data structures look like?

Yeah, never documented that, sorry. Pretty much like git:
https://github.com/attic-labs/noms/blob/master/go/datas/commit.go#L31

generating a delta is always going to be a full depth traversal

Prolly trees with chunk size 4k and depth 4 can store ~280TB of data. The two first levels are in memory so you're talking about 2 iops to reach any chunk. Additionally, prolly trees are ordered specifically to make computing diffs more tractable.
In our applications, the data was already local by the time this work was happening, so it's just two reads to local disk. Perhaps your applications involve network round trips?

You may also be interested in nbs: https://github.com/attic-labs/noms/tree/master/go/nbs
It's a blockstore specifically optimized for the needs of Noms. One of the tricks it plays is that it tends to colocate chunks into bigger "blocks" based on write time. So chunks which were written together will tend to be in the same block, reducing iops.

This assumes good distribution of input data. For a pathological case consider a sequence of zeroes - this would likely never hash by simply taking the cryptographic hash of the last item. The idea of the rolling hash is to decrease the chance of pathological cases (though they are still possible). We weren't concerned with malicious input, just expected input that got unlucky.

This isn’t an issue as long as you’re enforcing uniqueness. A lot of b-trees implementations enforce uniqueness anyway, so this isn’t a huge departure. Once the entries are guaranteed to be unique you won’t see sequential identifiers and as long as you have a good hashing function the hashes will have a guaranteed random probability of being similar to each other. If you need a data structure that requires duplicate keys, like an index, you just need to find something unique to the entry that you can use in a compound key. For instance, the column indexes in IPSQL are [ key, rowid ] rather than just key.
If you need truly duplicate keys in the tree then the rolling hash is a definitely better.

I don't understand this question. Noms only exposes data structures like maps, sets and lists. It doesn't have a notion of a table. Maybe you are thinking of Dolt?

Ya, sorry, I was bouncing back and forth between these docs and doltdb so the question was actually aimed at doltdb.

Prolly trees with chunk size 4k and depth 4 can store ~280TB of data. The two first levels are in memory so you're talking about 2 iops to reach any chunk. Additionally, prolly trees are ordered specifically to make computing diffs more tractable.
In our applications, the data was already local by the time this work was happening, so it's just two reads to local disk. Perhaps your applications involve network round trips?

Good point, if you can guarantee the top of the tree is in memory this is just way less of a problem. I’m thinking of a lot of use cases where you can’t make this guarantee, or even hope for it.
I also just can’t fit as many entries in a block as you might be, CID’s are rather large and I have to be very mindful of the max block size so an index for VARCHAR(1024) ends up having a lot of small blocks because the target rate is set very conservatively.

You may also be interested in nbs: https://github.com/attic-labs/noms/tree/master/go/nbs

Nice! I’ll definitely check this out. One of the first things I did with these trees was using them for an append-only single file database for block storage, https://github.com/mikeal/CADB , so there are probably a lot of similarities.

This isn’t an issue as long as you’re enforcing uniqueness.

It was important to us that different nodes would always come up with same hash for the same logical changes. So if you have a set of data, and two different nodes both insert the same value to the set, then both should come up with the same hash.
If this is not a design goal, then I agree ensuring uniqueness solves it, but in that case, why do you need this complex machinery:

we’re looking to solve that with a secondary rolling hash with a linearly closing window that is only applied to the back of a chunk after it reaches a certain size.

If you have a way to ensure uniqueness of entries, then just take the cryptographic hash of each entry and be done with it?

I'm probably missing tons of context and I don't have time to go find it now, so don't feel the need to explain this to me :). Glad to see more people investigating these tools.

It was important to us that different nodes would always come up with same hash for the same logical changes. So if you have a set of data, and two different nodes both insert the same value to the set, then both should come up with the same hash.

I should have been clearer, the “key” needs to be unique if its a map, and the “entry” (key and value) are being hashed, so the “entry” needs to be unique if there is no key (Set). The same inserts in two nodes will produce the same hash, and you already have uniqueness for Maps, Sets, and Sparse Arrays. You can’t do true lists and queues very easily this way though.

If you have a way to ensure uniqueness of entries, then just take the cryptographic hash of each entry and be done with it?

An attacker can often estimate the placement of an entry and its hash and most entries you produce won’t cause a split, so generating and testing them is easy. The randomness of the hash doesn’t really help you because an attack can generate data and calculate hashes easily. If you’re limiting access to the tree and you can apply a private salt to the hash that solves it, but if you’re trying to use this in something like a public blockchain and you’re taking changes from users that produce entries into the tree that can be predicted then you’re open to attack.

Also Dolt no longer requires a primary key for tables :D

@zachmu answers that question :) it may still say this in the docs somewhere because I read it within the last few weeks somewhere :)

You can’t do true lists and queues very easily this way though.

Or Blobs. All of which we wanted to be able to model. We did consider the cryptographic hash of every item though, and it works fine, as you say, if the items are unique.


[1.11] Bump Mesos to nightly 1.5.x 5f07b10

High-level description
This is a routine bump to the latest Mesos and mesos-modules.
Related JIRA Issues
Checklist for all PRs

[ ] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:
[x] Read the DC/OS contributing guidelines
[x] Followed relevant code rules Rules for Packages and Systemd

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[x] Changelog:
https://github.com/apache/mesos/compare/8b7ab8403365db54b2d2315cbebe2bc332444fab...5f07b10b05f7d58a08735498215bec8bb3a12518

[ ] Test Results: [link to CI job test results for component]

[ ] Code Coverage (if available): [link to code coverage report]

@mesosphere-mergebot bump-ee

@mesosphere-mergebot label Ready For Review


Put request's onSendProgress callback gives count equal to total on web

In flutter web (chrome), Dio.put method's onSendProgress callback, gives me count equal to total bytes from the beginning. In iOS and Android it works correctly. I am trying to implement a progress bar for uploading files.

try with latest version


Datepicker shows one day behind in Angular 12

When I select a date in datepicker it selects the date fine. But when I click the save button. the selected time shows a behind date. I'm working on Angular 12. How do I solve this issue?
i am converting the date in UTC but even with that I can't be able to get the right date in the picker

This issue doesn't have enough information for the team to investigate. Please include:

A reproduction of the issue (preferably via StackBlitz)
Any relevant errors and stack traces
Any relevant details about your build environment

(this is a canned response)
In addition to the canned response, this is almost certainly an i18n issue due to using the NativeDateAdapter, see https://material.angular.io/components/datepicker/overview#internationalization

Hey @jelbourn Here is a short video of how it is doing
https://user-images.githubusercontent.com/44596656/125050385-339a3500-e0a2-11eb-9b0e-46f8fa476558.mp4
About errors, there are no errors on the component everything looks nice but this problem still persist.

About my build environment :
OS: Windows 10
Angular Version: 12


wherehows docker error

HI:
I use v1.1.0.
and in WhereHows/wherehows-docker run " sudo sh build.sh 1 --stacktrace"
Error fellows:
:wherehows-backend:createPlayBinaryAssetsJar UP-TO-DATE
:wherehows-backend:compilePlayBinaryPlayRoutes UP-TO-DATE
:wherehows-backend:compilePlayBinaryPlayTwirlTemplates UP-TO-DATE
:wherehows-common:compileJava FAILED
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':wherehows-common:compileJava'.

Could not find tools.jar. Please check that /usr/lib/jvm/java-1.8.0-openjdk-<IP_ADDRESS>-0.b01.el7_4.x86_64/jre contains a valid JDK installation.

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED
Total time: 5.487 secs
How to fix it ?

You have to make sure you have the correct configuration before building the Docker container. Here few steps to help you out (under Ubuntu):

Install the Java Development Kit (at least the Java Runtime Environment)
Define the JAVA_HOME environment variable
Install the latest Docker Compose (e.g. I have installed v1.17)
At the home directory (e.g. WhereHows/) run $ ./gradlew clean build, or simply ./gradlew build is there is nothing to be cleaned.
If step 4 works fine, go to the Docker Compose folder (e.g WhereHows/wherehows-docker/) then run ./build.sh 1. If everything goes fine, you should be able to start the services by running docker-compose up.

Hope it works for you!

@rilma Thank you so much!
I use your ways to do,it's useful!
But I meet new question:
Additional error details:
Since bower is a user command, there is no need to execute it with superuser permissions.
If you're having permission errors when using bower without sudo, please spend a few minutes learning more about how your system should work and make any necessary repairs.
http://www.joyent.com/blog/installing-node-and-npm
https://gist.github.com/isaacs/579814
You can however run a command with sudo using --allow-root option
:wherehows-web:bowerInstall FAILED
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':wherehows-web:bowerInstall'.

Process 'command '/home/wherehows/WhereHows-1.0/WhereHows/wherehows-web/build/nodejs/node-v7.8.0-linux-x64/bin/node'' finished with non-zero exit value 1

Do you konw how to fix it ?

@rilma It works !  Thank you very much!

@rilma
HI  rilma:
I meet new error:
Everything goes fine,until I run "docker-compose up"
ERROR: Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a version of "2" (or "2.0") and place your service definitions under the services key, or omit the version key and place your service definitions at the root of the file to use version 1.
How to fix it ?

It's because your system doesn't have the latest Docker Compose. It's stated in item #3 from my previous message. Please, go to the official site and get the correction installation instructions according to your system.

HI @rilma ：
When I install docker-compose 1.15.0,then run docker-compose up,I meet new error:
wherehows-backend_1   | 2017-11-23 02:48:00 INFO  application:55 - Creating Pool for datasource 'wherehows'
wherehows-frontend_1  | NettyServer.main is deprecated. Please start your Play server with the ${ProdServerStart.getClass.getName}.main.
wherehows-backend_1   | 2017-11-23 02:48:00 INFO  p.a.d.DefaultDBApi:45 - Database [wherehows] connected at jdbc:mysql://wherehows-mysql:3306/wherehows
wherehows-frontend_1  | Some(ConfigOrigin(application.conf @ jar:file:/application/lib/wherehows-frontend.jar!/application.conf))
wherehows-frontend_1  | Oops, cannot start the server.
wherehows-frontend_1  | Configuration error: Configuration error[application.conf @ jar:file:/application/lib/wherehows-frontend.jar!/application.conf: 77: Could not resolve substitution to a value: ${WHZ_ES_METRIC_URL}]
wherehows-frontend_1  | 	at play.api.Configuration$.configError(Configuration.scala:180)
wherehows-frontend_1  | 	at play.api.Configuration$.load(Configuration.scala:103)
wherehows-frontend_1  | 	at play.core.server.ProdServerStart$.readServerConfigSettings(ProdServerStart.scala:81)
wherehows-frontend_1  | 	at play.core.server.ProdServerStart$.start(ProdServerStart.scala:42)
wherehows-frontend_1  | 	at play.core.server.ProdServerStart$.main(ProdServerStart.scala:27)
wherehows-frontend_1  | 	at play.core.server.NettyServer$.main(NettyServer.scala:232)
wherehows-frontend_1  | 	at play.core.server.NettyServer.main(NettyServer.scala)
wherehows-frontend_1  | Caused by: com.typesafe.config.ConfigException$UnresolvedSubstitution: application.conf @ jar:file:/application/lib/wherehows-frontend.jar!/application.conf: 77: Could not resolve substitution to a value: ${WHZ_ES_METRIC_URL}
wherehows-frontend_1  | 	at com.typesafe.config.impl.ConfigReference.resolveSubstitutions(ConfigReference.java:108)
wherehows-frontend_1  | 	at com.typesafe.config.impl.ResolveContext.realResolve(ResolveContext.java:179)
wherehows-frontend_1  | 	at com.typesafe.config.impl.ResolveContext.resolve(ResolveContext.java:142)
wherehows-frontend_1  | 	at com.typesafe.config.impl.SimpleConfigObject$ResolveModifier.modifyChildMayThrow(SimpleConfigObject.java:379)
wherehows-frontend_1  | 	at com.typesafe.config.impl.SimpleConfigObject.modifyMayThrow(SimpleConfigObject.java:312)
wherehows-frontend_1  | 	at com.typesafe.config.impl.SimpleConfigObject.resolveSubstitutions(SimpleConfigObject.java:398)
wherehows-frontend_1  | 	at com.typesafe.config.impl.ResolveContext.realResolve(ResolveContext.java:179)
wherehows-frontend_1  | 	at com.typesafe.config.impl.ResolveContext.resolve(ResolveContext.java:142)
wherehows-frontend_1  | 	at com.typesafe.config.impl.SimpleConfigObject$ResolveModifier.modifyChildMayThrow(SimpleConfigObject.java:379)
wherehows-frontend_1  | 	at com.typesafe.config.impl.SimpleConfigObject.modifyMayThrow(SimpleConfigObject.java:312)
wherehows-frontend_1  | 	at com.typesafe.config.impl.SimpleConfigObject.resolveSubstitutions(SimpleConfigObject.java:398)
wherehows-frontend_1  | 	at com.typesafe.config.impl.ResolveContext.realResolve(ResolveContext.java:179)
wherehows-frontend_1  | 	at com.typesafe.config.impl.ResolveContext.resolve(ResolveContext.java:142)
wherehows-frontend_1  | 	at com.typesafe.config.impl.SimpleConfigObject$ResolveModifier.modifyChildMayThrow(SimpleConfigObject.java:379)
wherehows-frontend_1  | 	at com.typesafe.config.impl.SimpleConfigObject.modifyMayThrow(SimpleConfigObject.java:312)
wherehows-frontend_1  | 	at com.typesafe.config.impl.SimpleConfigObject.resolveSubstitutions(SimpleConfigObject.java:398)
wherehows-frontend_1  | 	at com.typesafe.config.impl.ResolveContext.realResolve(ResolveContext.java:179)
wherehows-frontend_1  | 	at com.typesafe.config.impl.ResolveContext.resolve(ResolveContext.java:142)
wherehows-frontend_1  | 	at com.typesafe.config.impl.ResolveContext.resolve(ResolveContext.java:231)
wherehows-frontend_1  | 	at com.typesafe.config.impl.SimpleConfig.resolveWith(SimpleConfig.java:74)
wherehows-frontend_1  | 	at com.typesafe.config.impl.SimpleConfig.resolve(SimpleConfig.java:64)
wherehows-frontend_1  | 	at com.typesafe.config.impl.SimpleConfig.resolve(SimpleConfig.java:59)
wherehows-frontend_1  | 	at com.typesafe.config.impl.SimpleConfig.resolve(SimpleConfig.java:37)
wherehows-frontend_1  | 	at play.api.Configuration$.load(Configuration.scala:99)
wherehows-frontend_1  | 	... 5 more
wherehows-frontend_1  | 2017/11/23 02:48:00 Command exited with error: exit status 255
wherehows-backend_1   | 2017-11-23 02:48:01 INFO  application:34 - on start---===
wherehowsdocker_wherehows-frontend_1 exited with code 255
How to fix it?


fix kind and ocp deploy and run on targets

fix deploy and run-on-kind targets
allow to run make commands on MacOS BSD env

Example:
BPFMAN_AGENT_IMG=quay.io/mmahmoud/bpfman-agent:pr-1150  BPFMAN_OPERATOR_IMG=quay.io/mmahmoud/bpfman-operator:pr-1150 make build-images

BPFMAN_AGENT_IMG=quay.io/mmahmoud/bpfman-agent:pr-1150  BPFMAN_OPERATOR_IMG=quay.io/mmahmoud/bpfman-operator:pr-1150 make run-on-kind

oc get pods -n bpfman
NAME                               READY   STATUS    RESTARTS   AGE
bpfman-daemon-hdzqg                3/3     Running   0          9m29s
bpfman-operator-55d6cb6c57-fzw4f   2/2     Running   0          9m32s

So does this build on the MAC? If so that is great. I never tried.

this solves sed issue I don't have mac to see know for sure if that is it or there more issues, but if anyone has mac just install gsed and we should be good to go


E2E: key bindings

Create tests cases and E2E tests for key bindings and key behaviours

[ ] panActivationKey
[ ] zoomActivationKey
[ ] Todo: Add more

currently blocked by #3576

should be fixed in the next release.


Change build_native_images mac runner to macos-13

Change build_native_images mac runner to macos-13. macos-latest now points to aarch64. Funny enough this doesn't cause an error since out graal plugin we use only checks for 64 so still downloads the x86_64 toolchain.

Arguably we should still test on mac arm, but understood it's a larger change to separate testing from building. Also curious if anything has changed with whatever was blocking our ability to have mac arm native executables.

Arguably we should still test on mac arm, but understood it's a larger change to separate testing from building

To be clear we were not really testing on arm mac, we were testing x86 stuff through rosetta

Also curious if anything has changed with whatever was blocking our ability to have mac arm native executables

No unfortunately


ScssLint pre-commit hook should handle commits only containing excluded files

My .scss-lint.yml is configured to exclude file.scss. When I try to make a commit that only involves a change in file.scss, the pre-commit hook errors out.
The output, with paths edited for brevity:
Analyzing with scss-lint...................................[ScssLint] FAILED
Hook raised unexpected error
Unexpected output: unable to determine line number or type of error/warning for message 'All files matched by the patterns [.../file.scss] were excluded by the patterns: [.../file.scss]'
.../.rvm/gems/ruby-2.0.0-p576/gems/overcommit-0.28.0/lib/overcommit/hook/pre_commit/base.rb:30:in `block in extract_messages'
.../.rvm/gems/ruby-2.0.0-p576/gems/overcommit-0.28.0/lib/overcommit/hook/pre_commit/base.rb:28:in `map'
.../.rvm/gems/ruby-2.0.0-p576/gems/overcommit-0.28.0/lib/overcommit/hook/pre_commit/base.rb:28:in `extract_messages'
.../.rvm/gems/ruby-2.0.0-p576/gems/overcommit-0.28.0/lib/overcommit/hook/pre_commit/scss_lint.rb:21:in `run'
.../.rvm/gems/ruby-2.0.0-p576/gems/overcommit-0.28.0/lib/overcommit/hook/base.rb:45:in `block in run_and_transform'
.../.rvm/gems/ruby-2.0.0-p576/gems/overcommit-0.28.0/lib/overcommit/utils.rb:223:in `with_environment'
.../.rvm/gems/ruby-2.0.0-p576/gems/overcommit-0.28.0/lib/overcommit/hook/base.rb:45:in `run_and_transform'
.../.rvm/gems/ruby-2.0.0-p576/gems/overcommit-0.28.0/lib/overcommit/hook_runner.rb:107:in `block in run_hook'
.../.rvm/gems/ruby-2.0.0-p576/gems/overcommit-0.28.0/lib/overcommit/interrupt_handler.rb:63:in `disable_until_finished_or_interrupted'
.../.rvm/gems/ruby-2.0.0-p576/gems/overcommit-0.28.0/lib/overcommit/hook_runner.rb:106:in `run_hook'
.../.rvm/gems/ruby-2.0.0-p576/gems/overcommit-0.28.0/lib/overcommit/hook_runner.rb:59:in `block in run_hooks'
.../.rvm/gems/ruby-2.0.0-p576/gems/overcommit-0.28.0/lib/overcommit/hook_runner.rb:58:in `each'
.../.rvm/gems/ruby-2.0.0-p576/gems/overcommit-0.28.0/lib/overcommit/hook_runner.rb:58:in `run_hooks'
.../.rvm/gems/ruby-2.0.0-p576/gems/overcommit-0.28.0/lib/overcommit/hook_runner.rb:39:in `block in run'
.../.rvm/gems/ruby-2.0.0-p576/gems/overcommit-0.28.0/lib/overcommit/interrupt_handler.rb:84:in `isolate_from_interrupts'
.../.rvm/gems/ruby-2.0.0-p576/gems/overcommit-0.28.0/lib/overcommit/hook_runner.rb:24:in `run'
.git/hooks/pre-commit:71:in `<main>'

Possibly related to #163.

Which version of scss-lint are you using, @thecristen?

The latest (0.38.0) as far as I know.

The latest is 0.42.2. The gem name was changed from scss-lint to scss_lint to match Rubygems naming conventions.

Perhaps we should release 0.38.1 of scss-lint that prints a warning explaining how to upgrade?

scss-lint 0.38.0 prints a warning when you install it:
⨠ gem install scss-lint
WARNING: `scss-lint` has been renamed to `scss_lint` to follow proper RubyGems naming conventions. Update your Gemfile or relevant install scripts to install `scss_lint`.
Successfully installed scss-lint-0.38.0
1 gem installed

This seems to be coming up a fair amount though, which makes me think we need to print the warning when you run it.

You may also want to change the text in the overcommit README since that still says scss-lint

Also the text that comes up here:
14:42 $ overcommit --run
Running pre-commit hooks
Analyzing with ESLint........................................[EsLint] OK
Analyzing with RuboCop......................................[RuboCop] OK
Analyzing with scss-lint...................................[ScssLint] FAILED
'scss-lint' is not installed (or is not in your PATH)
Install it by running: gem install scss-lint
Checking Travis CI configuration.........................[TravisLint] OK

Thanks @sds for pointing out the updated gem, hopefully I'll see it referenced in the above messaging soon.


zerver/lib: Apply docformatter.

The command used docformatter --inplace zerver/lib/**/*.py on Zsh. From https://github.com/PyCQA/docformatter.

Closing because this was meant as a sample of docformatter output.


Set animation controller value to 1 when widget is checked

A simple yet stylish Widget, good work!
This fixes a little bit of an oversight I noticed: when a checkbox is instantiated with value: true it should be built checked, without the need of passing a new value to value to trigger animationController.forward.

Good catch, thank you for the contribution!


User Journey - Engagement

: Users are greeted with your hero section and a brief introduction. Noteworthy interactions should be tracked in Google Analytics.

this is how things are tracked in google analytics


[stable/minio] Use Parallel pod management policy

Signed-off-by: Heiko Nickerl<EMAIL_ADDRESS>What this PR does / why we need it:
Minio startup time can be shortened by using spec.podManagementPolicy: Parallel in statefulset.
AFAIK this would not break the distributed mode - there's no master/slave election etc..
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped

@wlan0
@nitisht

What happen in case of upgrade ? Does it restart all pods in parallel, and so there will be downtime ?

AFAIK it does not effect upgrading.
I've tried the following:

deploy chart
run helm upgrade ... with altered image tag

The pods have been restarted in reverse order. I.e., it does not effect the spec.updateStrategy (which is by default set to RollingUpdate - so no downtime.)
During installation of the chart, all minio-pods started to launch at the same time.

Any feedback on this?
@wlan0
@nitisht

This looks good. Thanks for the PR @hnicke

/lgtm

/ok-to-test

Please rebase with master

@wlan thank you - I've rebased onto master.

Thanks @hnicke. LGTM

/lgtm

@wlan0 rebased again

@wlan0   push

@wlan0 any update on this?

@wlan0 I'd be happy if you had the time to have a look at this PR :)

/ok-to-test

/lgtm

/approve cancel

/lgtm cancel

/hold

@hnicke can you please use the latest release tag RELEASE.2019-07-17T22-54-12Z

/lgtm

/hold cancel


DesignDocOverride doesn't work with Squoosh enabled

I tried to add a simple control to change between demo designs, and noticed that it didn't work when Squoosh was enabled.

Fixed by #1511.


Hello, excuse me. I want to ask how to calculate runtime?

RFDN-L  runtime 0.037

You can refer to https://github.com/Fried-Rice-Lab/FriedRiceLab .


upgrade to use clap 3.0.14

clap now offers a neater derive API, which can help us save hundreds of LOC in nydusd, nydus-image, etc.
use clap::Parser;

/// Simple program to greet a person
#[derive(Parser, Debug)]
#[clap(author, version, about, long_about = None)]
struct Args {
    /// Name of the person to greet
    #[clap(short, long)]
    name: String,

    /// Number of times to greet
    #[clap(short, long, default_value_t = 1)]
    count: u8,
}

fn main() {
    let args = Args::parse();

    for _ in 0..args.count {
        println!("Hello {}!", args.name)
    }
}

I will work on it


Provide emmet abbreviations via inline completions

This PR fixes #139247

I rebased the code and smoothed it out a bit so that

Depending on the setting, the inline or non-inline completion item provider is used.
One can switch the setting value and get the new completion item provider to be used right away. Though right now, it rebuilds everything from scratch.

One issue I noticed is that with the inline completion item provider, if I press the enter key, I get a large error in the console:

Thanks, looks great!

One issue I noticed is that with the inline completion item provider, if I press the enter key, I get a large error in the console:

This is a bug I need to investigate. But that bug is independent of this PR and shouldn't block you.


forward REQUEST messages to primary when prepare timer expires

This pull request proposes to introduce request forwarding to handle some faulty case in request submission. This allows the MinBFT cluster to accept a request in some cases when the primary does not receive it from the client. The table below provides brief summary of how the behavior changes:

case
origin
patched

R0R1R2
pass
pass

R0
fail
fail

R0R1
pass
pass

R1
fail
fail

R1R2
fail
pass

R0R1Q2
pass
pass

R0Q1
pass
pass

R1Q2
fail
pass

Here we consider a minimum typical cluster (N is 3 and replica 0 is the primary.) Case ID shows which replica(s) a client sends REQUEST to. For example, in case "R0R1" a client sends REQUEST only to replica 0 and 1. In another example "R0R1Q2", a client sends proper REQUEST messages to replica 0 and 1, and a modified REQUEST message (with the same seq) to replica 2. In the result columns, "pass" means that the cluster reaches a consensus.
The most interesting case is "R1R2", where a client sends the proper REQUEST messages to replica 1 and 2. This case becomes "pass" due to request forwarding.
What I noticed while working on this is that case "R1" fails even with this patch. This is because in current implementation the replica could send REPLY to the client only when the replica received the REQUEST directly from the client (i.e. a replica who got a forwarded request can't send REPLY.) Similarly, a backup replica which didn't receive REQUEST from the client and processed REQUEST embedded in the PREPARE message can't send REPLY message to its requester. I guess that these are not due to some specific reason, but it's just implemented now as such. So we can do some to fix them in the future if we think it's worth doing.
Resolves #140
Resolves #5

What I noticed while working on this is that case "R1" fails even with this patch. This is because in current implementation the replica could send REPLY to the client only when the replica received the REQUEST directly from the client (i.e. a replica who got a forwarded request can't send REPLY.) Similarly, a backup replica which didn't receive REQUEST from the client and processed REQUEST embedded in the PREPARE message can't send REPLY message to its requester. I guess that these are not due to some specific reason, but it's just implemented now as such. So we can do some to fix them in the future if we think it's worth doing.

This is because replicas use received Request messages to distinguish incoming client connection originated at different clients. We could consider improving this at some point.

Change summary:

generalized peer message supplier to handle both log channel and forward channel,
use messageLog instances to handle unicast, which indirectly solves the concern about blocking channel operations because supplyMessages() already addresses it.

@Naoya-Horiguchi Thank you for doing this, but I'm afraid I barely have time to review it until the beginning of April. On the other hand, I'd still like to vet on this issue and give my feedback. Would it be fine for you to wait for my feedback for a couple more weeks?

@Naoya-Horiguchi Thank you for doing this, but I'm afraid I barely have time to review it until the beginning of April. On the other hand, I'd still like to vet on this issue and give my feedback. Would it be fine for you to wait for my feedback for a couple more weeks?

Sure, this issue is not urgent, so we can wait until April.

I've updated the branch.

Now, using messagelog for buffering the forwarded requests eliminates dandling goroutines when the destination replica stops receiving the messages. However, this will still accumulate the forwarded messages in the unicast message logs, whereas we only need to keep at most one request per client (until we add support for concurrent client requests). I think we can try to improve this as a separate issue.

I agree, I added an inline comment to mention this.

I suggest passing forwardChan to makeMessageSupplier instead. This way would better align with what we already do with the common message log.

Applied the suggestion, thank you.


Start the daemon from the tray

Requires https://github.com/code-ready/crc/pull/2156
Requires https://github.com/code-ready/crc/pull/2162
After this, we will have to change the macOS pkg to only ship /Application/CodeReady Containers.app and remove the launchd configuration of the daemon.

(still adding more details in case of error)

After this, we will have to change the macOS pkg to only ship /Application/CodeReady Containers.app and remove the launchd configuration of the daemon.

And the autostart-tray config option also needs to be removed, the autostart control functionality we have to move to the tray

Yes I think it's better if the tray handle it with a checkbox or so. The tray can call the daemon to add the proper files perhaps?

I updated this PR with the exit code instead of the API to check if preflights are ok.


draw architecture diagram with mermaid or plantuml

Github wikis don't support mermaid yet

Now wiki's support mermaid!
https://github.blog/changelog/2022-08-09-wikis-now-support-math-and-mermaid-diagrams/


no device is shown

The AndroidTool window is empty, where I should see any connected devices. adb devices show my device attached. Is there any debug log, what I can check?

I use OS X 10.9.5 - may be this help you.

Is it stil the case if you switch to another app and then back to AndroidTool? Which Android devices have you tried with?

My Android device is a Nexus 4 (Android 5.1).

Thanks. I'll check with Mavericks and Nexus 4

Same on Mavericks, regardless of the device (N5, G3, ..).

See same issue on Mavericks with N5.

Seeing same issue on Mavericks with Moto X 2nd gen.

Same issue here, Mavericks, with many different devices and emulators

Should work in the latest version on https://github.com/mortenjust/androidtool-mac/releases
Please make sure you select "Always allow from this computer" in the "Allow USB debugging" dialog that pops up on the phone when plugging it into the computer for the first time


Can get blocks working on Inline Forms

Description
I have an inline-block for an accordion I component I'm working on.  I'm trying to get the wrapper/container up and running as an inline-block but the individual elements are to be a standard set of blocks in a form.  When I open the wrapper/container settings the block entries are blank.  I've followed the settings as per the Tina Grande Starter example as best I can but can't get the blocks in the form working as expected.
Steps to reproduce
The two components in question are here:
https://github.com/xaviemirmon/gatsby-drupal-tinacms-demo/tree/master/frontend/src/components/Accordions
Clear steps describing how to reproduce the issue. Please please please link to a demo project if possible, this makes your issue much easier to diagnose (seriously).
Expected result
There is should be a draggable list of individual entries I can edit.
Actual result
Everything is just blank.

Environment
Tinacms Package Versions

├──<EMAIL_ADDRESS>├─┬<EMAIL_ADDRESS>│ ├─┬<EMAIL_ADDRESS>│ │ ├─┬<EMAIL_ADDRESS>│ │ ├─┬<EMAIL_ADDRESS>│ │ │ ├──<EMAIL_ADDRESS>│ │ ├──<EMAIL_ADDRESS>│ │ ├─┬<EMAIL_ADDRESS>├─┬<EMAIL_ADDRESS>├─┬<EMAIL_ADDRESS>│ ├─┬<EMAIL_ADDRESS>├─┬<EMAIL_ADDRESS>│ ├─┬<EMAIL_ADDRESS>├─┬<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├─┬<EMAIL_ADDRESS>

Tools

Tool
Version

browser

os

node

npm

I've figured it out.  I was using the InlineForms data structure on a non-inlined form.  When I updated it's appearing as expected-ish.
 export const accordionBlock = {
-  Component: Accordion,
-  template: {
-    label: "Accordion",
+    label: "Accordion Tab",
+    key: 'accordion',
     defaultItem: {
       _template: "accordion",
       heading: "Marie Skłodowska Curie",
heading: "Marie Skłodowska Curie",
      supporting_copy:
        "Rich in mystery muse about vastness is bearable only through love Ut enim ad minima veniam at the edge of forever are creatures of the cosmos. ",
    },
    fields: [
      {
        name: 'heading',
        component: 'text',
        label: 'Heading'
      },
      {
        name: 'supporting_copy',
        component: 'textarea',
        label: 'Description'
      },
    ],
- }

I now have a new issue which I've raised as https://github.com/tinacms/tinacms/issues/2405


Reuse capacity when possible in <BytesMut as Buf>::advance impl

While thinking about usage of BytesMut in my own code I've realized sometimes the following pattern (explained by the following pseudocode) is encountered:
let mut buf = BytesMut::with_capacity(8196);

loop {
    read_into_bufmut(&mut buf);

    if some_condition {
        // consume the data and then discard it
        let consumed = process_data(&buf);
        buf.advance(consumed);
        // in most cases the above `advance` ends-up consuming the entire length of `buf`
    } else {
        // consume the data as `Bytes`
        ship_data(buf.split().freeze());

        // (this is just to explain that `VecDeque` wouldn't be efficient here)
    }
}

In this particular example it would be more efficient to buf.clear() when consumed == buf.len(), instead of calling advance and eventually ending-up going through the allocation machinery.
This PR makes advance do it automatically for cases in which it's safe to do (which is why I didn't put it inside advance_unchecked). I'm not sure the Buf API allows it, the only thing I've found is #[must_use = "consider BytesMut::advance(len()) if you don't need the other half"] on BytesMut::split().

Would it make more sense to move this check to advance_unchecked?

I'm not quite sure how to structure this because the thing with advance_unchecked is that it gets called by split_to and split_off. These functions expect advance_unchecked to actually advance the position, otherwise they would end up with the two instances of BytesMut having overlapping ranges.

The conflict with split_to and split_off is a good reason to not put it in advance_unchecked.

Good idea. Fixed!

This change broke our usage of BytesMut in s2n-quic, where we have a similar expectation:

These functions expect advance_unchecked to actually advance the position, otherwise they would end up with the two instances of BytesMut having overlapping ranges.

In our case, we expect that advance actually reduces the overall capacity of the chunk. There's also no efficient way to work around this, since the only option is to call split_to and discard the result.

That's unfortunate, we may have to revert this change. Can you open a bug report with details about this regression?

Opened #725


Changes to Bowling tests

We recently rewrote the test suite for Bowling. Since this track implements Bowling, please take a look at the new canonical_data.json file and see if your track should update its implementation or tests.
The new test suite reorders tests so that students can get to green quickly. It also reduces the number of tests so that students can focus on solving the interesting edge cases.
More details on this change are available in this issue

This track needs to rewrite (maybe just reorder) the specs to match the canonical tests and tests order.
I'll label this issue as good first patch because it should be easy to perform these changes.
If anyone decides to implement this, and a problem arises, please comment on this issues and ask for help.

I can take this one, as a Second Patch.

I would prefer to keep raising errors. I think that returning -1 is the way in x-common to specify an error must be returned.
I've looked at other languages, and ruby raises errors too, and elixir expects to get :error responses. Nothing about a -1. I would keep raising error is JavaScript. exercism/javascript, do you have some strong opinion on this?

@rchavarria I recall that -1 in the config.json is a placeholder for throwing and error or an exception, I think either solution would be acceptable in this context.

Good.  I prefer the error throwing path.


enable continuity for end-to-end compatibility

current solution: https://github.com/epigen/MrBiomics/issues/34
old idea (note done, depends on loading data for DAG generation)
DEA modules with explicit output to enable usage as module with subsequent modules (avoiding missing input exception) e.g., for enrichment analysis as input.
Requires loading all Seurat objects, reading out metadata files and explicitly defining final output files.

[ ] add Seurat to global.env
[ ] determine all output files using a dictionary
[ ] ensure that all files are generated ie empty files in case of no stat. sign. features (https://github.com/epigen/dea_limma/issues/21)
[ ] change output rule to a checkpoint
[ ] add a stand-in rule between checkpoint and target rule that aggregates the result files per analysis. Create an input function for  it that accesses the pre-determined dictionary with output files
[ ] test if it works end-to-end with subsequent enrichment analysis

[ ] check how it dealt with empty input output Snakemake object/dict in case of new rule applied -> does it bother pyhton?


Fix issue#1719

Pull request checklist
Read the Contribution Guidelines for detailed information.

[ ]  Changes are described in the pull request, or an existing issue is referenced.
[x]  The test suite compiles and runs without error.
[ ]  Code coverage is 100%. Test cases can be added by editing the test suite.
[ ]  The source code is amalgamated; that is, after making changes to the sources in the include/nlohmann directory, run make amalgamate to create the single-header file single_include/nlohmann/json.hpp. The whole process is described here.

Describe
As discussed in issue #1719, I made this PR base on @rvjr  's patch, and also refer to the author's suggestions in this comment

Is there any reason for the 'use_type' parameter? Or at least I would make its default value 'true'. I see no use case why we should serialize something as double instead of float when the actual value is identical.

@dota17 I checked the errors on Travis and it seems the use_type introduces this issue. I think my proposal to add this parameter does not make sense - we also silently use the smallest possible integer types and it would be odd not to treat floating-point numbers the same.
Could you please revert and remove the use_type parameter, and maybe also rebase to the latest develop branch?

@nlohmann The commit has been modified according to your suggestion.
The Travis failed becasue E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?, but I think it could be ok if you can restart build job.

It seems that there are other CBOR tests failing.

@nlohmann These CBOR tests failed:
0.0, -0.0,  0e+1, 0e1, 123.456e-789, 20e1, 1E+2, 1e+2, 123e-10000000
but the other CBOR tests passed. the problem is in the last piece of code, which comes from the original patch. Could you please check how to fix this?

It seems that there are other CBOR tests failing.

@nlohmann These CBOR tests failed:
0.0, -0.0, 0e+1, 0e1, 123.456e-789, 20e1, 1E+2, 1e+2, 123e-10000000
but the other CBOR tests passed. the problem is in the last piece of code, which comes from the original patch. Could you please check how to fix this?

I checked locally with some debug output:
../test/src/unit-cbor.cpp:2076: ERROR: CHECK( vec == packed ) is NOT correct!
  values: CHECK( {?} == {?} )
  logged: filename := ~/json/cmake-build-debug/json_test_data/json_roundtrip/roundtrip20.json
          ~/json/cmake-build-debug/json_test_data/json_roundtrip/roundtrip20.json: output to output adapters
          j1 := [0.0]
          stringify(packed) := 129 251 0 0 0 0 0 0 0 0
          ~/json/cmake-build-debug/json_test_data/json_roundtrip/roundtrip20.json: output adapters: std::vector<uint8_t>
          stringify(vec) := 129 250 0 0 0 0

../test/src/unit-cbor.cpp:2076: ERROR: CHECK( vec == packed ) is NOT correct!
  values: CHECK( {?} == {?} )
  logged: filename := ~/json/cmake-build-debug/json_test_data/json_roundtrip/roundtrip21.json
          ~/json/cmake-build-debug/json_test_data/json_roundtrip/roundtrip21.json: output to output adapters
          j1 := [-0.0]
          stringify(packed) := 129 251 128 0 0 0 0 0 0 0
          ~/json/cmake-build-debug/json_test_data/json_roundtrip/roundtrip21.json: output adapters: std::vector<uint8_t>
          stringify(vec) := 129 250 128 0 0 0

../test/src/unit-cbor.cpp:2076: ERROR: CHECK( vec == packed ) is NOT correct!
  values: CHECK( {?} == {?} )
  logged: filename := ~/json/cmake-build-debug/json_test_data/nst_json_testsuite/test_parsing/y_number_0e+1.json
          ~/json/cmake-build-debug/json_test_data/nst_json_testsuite/test_parsing/y_number_0e+1.json: output to output adapters
          j1 := [0.0]
          stringify(packed) := 129 251 0 0 0 0 0 0 0 0
          ~/json/cmake-build-debug/json_test_data/nst_json_testsuite/test_parsing/y_number_0e+1.json: output adapters: std::vector<uint8_t>
          stringify(vec) := 129 250 0 0 0 0

../test/src/unit-cbor.cpp:2076: ERROR: CHECK( vec == packed ) is NOT correct!
  values: CHECK( {?} == {?} )
  logged: filename := ~/json/cmake-build-debug/json_test_data/nst_json_testsuite/test_parsing/y_number_0e1.json
          ~/json/cmake-build-debug/json_test_data/nst_json_testsuite/test_parsing/y_number_0e1.json: output to output adapters
          j1 := [0.0]
          stringify(packed) := 129 251 0 0 0 0 0 0 0 0
          ~/json/cmake-build-debug/json_test_data/nst_json_testsuite/test_parsing/y_number_0e1.json: output adapters: std::vector<uint8_t>
          stringify(vec) := 129 250 0 0 0 0

../test/src/unit-cbor.cpp:2076: ERROR: CHECK( vec == packed ) is NOT correct!
  values: CHECK( {?} == {?} )
  logged: filename := ~/json/cmake-build-debug/json_test_data/nst_json_testsuite/test_parsing/y_number_double_huge_neg_exp.json
          ~/json/cmake-build-debug/json_test_data/nst_json_testsuite/test_parsing/y_number_double_huge_neg_exp.json: output to output adapters
          j1 := [0.0]
          stringify(packed) := 129 251 0 0 0 0 0 0 0 0
          ~/json/cmake-build-debug/json_test_data/nst_json_testsuite/test_parsing/y_number_double_huge_neg_exp.json: output adapters: std::vector<uint8_t>
          stringify(vec) := 129 250 0 0 0 0

../test/src/unit-cbor.cpp:2076: ERROR: CHECK( vec == packed ) is NOT correct!
  values: CHECK( {?} == {?} )
  logged: filename := ~/json/cmake-build-debug/json_test_data/nst_json_testsuite/test_parsing/y_number_int_with_exp.json
          ~/json/cmake-build-debug/json_test_data/nst_json_testsuite/test_parsing/y_number_int_with_exp.json: output to output adapters
          j1 := [200.0]
          stringify(packed) := 129 251 64 105 0 0 0 0 0 0
          ~/json/cmake-build-debug/json_test_data/nst_json_testsuite/test_parsing/y_number_int_with_exp.json: output adapters: std::vector<uint8_t>
          stringify(vec) := 129 250 67 72 0 0

../test/src/unit-cbor.cpp:2076: ERROR: CHECK( vec == packed ) is NOT correct!
  values: CHECK( {?} == {?} )
  logged: filename := ~/json/cmake-build-debug/json_test_data/nst_json_testsuite/test_parsing/y_number_real_capital_e_pos_exp.json
          ~/json/cmake-build-debug/json_test_data/nst_json_testsuite/test_parsing/y_number_real_capital_e_pos_exp.json: output to output adapters
          j1 := [100.0]
          stringify(packed) := 129 251 64 89 0 0 0 0 0 0
          ~/json/cmake-build-debug/json_test_data/nst_json_testsuite/test_parsing/y_number_real_capital_e_pos_exp.json: output adapters: std::vector<uint8_t>
          stringify(vec) := 129 250 66 200 0 0

../test/src/unit-cbor.cpp:2076: ERROR: CHECK( vec == packed ) is NOT correct!
  values: CHECK( {?} == {?} )
  logged: filename := ~/json/cmake-build-debug/json_test_data/nst_json_testsuite/test_parsing/y_number_real_pos_exponent.json
          ~/json/cmake-build-debug/json_test_data/nst_json_testsuite/test_parsing/y_number_real_pos_exponent.json: output to output adapters
          j1 := [100.0]
          stringify(packed) := 129 251 64 89 0 0 0 0 0 0
          ~/json/cmake-build-debug/json_test_data/nst_json_testsuite/test_parsing/y_number_real_pos_exponent.json: output adapters: std::vector<uint8_t>
          stringify(vec) := 129 250 66 200 0 0

../test/src/unit-cbor.cpp:2076: ERROR: CHECK( vec == packed ) is NOT correct!
  values: CHECK( {?} == {?} )
  logged: filename := ~/json/cmake-build-debug/json_test_data/nst_json_testsuite/test_parsing/y_number_real_underflow.json
          ~/json/cmake-build-debug/json_test_data/nst_json_testsuite/test_parsing/y_number_real_underflow.json: output to output adapters
          j1 := [0.0]
          stringify(packed) := 129 251 0 0 0 0 0 0 0 0
          ~/json/cmake-build-debug/json_test_data/nst_json_testsuite/test_parsing/y_number_real_underflow.json: output adapters: std::vector<uint8_t>
          stringify(vec) := 129 250 0 0 0 0

The numbers 0.0, -0.0, 200, and 100 can be represented exactly by double and float. We just need to adjust the test cases.

(see http://cbor.me for a helpful tool)

(see http://cbor.me for a helpful tool)
Thank you for the detailed log info and the tool, that really helps.

 I think everything is working fine; the point is just that 123.456e-789 and 123e-10000000 cannot be stored lossless in a double and have zero as closest representation in a 64 bit double value, so we can just as well store them as float zero (which is also correct in my opinion).

clean commit and rebase.

Coverage increased (+0.0004%) to 99.842% when pulling 8fce1c9e999c26e7153ed89dfe2fddac80218860 on dota17:issue#1719 into a414e359716442e0acc7e198fbabf206303ca0a5 on nlohmann:develop.

There is a warning from UBSAN which breaks the build, see https://travis-ci.org/github/nlohmann/json/jobs/686552145#L915:
      Start  7: test-cbor
912
9137: Test command: /home/travis/build/nlohmann/json/build/test/test-cbor "--no-skip"
9147: Test timeout computed to be: 2700
9157: ../single_include/nlohmann/json.hpp:12131:62: runtime error: 1.79769e+308 is outside the range of representable values of type 'float'
9167: ==7080==WARNING: invalid path to external symbolizer!
9177: ==7080==WARNING: Failed to use and restart external symbolizer!
9187:     #0 0x7d0aac  (/home/travis/build/nlohmann/json/build/test/test-cbor+0x7d0aac)
9197:     #1 0x7d3bf3  (/home/travis/build/nlohmann/json/build/test/test-cbor+0x7d3bf3)
9207:     #2 0x7cccab  (/home/travis/build/nlohmann/json/build/test/test-cbor+0x7cccab)
9217:     #3 0x7315a7  (/home/travis/build/nlohmann/json/build/test/test-cbor+0x7315a7)
9227:     #4 0x5f1d67  (/home/travis/build/nlohmann/json/build/test/test-cbor+0x5f1d67)
9237:     #5 0x5f844c  (/home/travis/build/nlohmann/json/build/test/test-cbor+0x5f844c)
9247:     #6 0x7f34ce04ef44  (/lib/x86_64-linux-gnu/libc.so.6+0x21f44)
9257:     #7 0x4e5c3b  (/home/travis/build/nlohmann/json/build/test/test-cbor+0x4e5c3b)
9267:
9277: SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../single_include/nlohmann/json.hpp:12131:62 in
928 7/49 Test  #7: test-cbor ..........................***Failed   57.38 sec

Any ideas?

Well this is exactly what this line is supposed to do:
const float value_float = static_cast<float>(value_double);

It should convert to float, as good as possible. And if there is no representation then we should detect this as not being representable as float, which is the intended use of the cast.

I am confusing, in json_test_data, there is no such input data like 1.79769e+308.
It only exists in unit-testsuites.cpp, for double-number compliance tests, not a cbor conversion.

I think the problem occurs when we handle a NaN or infinity value. We should first handle these cases and only then convert the value to float.
That is, move the lines
const auto value_double = j.m_value.number_float;
const float value_float = static_cast<float>(value_double);

to the else branch.

That still does not fix it. Did you try to run with UBSAN locally? Would be interesting to see which test fails.

That still does not fix it. Did you try to run with UBSAN locally? Would be interesting to see which test fails.

Just run it with UBSAN in local, the error still appeared:
 7/49 Test  #7: test-cbor ..........................***Failed   81.58 sec
/usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/stl_bvector.h:158:20: runtime error: unsigned integer overflow: 0 - 1 cannot be represented in type 'unsigned int'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/stl_bvector.h:158:20 in
/data/jsonformodernc/llc/json/single_include/nlohmann/json.hpp:12146:64: runtime error: 1.79769e+308 is outside the range of representable values of type 'float'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /data/jsonformodernc/llc/json/single_include/nlohmann/json.hpp:12146:64 in

You could run the test-cbor binary directly and check in the debugger in which line the error occurs.

Well, it still at
static_cast<double>(static_cast<float>(j.m_value.number_float)) == j.m_value.number_float

And which input?

And which input?

1e+300

Then I think we need to compare against std::numeric_limits<float>::max/std::numeric_limits<float>::min before trying to convert.

Done, no more undefined-behavior in my local.

Could you also test against min() and add some unit tests?

Thanks!

🔖 Release item
This issue/PR will be part of the next release of the library. This template helps preparing the release notes.
Type

[ ] ✨ New Feature
[ ] 🐛 Bug Fix
[x] ⚡ Improvement
[ ] 🔨 Further Change
[ ] 🔥 Deprecated function

Description

Use float representation in CBOR output if possible to save space. #1719 #2044


ngrok client settings incompatible with twurple ngrok

Bug Report
Adding a token to an independent ngrok instance will get picked up by twurple eventsub and cause the application to hang.
Code
const eventSubListener = new EventSubListener({
  adapter: new NgrokAdapter(),
  apiClient: apiClientEventSub,
  secret: "secrethere"
})
await eventSubListener.listen()

Expected behavior
Twurple ngrok to cope with user tokens applied via an independent ngrok client.
Actual Behavior
The process hangs on eventSubListener.listen()
Explanation
The ngrok client I have is a simple .exe. It saves settings to C:/users/<user>/.ngrok2.
The Twurple ngrok must detect the same config file in some capacity.
If the config file includes the authtoken, the process hangs. If I remove the config file, it is back to normal.
Example ngrok config file:
authtoken: myauthtokenhere

also see: https://ngrok.com/docs#tunnel-definitions
You get an authtoken by signing up to their site in order to get a static subdomain.
Reproduction

Download ngrok from https://ngrok.com/download
Sign up to ngrok
Run ./ngrok.exe authtoken <token>
A config file will have generated in C:/users/<user>/.ngrok2
Attempt to run a bot with eventsub
The awaited EventSubListener.listen() process will hang.

Environment

Version: @twurple/eventsub-ngrok: 5.0.0-pre.15 (Haven't tested for any other ngrok packages)
Node version: 12.18.2
Operating system: Windows 10 Pro build 19041

I can not reproduce this. I logged in with an auth token and then I still can't bind a fixed subdomain. Moreover, listening works just fine.
 If so, I may be unable to reproduce this at all, and you may have to debug this by yourself in order to get it fixed in this lib.

Closed for inactivity. Please comment if you have more insight on this.


fix: [#2745] Fix current eslint warnings - botbuilder library

Addresses # 2745
#minor
Description
This PR fixes the ESLint and JSDoc issues in the botbuilder library.
Note: we excluded the @typescript-eslint/no-explicit-any and @typescript-eslint/explicit-module-boundary-types to tackle those issues as a separated task as they require deeper analysis and testing.
Specific Changes

Applied the eslint auto-fix with yarn lint --fix (quotes, spacing, replaced var with let)
Added missing JSDoc documentation in methods.
Removed unused imports and variables.
Disabled @typescript-eslint/ban-types rule to review the use of object along with the any types.
Moved variables with requires to the import section.

Testing
All tests passes.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

30 of 32 (93.75%)  changed or added relevant lines in 6 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage remained the same at 84.543%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

libraries/botbuilder/src/botFrameworkAdapter.ts
24
26
92.31%

Files with Coverage Reduction
New Missed Lines
%

libraries/botbuilder-lg/src/templateExtensions.ts
1
84.48%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
19660

Relevant Lines:
22028

💛  - Coveralls


Implement Clone for most of the types

Clone is not implemented for Context as it is more than a thin wrapper
around cl_context, which would need manual reference counting in order to
free resources properly when dropping the last instance. As it makes sense
to put more thought into the current idea of Context, I decided to not
implement Clone for now.
The clone() method of Kernel was renamed to data_clone() so that it
can be distinguished from the Clone implementation, that does only add
another shared reference. It was done in order to keep the Clone API
symmetric across all OpenCL types.
Types that don't need reference counting, Device and Platform also
implement Copy.
I'm not sure about the kernel clone being named data_clone(), perhaps there
is a better way? I also don't really understand (due to my lack of OpenCL
knowledge) why you would clone it that way instead of just having a reference.

Discussion has moved to #9, hence closing this one.


Case-sensitivity in imports...

Can you please rename the org to be golang-plus instead of Golang-Plus?  The mixed case between the github repo and the imports is problematic:
$ go get -v -u github.com/Golang-Plus/uuid
github.com/Golang-Plus/uuid (download)
github.com/golang-plus/errors (download)
github.com/golang-plus/uuid (download)
Golang-Plus/uuid/layout.go:4:2: use of internal package not allowed
Golang-Plus/uuid/domain.go:4:2: use of internal package not allowed
Golang-Plus/uuid/namespace.go:4:2: use of internal package not allowed
Golang-Plus/uuid/uuid.go:9:2: use of internal package not allowed
Golang-Plus/uuid/uuid.go:10:2: use of internal package not allowed
Golang-Plus/uuid/uuid.go:11:2: use of internal package not allowed
Golang-Plus/uuid/uuid.go:12:2: use of internal package not allowed
Exit 1
$ rm -rf $GOPATH/src/github.com/Golang-Plus/uuid
$ go get -v -u github.com/golang-plus/uuid
github.com/golang-plus/uuid (download)
github.com/golang-plus/errors (download)
github.com/golang-plus/uuid/internal
github.com/golang-plus/uuid/internal/namebased
github.com/golang-plus/errors
github.com/golang-plus/uuid/internal/timebased
github.com/golang-plus/uuid/internal/namebased/md5
github.com/golang-plus/uuid/internal/random
github.com/golang-plus/uuid/internal/namebased/sha1
github.com/golang-plus/uuid/internal/dcesecurity
github.com/golang-plus/uuid
$ cd $GOPATH/src/github.com/golang-plus/uuid/
$ go list ./...
github.com/golang-plus/uuid
github.com/golang-plus/uuid/internal
github.com/golang-plus/uuid/internal/dcesecurity
github.com/golang-plus/uuid/internal/namebased
github.com/golang-plus/uuid/internal/namebased/md5
github.com/golang-plus/uuid/internal/namebased/sha1
github.com/golang-plus/uuid/internal/random
github.com/golang-plus/uuid/internal/timebased
$ egrep -r Golang-Plus .
Exit 1
$ egrep -r golang-plus *
domain.go:	"github.com/golang-plus/uuid/internal/dcesecurity"
internal/dcesecurity/dcesecurity.go:	"github.com/golang-plus/uuid/internal"
internal/dcesecurity/dcesecurity.go:	"github.com/golang-plus/uuid/internal/timebased"
internal/dcesecurity/dcesecurity.go:	"github.com/golang-plus/errors"
internal/namebased/md5/md5.go:	"github.com/golang-plus/uuid/internal"
internal/namebased/md5/md5.go:	"github.com/golang-plus/errors"
internal/namebased/sha1/sha1.go:	"github.com/golang-plus/uuid/internal"
internal/namebased/sha1/sha1.go:	"github.com/golang-plus/errors"
internal/random/random.go:	"github.com/golang-plus/uuid/internal"
internal/random/random.go:	"github.com/golang-plus/errors"
internal/timebased/timebased.go:	"github.com/golang-plus/uuid/internal"
internal/timebased/timebased.go:	"github.com/golang-plus/errors"
layout.go:	"github.com/golang-plus/uuid/internal"
namespace.go:	"github.com/golang-plus/uuid/internal/namebased"
parse.go:	"github.com/golang-plus/errors"
parse_test.go:	testing2 "github.com/golang-plus/testing"
uuid.go:	"github.com/golang-plus/uuid/internal"
uuid.go:	"github.com/golang-plus/uuid/internal/dcesecurity"
uuid.go:	"github.com/golang-plus/uuid/internal/namebased/md5"
uuid.go:	"github.com/golang-plus/uuid/internal/namebased/sha1"
uuid.go:	"github.com/golang-plus/uuid/internal/random"
uuid.go:	"github.com/golang-plus/uuid/internal/timebased"
version.go:	"github.com/golang-plus/uuid/internal"

This can only be fixed by the project maintainer renaming the organization from Golang-Plus to golang-plus.

renamed

Thank you


[fix] generate migration template with version for rails >= 5

In Rails > 5 need to insert rails version to migrations.
This fix inserting this version only for Rails versions > 5
Caused by:
StandardError: Directly inheriting from ActiveRecord::Migration is not supported. Please specify the Rails release the migration was written for:
class AddMessagesCountToConversationies < ActiveRecord::Migration[4.2]

Thank you!

Released 1.9.0 with this.


Improve the readme and add a LEARN.md

Adding a LEARN.md file ensures anyone viewing the project find it easier to get to know more about the project in a glance through visual aids or descriptive writing. Would you please assign this issue under me, for GSSOC"24?

@MadhunishaBala
We don't think the current project status is too complex to understand. If you find it difficult, feel free to suggest changes. We'll add them to the readme file.


chore: update jina embedding

Modifications:

rename API parameter: task_type to task
extend API parameter: late_chunking

Base branch is wrong, this is an invalid PR. I opened a new one #1223.


Update 5

Hi,
Do you have plans to make this work with update 5?
Thanks!

Mod should be working with update 5 despite the warning, though I do want to make a release just to make the warning go away. Please re-open if you find actual issues with update 5

Yes it does in fact work. Thank you!


chore(deps): upgrade configuration

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-configuration-k8s-27-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 2916

Questions ?
Please refer to the Backport tool documentation


MNT: rerender

Hi! This is the friendly automated conda-forge-webservice.
I've rerendered the recipe as instructed in #39.
Here's a checklist to do before merging.

[ ] Bump the build number if needed.

Fixes #39

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin rerender

@conda-forge/mpb this pr fixes this build so it pins mpich correctly. Please merge if you are ok with it!

Thanks for putting this together @beckermr. Is it necessary to also pin mpich in https://github.com/conda-forge/pymeep-feedstock/blob/master/recipe/conda_build_config.yaml?

No. We no longer use pin_run_as_build. Instead we rely on run exports in the mpich and openmpi packages.

The global pins from the conda-forge global pinning files will be used.

See our documentation for the current correct way to build with mpi: https://conda-forge.org/docs/maintainer/knowledge_base.html#building-mpi-variants
This has changed semi-recently and we are cleaning up repos with the old way as we find them.


UVWindow Multiple GameObjects

Allow inspecting multiple GameObjects at the same time to check for UV overlap, for example.

Implemented with version 1.2.0