Test named sha2_byte crashes during compliation

Aim
Test named sha2_byte should compile
Expected Behavior
^
Bug
It appears to hang during the cfg flatten pass.
To Reproduce

Installation Method
None
Nargo Version
No response
Additional Context
No response
Would you like to submit a PR for this Issue?
No
Support Needs
No response

Duplicate of #1259

Also affects test named sha2_blocks

This turns out to be related to https://github.com/noir-lang/noir/issues/1756. This can be seen by removing the top half of the called sha function:

// SHA-256 hash function
fn digest<N>(msg: [u8; N]) -> [u8; 32] {
    let mut msg_block: [u8; 64] = [0; 64];
    let mut h: [u32; 8] = [1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]; // Intermediate hash, starting with the canonical initial value
    let mut c: [u32; 8] = [0; 8]; // Compression of current message block as sequence of u32
    let mut out_h: [u8; 32] = [0; 32]; // Digest as sequence of bytes
    let mut i = 0; // Message byte pointer

    for k in 0 .. msg.len() {
        // Populate msg_block
        msg_block[i] = msg[k];
        i = i + 1;
        if i == 64 { // Enough to hash block
            c = sha_c(msg_u8_to_u32(msg_block), h);
            for j in 0..8 {
                h[j] = c[j] + h[j];
            }

            i = 0;
        }
    }

    // Pad the rest such that we have a [u32; 2] block at the end representing the length
    // of the message, and a block of 1 0 ... 0 following the message (i.e. [1 << 7, 0, ..., 0]).
    msg_block[i] = 1 << 7;
    i = i + 1;

    out_h
}

Which gets the
Message:  internal error: entered unreachable code: Expected all allocate instructions to be removed before acir_gen
Location: crates/noirc_evaluator/src/ssa_refactor/acir_gen/mod.rs:258

error

The original error is gone now but sha2_byte now crashes with:
The application panicked (crashed).
Message:  Vector::index_mut: index out of bounds
Location: /Users/.../.cargo/registry/src/github.com-1ecc6299db9ec823/im-15.1.0/./src/vector/mod.rs:838


⚠ Bofrost.lu has degraded performance

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

HTTP code: 200
Response time: 1736 ms

Resolved: Bofrost.lu performance has improved in c18a5c4 after 6 minutes.


No way to change the behaviour of the submit button

You can pass an onSuccess button to the builder, but the Submit button and the fields of the resulting form are entirely shielded off from the rest of the app, so there is no way to for instance do some extra check apart from the Shex validation (e.g. an 'are you sure?' dialog, or any other customizations). A beforeSubmit callback would have been helpful for cases like this, I think.

This is a good idea, and likely not that difficult to implement. Right now, we do have an onSave event called at the end of the built-in "save/submit", but no way to interrupt the process. perhaps as you suggest a beforeSave function that executes at the beginning of the save, or even a custom save function. Either could work, or perhaps both. Maybe return a bool that indicates if the save should execute or not?


Sample Example

please can u add a simple example of getting artwork for a file

Thanks for the suggestion @Noor-Kalibbala , I've just added support for using a single file instead of a folder.  I also updated the README accordingly:
Here's a single-file example from the commandline:
python -m get_cover_art --path=<PATH_TO_AUDIO_FILE>

And here's an example from the Python environment:
from get_cover_art import CoverFinder
finder = CoverFinder()
finder.scan_file(PATH_TO_AUDIO_FILE)

Where PATH_TO_AUDIO_FILE can be an absolute path or a relative path.
If you update to the latest version of get_cover_art, you should be able to run with the above examples.

@regosen thank u for your feedback 🙏


use get_serializer_class for ordering fields

https://github.com/AltSchool/dynamic-rest/issues/180
prefer get_serializer_class method to serializer_class attribute for getting ordering fields

Merged your current master. But it seems something else is now wrong with circleCI, pyenv install -s 3.5.3 fails.

@aleontiev Sorry, I've been on vacation :-) Merged your master, all tests are green.

@aleontiev could you bump the version number and also update it on pypi?


Form OpenColorIO configs working group

Form working group to discuss creation and management of OCIO-curated configs, and in particular direction for a new ACES config.

@KelSolaar @mlfp @scoopxyz @doug-walker we should discuss how to proceed. Do any of you have interest in leading a working group for this effort? I think it will be good to get a meeting on the books to discuss first steps.

Hi,
I was not blessed with a lot of spare cycles lately (ACES VWG, Colour, GSoC, etc...) and I don't know if I will have time to lead the effort with the attention required.
However, I started to look at some stuff, mostly related to discovering the transforms in ACES-dev: https://github.com/colour-science/discover-aces-dev, my hope is to build-up on something like that to auto-magically generate most of the required ColorSpaces.
Certainly keen to be part of any meeting :)

Steering the pot a bit more while there is momentum, found some spare cycles to continue poking at the discovery thing, uncovering unpleasant surprises doing so: https://github.com/ampas/aces-dev/issues/118
Here is an abridged log of the transformations the discovery process is able to find:
https://gist.github.com/KelSolaar/0c534f01507b8735b941624f87032efb

With the OCIO2 meeting on the 18th/19th would it make sense to schedule something not too far?

Thanks @KelSolaar ! Yes we should schedule something soon. One topic we need to discuss in particular is the intentions for what the next gen ACES config will be. In discussions so far there have been two proposed ideas:

ACES "reference" config, which implements only ACES transforms (in theory matching the transforms outlined by your discovery code.

Super config, which is ACES-based, but fulfills the role the current ACES configs hold by providing a wide range of transforms which are useful for production. This config plays a particularly important role for studios that want to leverage OCIO but don't necessarily have a color expert in-house to develop something custom from a reference config.

My opinion is that we should create both of these, and that they can probably share the same generation code base. To look at it in programming terms, The ACES reference config is the base class, and the super config is the ready-to-use implementation.
What about scheduling a Zoom meeting this coming Friday at 4pm EST (1pm PST)? That's the typical ASWF time zone convergence hour. The goals of the meeting will be to establish some initial direction so that those that have time to contribute can start investigations and/or prototypes, or at least to figure out next steps.

Plan sounds good and along the lines of what I had in mind!
Time is fine albeit being on weekend:

https://www.timeanddate.com/worldclock/converter.html?iso=20200612T200000&p1=tz_et&p2=264

Cool. Thanks for pointing out my timezone miss... let's not do Saturdays. What about next week, Tuesday (your Wednesday)? Ideally it's far enough out to give notice to all interested parties. Other days can work too if something is better on your calendar.

Wednesday works!

ocio-dev event:
https://lists.aswf.io/g/ocio-dev/viewevent?eventid=834599&calstart=2020-06-16

Tempted to say that this one is very much covered! :)


Add support for sending sync success pings to health monitor services

Is there an existing issue for this?

[X] I have searched the existing issues

Feature Description
There's not any easy way currently to know when something has gone wrong during syncing when Recyclarr is running in cron mode, without manually checking in every so often.
It would be ideal if there was an option to send success success pings (or failures if preferred) to something like healthchecks.io or any similar sites, which would give an obvious warning that something needs fixed.

Hey thanks for the report. Could you give some examples of the kinds of failures you've observed that would call for this?
Something potentially useful to you is the notifications work I'm doing (#114). I plan to set this up so that every sync performed results in a "report" sent via notification, which will indicate success or failure.
Normally health checks are for "running services". In this case, Recyclarr itself isn't continuously running, so it might not be a good fit. But notifications might be what you're looking for.
Let me know.

Ahhh yeah, that's exactly what I was looking for! Sorry, I'd searched a bunch of keywords for that but notifications wasn't one of them I guess!
The healthchecks.io site I mentioned works exaclty like that, generating a URL which can be hit whenever a process is completed, only giving a notification if that process doesn't check in after an expected delay. So that notifications support would be ideal when it's finished off!

Thanks for getting back with me so quickly. If it's all the same to you, I'll go ahead and mark this one as a duplicate. I'll be sure to give healthchecks.io a look as well to see if I can incorporate anything from there.


Help wanted, how to move to the next cell?

Thanks for your extension! Like mentioned in the title, I find I cannot jump to the next cell with j(also not for n as I mapped), I wonder how to set it.
By the way I want to map ' to :, how to achieve it?
Here is my vimrc file
{
    // vimrc
    // jupyterlab-vimrc:vimrc
    // Settings to be applied to codemirror vim mode
    // *********************************************

    // imap commands
    // [lhs, rhs] - e.g. "imap": [["ii", "<Esc>"]]
    "imap": [],

    // inoremap commands
    // [lhs, rhs]
    "inoremap": [
        []
    ],

    // nmap commands
    // [lhs, rhs]
    "nmap": [],

    // nnoremap commands
    // [lhs, rhs]
    "nnoremap": [
        ['n','j'],
        ['e','k'],
        ['i','l'],
        ['m','n'],
        ['k','m'],
        ['f','e'],
        ['t','f'],
        ['l','u'],
        ['u','i'],

        ['N','J'],
        ['E','K'],
        ['I','L'],
        ['M','N'],
        ['K','M'],
        ['F','E'],
        ['T','F'],
        ['L','U'],
        ['U','I'],

    ],

    // vmap commands
    // [lhs, rhs]
    "vmap": [],

    // vnoremap commands
    // [lhs, rhs]
    "vnoremap": []
}

Hi @BenSYZ

Thanks for your extension!

Thanks for using it!

I find I cannot jump to the next cell with j(also not for n as I mapped), I wonder how to set it.

Oh huh that is pretty weird. I would have though that what you are doing would work. What's extra wild is that even just adding the n->j mapping also breaks switching cells with k. Also if I set this manually from inside the cell with :nmap n j the same breakage does not occur.
I think this is some sort of bad interaction between this extension and the jupyterlab-vim extension that special cases j and k in order to have moving up and down see: https://github.com/axelfahy/jupyterlab-vim/blob/c4e43f940ef4be4c961608b6192412d2f3a33d1f/src/index.ts#L164-L173 I will try to find time to think about this week though I may not be able to get to this until this weekend. One workaround in the meantime may be to fork jupyterlab-vim, change the lines I linked to use n and m instead of j and k, and then install that dev version. I know that is not ideal but I'm a little mystified at the moment about how to best resolve this.
Also, I assume you are using

By the way I want to map ' to :, how to achieve it?

I imagine you only want to remap this in visual mode and normal mode? If so you should use the nmap and vmap commands (noremap didn't for me for this) with this remapping: ['\'', ':']
    'nmap' : [
        ['\'', ':']
    ],
    'vmap' : [
        ['\'', ':']
    ]

ok wow turns out i have a better workaround. I think this is something pathological due to have the jupyterlab-vim extension does a whole bunch of defining vim operations everytime you change cells in vim. I find that you can get it work with the following:

use nmap instead of nnoremap (not sure why but this is key)
after you change the settings use the mouse to change the active cell at least once
you will be able to switch cells

In this gif I am using n to move down cells:

I'm not sure exactly what is causing this weird behavior, but wiht jlab3 there will more support for notebook vim in core and I think that this issue may be resolved naturally by that.

Thanks for your constructive and clear suggestions. Both two way works well. Using nmap rather nnormap is a bit like that in VIM, you need nnmap for the key shortcut of calling a function.


Added a new complex sample

Hi
I've been using this for a couple of weeks and I wanted to contribute.
This is more or less the project structure I'm using for a complex topology inside a web app.
I think it could help newcomers to get up and running with a fairly complete boilerplate
this sample:

Sets up a project structure, and a way to define topologies
Includes a solution with a test project
Includes a docker compose file with all the needed dependencies

Hi @pitermarx ,
Thanks for your PR. I created a repository dedicated for samples here.
I think that would be the best place to do your PR.

Closing this
opened new PR
https://github.com/LGouellec/kafka-streams-dotnet-samples/pull/2


Use of deprecated API in BlurringView

This has caused my Android builds to fail countless times. I think the code analysis-related error would go away if the code did not use a deprecated API.
Note: C:\cygwin64\home\james\code\winescan\Prototype\node_modules\react-native-blur\android\src\main\java\com\cmcewen\blurview\BlurringView.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
:react-native-blur:compileReleaseJavaWithJavac FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':react-native-blur:compileReleaseJavaWithJavac'.
> Could not open local class set analysis write cache (C:\cygwin64\home\james\code\winescan\Prototype\android\.gradle\2.14.1\tasks\_react-native-blur_compileReleaseJavaWithJavac\localClassSetAnalysis).
   > java.io.FileNotFoundException: C:\cygwin64\home\james\code\winescan\Prototype\android\.gradle\2.14.1\tasks\_react-native-blur_compileReleaseJavaWithJavac\localClassSetAnalysis\localClassSetAnalysis.lock (Access is denied)

@jamesqo  did you solved this issue

this is a blocker guys


Remove template comment in SECURITY.md

Description
This PR removes a leftover comment from the security template in the SECURITY.md file
Type of change

Wiki/Docs-Update

Screenshots

npm run lint passes. There seems to be an issue with the github actions and an external service returning 503 so it is failing. Nothing to to with your PR though.

Yes, everyone suffer from the issue for more than 3 hours.
https://github.com/bahmutov/npm-install/issues/80
It is also the reason why I don't put the whole deployment process or write any complicated steps on GitHub Actions. If GitHub Actions goes wrong, then you cannot run those steps in other environments. It is a good time to say GitHub Actions is a bad thing.

According to the GitHub Statuspage, "GitHub Actions is experiencing degraded performance". Maybe this is related?

According to the GitHub Statuspage, "GitHub Actions is experiencing degraded performance". Maybe this is related?

Yep. It is a cache issue that causes the 503 error


World coordinates take 4

Description
This PR supersedes #1532 and #1276 and now implements a global world coordinates.
Most notably the points and range properties of the dims model are now in world coordinate. These can be positive, negative, floats etc. The step and nsteps properties are in the slider coordinates and are non-negative integers.
The dims model understands how to convert a point in world coordinates to a step in the slider and vice-versa.
Given a point in world coordinates the layer understands how to convert that back to data coordinates for slicing. This is done in the new _slice_indices property.
Given slice indices the layer can recognize them as out of bounds for a dense array like layer (image/ labels) or ignore them for points/ shapes.
I've only tried this PR with image so far, so this is still a WIP.
This PR will actually make it pretty easy to pull off the dims model from the individual layers, but I might wait to do that in a refactor only PR.
I need to add comprehensive tests. There are still maybe so "rounding" problems at the very top/ bottom of stacks when scaled. I also need to check the roll dims works fine and the camera setting appears like it needs a fix or two. Once this is in I am going to return to #854 the camera model, which I can't wait for.
To see the effect of the new behavior you can try
blobs_raw = data.binary_blobs(length=64, n_dim=3, volume_fraction=0.1)
# two arrays should be "stacked on top" of each other in Z
viewer.add_image(blobs_raw, colormap='blue')
viewer.add_image(blobs_raw, translate=[64, 0, 0], blending='additive', colormap='red')

which gives

note now how you scroll first through the blue then through the red in z while in 2d rendering mode. This most concretely fixes #659 from @d-v-b. I still need to check that things like #1369 from @Czaki are fixed too.
This might still need more work before it is ready to play with, but an end here to finally adding world coordinates should be in sight!!
Type of change

[x] Bug-fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)

References

How has this been tested?

[ ] example: the test suite for my feature covers cases x, y, and z
[ ] example: all tests pass with my change

Final checklist:

[ ] My PR is the minimum possible work for the desired functionality
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works

You could take tests from #1488 for check round rules for Dims. After finish this PR it may supress #1488 also.

You could take tests from #1488 for check round rules for Dims. After finish this PR it may supress #1488 also.

Yes @Czaki I was just looking at that. This PR drops the dims.indices property, replacing it with the layer._slice_indices, but I still need to do a rounding operation inside there. I'm actually taking a floor operation as it gives the best results with data like this
blobs_raw = data.binary_blobs(length=64, n_dim=3, volume_fraction=0.1)
viewer.add_image(blobs_raw, colormap='blue')
viewer.add_image(blobs_raw[::2], scale=[2, 1, 1], blending='additive', colormap='red')

causing them to nicely overlap for every value of the slider. See https://github.com/napari/napari/pull/1539/files#diff-9ef2d7d09674e6ab30a1456a11fd74a8R445-R446
It also looks to me like #1369 is now fixed - can you confirm that too?
I'm going to start working on tests now (fixing broken/ adding new) and looking at layers aside from image, but it seems to me like most basic behaviour is now working, so trying it out in the real world @Czaki @d-v-b @GenevieveBuckley @jni would be appreciated.
After this merges I think there will be more clean up PRs where we might simplify some things organizationally, maybe drop layer.dims, but this PR should now have the desired functionality with all the coordinate system bugs fixed at the end of it!!

I'm during vacation till next saturday but i will try to find time and check it.

I have gone through and fixed all the tests. I've also taken the plunge to make layer.dims private layer._dims. A user should no longer interact with layer.dims and instead call layer._slice_dims (which we might want to rename, and which will ultimately be taken off the layer).
I will probably add more dedicated world coordinates tests, but this is ready for some initial review @kevinyamauchi @tlambert03 @jni

@sofroniewn here's a little test that I haven't formalised, perhaps you have ideas on how to do so:
from skimage import data, color
import napari

with napari.gui_qt():
    viewer = napari.view_image(astro := data.astronaut(), rgb=True)
    viewer.add_image(
        gray_astro := color.rgb2gray(astro[::2, ::2]),
        scale=[2, 2],
        opacity=0.7,
    )

Now, zoom in on the top left corner, and you'll notice that the coordinates don't quite line up. Move your cursor to a position near a pixel transition, and then switch layers: the coordinate will be different for the different layers:

This is a sad consequence of our choice (which I still defend, but complicates things in this use case) of using 0, 0 as the pixel centre coordinates. Then, when layers have different scales, if you want to make the squares line up, you have to have a translation on the lower-resolution layers.
Right now, the squares line up, probably because the -0.5 correction to go from our coordinates to VisPy coordinates is done before scaling.
But, to have "real" world coordinates, I think the coordinates under the cursor should be constant regardless of which layer is selected.

This is a sad consequence of our choice (which I still defend, but complicates things in this use case) of using 0, 0 as the pixel centre coordinates. Then, when layers have different scales, if you want to make the squares line up, you have to have a translation on the lower-resolution layers.
Right now, the squares line up, probably because the -0.5 correction to go from our coordinates to VisPy coordinates is done before scaling.
But, to have "real" world coordinates, I think the coordinates under the cursor should be constant regardless of which layer is selected.

Ah yes - ok I have not attempted to address any of that in this PR. I think we should view this PR then as scoped to fix #659 and then press on with more world coords PRs afterwards. I'll rename this PR as such

This PR definitely addresses the case where arrays are translated by an integer quantity, but stuff gets a little wonky if you shift an array by a floating point quantity like 0.1 -- when I modify nick's example with floats instead of integer shifts, I get non-deterministic behavior from the axis slider, and inaccurate position information from the slider status area. I'm not sure if fixing this behavior is in-scope for this PR though.

This PR definitely addresses the case where arrays are translated by an integer quantity, but stuff gets a little wonky if you shift an array by a floating point quantity like 0.1 -- when I modify nick's example with floats instead of integer shifts, I get non-deterministic behavior from the axis slider, and inaccurate position information from the slider status area. I'm not sure if fixing this behavior is in-scope for this PR though.

That's useful feedback, thanks. I'll try and reproduce. I can try and make some improvements in this PR, I'll report back. If you had a use case where it goes wrong and is obvious what the correct behaviour should be feel free to share!!

If you had a use case where it goes wrong and is obvious what the correct behaviour should be feel free to share!!

Here's the example where stuff got wonky:
import numpy as np
im = np.ones((3,3,3))
im[1,1,1] = 0
viewer.add_image(im, colormap='blue', rgb=False)
viewer.add_image(im, translate=[0.1, 0, 0], blending='additive', colormap='red', rgb=False)

The slider breaks here in a funny way -- the slider status indicates that there are 3 total planes (0 - 2), i.e. starting at slice 0 and incrementing the slider twice should take you to the end of the range. However, I can use my arrow keys to increment the slider three times, but the last increment doesn't update the slider status (it says 2|2 before the last increment, and after it). But this extra incrementing of the slider has somehow changed the inner state of the slider such that increments / decrements show me different slices of data. It's kind of hard to describe, it might be best just to play with my example.
As for what the "correct" behavior would be, for two arrays with a relative offset of .1, it seems like the slider for that axis should increment with a step size of at least 0.1. This requires a bit of a re-implementation of sliders -- if sliders operate in world coordinates (which they should), then the effect of changing a slider cannot just be array indexing at some integer index. Instead, the effect of changing a slider should be data resampling at some floating point position. But I can understand if that doesn't happen in this PR.

It's kind of hard to describe, it might be best just to play with my example.

Yup I can reproduce the "funky" behavior, agreed something needs to be fixed.

As for what the "correct" behavior would be, for two arrays with a relative offset of .1, it seems like the slider for that axis should increment with a step size of at least 0.1.

There is now data at Z= [0, 0.1, 1, 1.1, 2, 2.1]. One option is that the slider now has increments of 0.1 and every option between [0, 2.1] is available, but most slider positions show the "same" data, i.e. a slider of 0.3 and 0.4 show the same as a 0 and 0.1, when you hit 0.5 one transitions and the other doesn't.
Another option is to just have slider increments of 1.0 and only 3 states [0, 1, 2] and always round.
I'll give that first one a go. It will be important to think about images of different scales/ translations too, and also make sure we don't get in some crazy rounding error problems with translations of 0.9999 giving us increments of 0.0001

Ok, I've cleaned up the "funky" behaviour with the extra slider positions, that was just a bug.
As to now whether the increment is 0.1 vs 1.0 for the above example and how to do the rounding, right now the increment is 1.0 and rounding is based on to the nearest int (note 0.5 gets rounded down to 0 by default by numpy).
If you want to see what a finer increment looks like in the above example you can do viewer.dims.set_range(0, (0, 3.1, 0.1))
It's not clear to me which is preferable, feedback welcome

This requires a bit of a re-implementation of sliders -- if sliders operate in world coordinates (which they should), then the effect of changing a slider cannot just be array indexing at some integer index. Instead, the effect of changing a slider should be data resampling at some floating point position.

This has now been done. Sliders themselves are still discrete the slider (as all sliders in Qt are under the hood) and for convenience they are taken to have a min value of 0 a max value of N and a step size of 1. A given position of the slider is then mapped into a world coordinate space according the the relevant offsets and scalings, this value is now a float. That float is then mapped into the appropriate integer slicing indices for each layer according to the the inverse of its data to world transform. I think this now matches the expectations of @d-v-b and others right?
In the context of the above, the only question left is how fine to make the slider, and whether the fineness of the slider should take the translation into account.
Note that the numbers to the right of the slider are now in slider coordinates, and the full mapping goes slider -> world -> data.
More input welcome, i'd really like us to wrap at least this part up!!

Just adding here that to change the step size of a particular axis while keeping the world extent constant you can call
viewer.dims.set_range(axis, (viewer.dims.range[axis][0], viewer.dims.range[axis][1], new_step))

This PR now has dedicated testing for the translation/ scaling in napari/components/_tests/test_world_coordinates.py including full slicing through every available z step. This was the last thing I wanted to add. It is now ready for more real world testing and final review.

@sofroniewn , this is awesome! I spent some time playing around with translating and scaling images and things seem to largely work as I would expect. I listed a couple of comments below and I will take a closer look tomorrow.
Do you think we can extend the translation to include the out of plane dimensions? For example if I have a 2D image, it would be great if I could translate it within a 3D volume. I suppose the trick is to specify which dimensions are the out of plane dimensions. Perhaps maybe the scale argument could be used? I think it's a bit of an odd usage of scale, but maybe  something like:
# add a 2D image with the data parallel with axes 1 and 2.
# translate the image 10 units along axis 0
viewer.add_image(image, translate = [10, 0, 0], scale = [0, 1, 1])

Also, in the future, I think it would be nice if the displayed index for the current slider "step" could be float. For example, if I am scrolling through a movie acquired at 10 Hz, ideally each step could be 0.1 s or 100 ms.

It looks like this PR works in my case.
And I need to prepare to upgrade to napari 0.3.7

@sofroniewn , this is awesome! I spent some time playing around with translating and scaling images and things seem to largely work as I would expect. I listed a couple of comments below and I will take a closer look tomorrow.

Thanks @kevinyamauchi sounds good!!

It looks like this PR works in my case.

Great, thanks fro checking @Czaki!

And I need to prepare to upgrade to napari 0.3.7

Yes, @Czaki i'm hoping we release fairly soon. At this point I want to get the current PRs labeled as 0.3.7 in and no more.

And I need to prepare to upgrade to napari 0.3.7

Yes, @Czaki i'm hoping we release fairly soon. At this point I want to get the current PRs labeled as 0.3.7 in and no more.

What I such change in this line?:
self.viewer.dims.events.axis.connect(self._view_changed, position="last")

Because this PR remove axis from EventGroup. It is renamed somehow?

Because this PR remove axis from EventGroup. It is renamed somehow?

Try
self.dims.events.step.connect

There isn't a 1-1 emit correspondence, so if it doesn't work I can help more

Try
self.viewer.dims.events.step.connect(...)

There isn't a 1-1 emit correspondence, so if it doesn't work I can help more

I will try. Could you add 0.3.6 tag in your repository? this will simplify testing. now I have:
ERROR: partseg 0.11.2.dev5+g795e018.d20200817 has requirement napari>=0.3.6, but you'll have napari 0.1.dev821+gd8adf16 which is incompatible.

Could you add 0.3.6 tag in your repository? this will simplify testing

This sounds like a very reasonable request. I actually don't know how to implement this. Maybe you can make a PR and then @jni can review. Sounds like it will be helpful to many people!

I'm confused — the 0.3.6 tag is present here, one just needs to fetch it? It's annoying that tags aren't fetched automatically, but there's little we can do on our end afaik? Other than maybe documenting it in our developer notes...

pip install git+https://github.com/napari/napari.git works well and provide proper version Successfully installed napari-0.3.7.dev27+g80ac620 but when install from @sofroniewn fork pip install git+https://github.com/sofroniewn/napari.git@world-coordinates4  its result is Successfully installed napari-0.1.dev821+gd8adf16
Today I found that  pip install git+https://github.com/napari/napari.git@refs/pull/1539/merge works but I'm not shure if everything works properly where there are reported merge conflicts  for this PR.
My only request is to add tag in @sofroniewn orked repository.

Following up to this https://github.com/napari/napari/pull/1539#issuecomment-675112449 from @kevinyamauchi

Do you think we can extend the translation to include the out of plane dimensions? For example if I have a 2D image, it would be great if I could translate it within a 3D volume. I suppose the trick is to specify which dimensions are the out of plane dimensions.

viewer.add_image(stent, name='stent')
viewer.add_image(np.expand_dims(stent[55], axis=0), name='2D_slice', translate=[55, 0, 0], colormap='blue')

The following sort of words to visualize a single 2D slice in 3D data. The blending/ colormaps/ z-ordering don't quite look right, which I think is something that @jni has commented on in the past, but I think we're off to an ok start with room for improvement!

These changes introduce some strange interaction between translation and opacity settings: when using opacity < 1 for a layer that is translated along the slider axis, a mysterious gray pixel appears:

Thanks for catching this @d-v-b, it is because when the slice indices were fully out of range of the data we used a 1^n zero cube, but we should do something else instead.
I have some merge conflicts to fix, and will look into fixing this then

@d-v-b I have fixed the single square transparency bug by adding a layer._empty property for when the slicing is out of the range of the layer data, and things now work as expected:

I have also fixed merge conflicts.@jni this is now ready for review.

@Czaki I have just verified that this fixes #1369 and so can supersede #1488.
@d-v-b I have also verified that this fixes #1572.

Have tested this with our Sentinel satellite images and setting the scale and step_size works as expected, provided the visible scale parameters are 1 in the case of multiscale data. It's actually very nice! Love it.

I'm not sure about the changes to layer.dims. I kinda think they should be reverted. It'll make the PR smaller and afaict won't affect any of the functionality added, right?

Do you mean swapping back to layer.dims instead of layer._dims? I could do that, but now a user shouldn't interact with the layer dims model at all and if they did unexpected or bad things might happen. We also definitely want to pull the dims model off the layer itself as part of our refactors in #1353, so that layers don't have any concept of slicing. Given then that making private seemed like a good idea.

Given then that making private seemed like a good idea.

To me the diff "clutter" doesn't seem worth it. Since all these commits are going to get squashed, for future reference to the PR/commits, it is really useful to keep the changes minimal. I find myself going back to PRs very often to remember how something was implemented.

@sofroniewn in light of your responses and to avoid blocking progress here, I'll approve, but as mentioned in my comments, yes, I do think it's worth reverting the dims->_dims changes before merging. They can and should come as part of #1353 . Thanks!

I have made layer.dims public again, agreed that change was not necessary as part of this PR and the diff is much cleaner without it (though still large!). I'd like to make an immediate followup PR that only makes the layer dims private as I think now is the right time to do it, but can continue discussion on that there!
I've also renamed step to current_step as that was confusing, but havn't changed the step vs point transformation, we can revisit that if the behaviour is counterintuitive / breaks.
I will merge after tests pass and then make the follow-up PR.


Examples: Upload mission from .params

This example is provided by Ascend Engineering which can make uploading whole .params file easier. After the connection to any vehicle instance, the script first caches the parameters from the vehicle and then replaces all with the provided .params file.
@julianoes I have commented some parts. You may take a look and guide us the way which is better to handle params.
cc: @afwilkin

@julianoes looks better now? I made the whole thing under main. Is that ok?

@farhangnaderi I would like to push a couple of commits to this branch but I don't have permission to do so. Could you please check the box that allows pushes from me to this branch/PR?

@farhangnaderi I would like to push a couple of commits to this branch but I don't have permission to do so. Could you please check the box that allows pushes from me to this branch/PR?

done

@afwilkin I didn't really mean to get access. Usually, you can just tick a box to allow this: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork

@afwilkin I didn't really mean to get access. Usually, you can just tick a box to allow this: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork

please let me know if any more changes needed to be done!
Thanks!

@farhangnaderi so you really can't find that box anywhere?

@farhangnaderi so you really can't find that box anywhere?
To answer your question: yes I have commits that I'd like to push but if possible it would be nice to do so without joining the org.

at least not me.

@afwilkin you have it?

@afwilkin should have it, or it might also be disabled org wide somewhere.

Yeah I am digging into this now. I do not see it, but let me check the org.

definitely an org thing

Lol Cool
https://github.com/orgs/community/discussions/5634
Looks like this is not supported. @farhangnaderi feel free to make a new PR from your personal account

Oh, I didn't know that. That's annoying. Thanks for checking @afwilkin. I'll do the org join thing then.

Closing cause of https://github.com/mavlink/MAVSDK-Python/pull/561 !


python packages: add urllib3, needed for barbican task

Signed-off-by: Adam Kupczyk<EMAIL_ADDRESS>

Is this PR still actual?

Due to conflicts, two years old PR, and no response from the author for about month, closing it for now. Feel free to create another PR. Thanks.


Rewind on play

When the animation finishes (and loop is disabled) the time slider stays at the end position (which is ok).
If the user then clicks the play button nothing happens.
Expected: The animation rewinds to the start and the playback restarts.

This is intended. If loop is disabled, the player don't loop.

As a workaround you can register for animationfinished event and rewind the timedimension.
//code not tested
player.on('animationfinished', function(){
 timeDimension.setCurrentTime(timeDimension.getAvailableTimes()[0]);
});

Thanks for this suggestion. This didn't fit my needs because it rewinds the current time (i.e. it hides the last step) but leaves the slider at the end position which is inconsistent.
As a workaround now I register for the play event and reset the current time if getCurrentTimeIndex points to the last available time.

This is strange.
If you change currentTime, timeload event will be fired. The control is listening to this event, and when is fired, it updates the slider position.


Add a Request use statements to the controller

Hiya guys!
Beginners build off of this controller, including copying it to create second/third controllers. Since needing the $request object is so common, and getting it involves type-hinting the Request argument, I think this helps.
Thanks!

Why don't we inject the request directly in the indexAction in addition to your proposal ?
This would really show how to typehint the request

-1 on this, as it does several unnecesary things IMO:

misleads you into thinking that every controller must use the request
generates a codesniffer warning(Class not used)
extra line of code which is nevertheless automaticaly imported by most IDEs

Unfortunately I have seen enough cases of people that do not use phpcs, where they use the request object in every action, without ever needing it.

Maybe the exit here @weaverryan would be to tap into composer scripts to bring in a DefaultBundle of your choosing from a specific training package. I think the standard ditribution already supports this customization?

@cordoval The standard edition installation has changed since the Symfony official installer has been released. The composer scripts are no longer run when you install Symfony this way.

@calinpristavu Thanks for the comments! I have some rebuttals below, but I genuinely appreciate the opinions. For me, I want to make things easier for beginners, but not so easy that they never learn what's going on :)
a) I don't think it misguides into thinking that each controller function needs a request. After all, the one method in this class is not actually using it.
b) I'm ok with introducing one code-sniffer warning on a new project. If you are someone who uses this, you'll quickly go into that class and remove it.
c) It is an extra line of code, but it doesn't hurt anything (and you can't assume people use IDE's, especially beginners in my experience). And actually, as soon as you do need the request (e.g. form processing), having this extra line just saved you some work.
If someone does blindly copy and paste existing actions so that all of their actions include Request $request, that is unfortunate, though not that big of a deal). But, this use statement won't make that better or worse, since I'm not actually adding Request $request to the method.
Cheers!

What about adding this kind of comment:
/**
 * If you need to use request datas such as $_GET or $_POST,
 * just inject the Request object directly in your controller method like this:
 * public function indexAction(Request $request)
 * @link http://symfony.com/doc/current/book/controller.html#the-request-as-a-controller-argument
 */

:+1: for the comment

also +1 for the comment instead of the use statement. I find it less invasive and on point with what the user needs to know about the request object.

If the comment is added, I think that the use statement should be kept in the code, and to avoid the CS issues, we can add some more PhpDoc to propose the use of the Request object, like a @see Request

agree with @weaverryan, merging it.

Thank you @weaverryan.


We should not log activation code

Debugging something else I noticed we emit the activation code in the pachd logs. We shouldn't print this value in the logs.
2018-01-25T15:03:48Z INFO enterprise.API.Activate {"request":{"activation_code":"xxxREDACTEDxxx"}}
2018-01-25T15:03:49Z INFO enterprise.API.Activate {"duration":0.00187107,"request":{"activation_code":"xxxREDACTEDxxx"},"response":{"info":{"expires":{"seconds":1821413229,"nanos":217000000}}}}

Logging code has now been changed to not log sensitive values:
// We don't want to actually log the request/response since they contain
// credentials.
defer func(start time.Time) { a.LogResp(nil, nil, retErr, time.Since(start)) }(time.Now())


[Feature]: Remove '.html' suffix of url links

What problem does this feature solve?

What does the proposed API look like?
nothing

Why do you want to remove the suffix?

Why do you want to remove the suffix?

Make urls shorter and look better

SSG output are html files, so bring .html to make the path more accurate and intuitive

SSG output are html files, so bring .html to make the path more accurate and intuitive

That's no doubt that the output files are html files. And I could also write some nginx rules to remove the '.html' suffix from the url.
BUT what I want is that the urls generated by rspress on sidebar and navbar should clean the '.html' suffix. Becoz It's so weird that there are still the '.html' suffix with the urls when user hover the <a> tag links in 2023, 21st century.

I think it's worth sacrificing URL length for compatibility. After removing the .html suffix, if you jump to a link and want to share the link with others, they may not be able to access the HTML file because there is no .html suffix.

Vuejs: https://vuejs.org/api/

Vuejs: https://vuejs.org/api/

React：https://react.dev/learn/installation

GitBook: e.g. https://react.i18next.com/

Docusaurus: https://docusaurus.io/docs/installation

Electron: https://www.electronjs.org/docs/latest/

MDN: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API

This isn't a competition to prove which method has more adopters, it's just to prove that .html is still widely used.

This isn't a competition to prove which method has more adopters, it's just to prove that .html is still widely used.

OK. Could you provide a trigger to remove the suffix in configuration. It's very helpful and I really appreciate it. Thanks!

Agreed, we should add a cleanUrls option to remove the trailing .html from generated URLs.
Ref: https://vitepress.dev/reference/site-config#cleanurls

https://rspress.dev/api/config/config-basic#routecleanurls
@xalanq The latest version of Rspress now supports route.cleanUrls. Could you please try it out?


IGNITE-13315 use @GridToStringExclude for GridNearTxLocal#txDumpsThro…

…ttling in order to prevent this from being printed into logs
Thank you for submitting the pull request to the Apache Ignite.
In order to streamline the review of the contribution
we ask you to ensure the following steps have been taken:
The Contribution Checklist

[ ] There is a single JIRA ticket related to the pull request.
[ ] The web-link to the pull request is attached to the JIRA ticket.
[ ] The JIRA ticket has the Patch Available state.
[ ] The pull request body describes changes that have been made.
The description explains WHAT and WHY was made instead of HOW.
[ ] The pull request title is treated as the final commit message.
The following pattern must be used: IGNITE-XXXX Change summary where XXXX - number of JIRA issue.
[ ] A reviewer has been mentioned through the JIRA comments
(see the Maintainers list)
[ ] The pull request has been checked by the Teamcity Bot and
the green visa attached to the JIRA ticket (see TC.Bot: Check PR)

Notes

How to Contribute
Coding abbreviation rules
Coding Guidelines
Apache Ignite Teamcity Bot

If you need any help, please email<EMAIL_ADDRESS>or ask anу advice on http://asf.slack.com #ignite channel.

Thanks for the contribution.


Split up ES5 getter/setter transforming and ES6 property methods into separate transformers

@sebmck What was the resolution of this?

@thejameskyle That I did it.


Fix request type related problem in Request class.

Fixed #36 giving explicit type to Promise.reject in Request class.
@Gugic, what do you think?

Ok, if that helps. Unfortunately I can not reproduce issue

Published as .beta-19

Thanks


feat: on image clear attachment event remove attach file.

https://digithinkit.global/desk#Form/Task/TASK-2019-00793
on image clear attachment event remove attach file
Before:

After:

depends on for employee https://github.com/DigiThinkIT/erpnext/pull/266

Pull Request Test Coverage Report for Build 733

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 46.051%

Totals

Change from base Build 731:
0.0%

Covered Lines:
18172

Relevant Lines:
39461

💛  - Coveralls

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 2

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 5

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 2

See the complete overview on Codacy

for hotfix: https://github.com/frappe/frappe/pull/9068
for pre relase https://github.com/frappe/frappe/pull/9069


[FeatReq] Different cmd per mode - like keybindings

I am new to vim with lua so this may make no sense... Lets do simple example: saving buffer.
In normal mode it is: :w<CR>
In insert mode it is: <Esc>:w<CR>a
And I would for example map those both to <c-s>
Now (I think) there is no way of adding this to the command center.
There is an option to add different keybinding per mode you are in, so for example  you can run a command just by s in normal but <c-s> in insert but in both cases the command is the same, there is no way of passing different command for each mode.
I think it would be great addition to be able to invoke different commands dependent the mode you are currently in. What do you think?
The workaround I am currently thinking is to write lua function that will decide inside which cmd to run and pass the function to the command center, but I think CC should natively support this ;)

To achieve this, you just need
command_center.add({
  {
    des = "save",
    cmd = "<CMD>w<CR>",
    keys = {
      {"n", "s" },
      {"i", "<C-s>" },
  }
})


[Bug]: Understand and mitigate the source of Index latency increase in  2.0-RC

Describe the bug
While running performance tests for 2.0-RC1, we saw an indexing latency appear to increase by ~13%.  This issue is to investigate the source of the increase so we can propose ways to mitigate it.
https://github.com/opensearch-project/opensearch-build/issues/1624#issuecomment-1109097763
To reproduce
https://github.com/opensearch-project/opensearch-build/issues/1624#issuecomment-1109097763
Expected behavior
No response
Screenshots
If applicable, add screenshots to help explain your problem.
Host / Environment
No response
Additional context
No response
Relevant log output
No response

@CEHENKLE @dblock @kotwanikunal Whats the current status of this issue? Did we find the root cause of the performance issue?

CC'ing @andrross as he was actively looking into it.

I am actively working on it. The status is that the latency and throughput difference between 1.3 and 2.0 has disappeared with runs against recent builds. However, it appears that the cause is that 1.3 has gotten slower.

I'm still working on this, but my theory is that a change in Java versions and/or the default garbage collector is introducing the differences here.

@andrross The G1GC fix was backported into 1.3 and should be part of 1.3.2, https://github.com/opensearch-project/OpenSearch/pull/2971

@dblock Yes, we see the impact of G1GC clearly in the "old" GC metrics:

However, the indexing latency and throughput metrics also get roughly 20% worse at the same time (for this nyc_taxis workload). What I've found so far is that 1.3 with the concurrent mark sweep collector was about 10% better in indexing latency and throughput than 2.0 for the nyc_taxis workload, which motivated the creation of this issue. However, when both 1.3 and 2.0 are using the G1GC collector, then 2.0 performs better across the board.
Obviously the real world performance of 1.3 with concurrent mark sweep was quite bad so our performance tests seem not to be measuring the right thing. The data right now is showing us that 2.0 is as good or better than 1.3, but we still don't have an answer for why we didn't catch the performance issue in 1.3 that our users saw, and this issue adds further nuance that the nyc_taxi workload actually performs slightly better with the CMS garbage collector.

I have run the stack overflow dataset workload on my test host (c6i.8xlarge). The stack overflow dataset is the recommended workload for testing indexing performance.
Baseline=1.3.2(cms) Contender=2.0.0

Metric
Task
Baseline
Contender
Diff
Unit

Cumulative indexing time of primary shards

162.104
106.691
-55.4129
min

Min cumulative indexing time across primary shard

32.2656
21.0059
-11.2597
min

Median cumulative indexing time across primary shard

32.3427
21.3245
-11.0182
min

Max cumulative indexing time across primary shard

32.6654
21.7234
-10.942
min

Cumulative indexing throttle time of primary shards

0
0
0
min

Min cumulative indexing throttle time across primary shard

0
0
0
min

Median cumulative indexing throttle time across primary shard

0
0
0
min

Max cumulative indexing throttle time across primary shard

0
0
0
min

Cumulative merge time of primary shards

88.8526
63.596
-25.2566
min

Cumulative merge count of primary shards

174
138
-36

Min cumulative merge time across primary shard

15.7588
9.96753
-5.79125
min

Median cumulative merge time across primary shard

17.2805
12.0434
-5.23703
min

Max cumulative merge time across primary shard

19.5352
16.854
-2.6812
min

Cumulative merge throttle time of primary shards

26.424
24.4542
-1.96987
min

Min cumulative merge throttle time across primary shard

3.93945
3.47808
-0.46137
min

Median cumulative merge throttle time across primary shard

5.42332
4.9479
-0.47542
min

Max cumulative merge throttle time across primary shard

7.1664
6.34802
-0.81838
min

Cumulative refresh time of primary shards

4.2662
7.75975
3.49355
min

Cumulative refresh count of primary shards

181
159
-22

Min cumulative refresh time across primary shard

0.809783
1.36788
0.5581
min

Median cumulative refresh time across primary shard

0.851817
1.58917
0.73735
min

Max cumulative refresh time across primary shard

0.91815
1.64808
0.72993
min

Cumulative flush time of primary shards

12.7964
14.9029
2.10652
min

Cumulative flush count of primary shards

75
76
1

Min cumulative flush time across primary shard

2.35905
2.61338
0.25433
min

Median cumulative flush time across primary shard

2.52937
2.89508
0.36572
min

Max cumulative flush time across primary shard

2.76248
3.43557
0.67308
min

Total Young Gen GC time

10.036
5.58
-4.456
s

Total Young Gen GC count

915
474
-441

Total Old Gen GC time

0.393
0
-0.393
s

Total Old Gen GC count

16
0
-16

Store size

51.2623
39.7393
-11.523
GB

Translog size

2.56114e-07
2.56114e-07
0
GB

Heap used for segments

0.89381
0
-0.89381
MB

Heap used for doc values

0.0696449
0
-0.06964
MB

Heap used for terms

0.608337
0
-0.60834
MB

Heap used for norms

0.0374146
0
-0.03741
MB

Heap used for points

0
0
0
MB

Heap used for stored fields

0.178413
0
-0.17841
MB

Segment count

307
265
-42

Min Throughput
index-append
53566.3
62798.3
9232.02
docs/s

Mean Throughput
index-append
60965.4
73708.9
12743.5
docs/s

Median Throughput
index-append
59709.4
72577.6
12868.2
docs/s

Max Throughput
index-append
70211
86479.1
16268
docs/s

50th percentile latency
index-append
337.145
224.911
-112.234
ms

90th percentile latency
index-append
1267.01
892.285
-374.725
ms

99th percentile latency
index-append
2758.81
4656.96
1898.15
ms

99.9th percentile latency
index-append
4146.45
8025.11
3878.66
ms

100th percentile latency
index-append
5103.43
12595.4
7491.94
ms

50th percentile service time
index-append
337.145
224.911
-112.234
ms

90th percentile service time
index-append
1267.01
892.285
-374.725
ms

99th percentile service time
index-append
2758.81
4656.96
1898.15
ms

99.9th percentile service time
index-append
4146.45
8025.11
3878.66
ms

100th percentile service time
index-append
5103.43
12595.4
7491.94
ms

error rate
index-append
0
0
0
%

Baseline=1.3.2(g1gc) Contender=2.0.0

Metric
Task
Baseline
Contender
Diff
Unit

Cumulative indexing time of primary shards

128.098
106.691
-21.407
min

Min cumulative indexing time across primary shard

25.3173
21.0059
-4.31143
min

Median cumulative indexing time across primary shard

25.6093
21.3245
-4.28485
min

Max cumulative indexing time across primary shard

25.9232
21.7234
-4.19985
min

Cumulative indexing throttle time of primary shards

0
0
0
min

Min cumulative indexing throttle time across primary shard

0
0
0
min

Median cumulative indexing throttle time across primary shard

0
0
0
min

Max cumulative indexing throttle time across primary shard

0
0
0
min

Cumulative merge time of primary shards

97.9316
63.596
-34.3357
min

Cumulative merge count of primary shards

157
138
-19

Min cumulative merge time across primary shard

15.6794
9.96753
-5.71183
min

Median cumulative merge time across primary shard

19.4528
12.0434
-7.40937
min

Max cumulative merge time across primary shard

23.2481
16.854
-6.39408
min

Cumulative merge throttle time of primary shards

30.7512
24.4542
-6.29702
min

Min cumulative merge throttle time across primary shard

3.62893
3.47808
-0.15085
min

Median cumulative merge throttle time across primary shard

5.56523
4.9479
-0.61733
min

Max cumulative merge throttle time across primary shard

9.05382
6.34802
-2.7058
min

Cumulative refresh time of primary shards

5.02953
7.75975
2.73022
min

Cumulative refresh count of primary shards

181
159
-22

Min cumulative refresh time across primary shard

0.914183
1.36788
0.4537
min

Median cumulative refresh time across primary shard

1.0008
1.58917
0.58837
min

Max cumulative refresh time across primary shard

1.11332
1.64808
0.53477
min

Cumulative flush time of primary shards

12.353
14.9029
2.54995
min

Cumulative flush count of primary shards

80
76
-4

Min cumulative flush time across primary shard

2.2085
2.61338
0.40488
min

Median cumulative flush time across primary shard

2.30552
2.89508
0.58957
min

Max cumulative flush time across primary shard

2.8126
3.43557
0.62297
min

Total Young Gen GC time

6.137
5.58
-0.557
s

Total Young Gen GC count

518
474
-44

Total Old Gen GC time

0
0
0
s

Total Old Gen GC count

0
0
0

Store size

36.0994
39.7393
3.63989
GB

Translog size

2.56114e-07
2.56114e-07
0
GB

Heap used for segments

0.448589
0
-0.44859
MB

Heap used for doc values

0.0371895
0
-0.03719
MB

Heap used for terms

0.287628
0
-0.28763
MB

Heap used for norms

0.0177002
0
-0.0177
MB

Heap used for points

0
0
0
MB

Heap used for stored fields

0.106071
0
-0.10607
MB

Segment count

145
265
120

Min Throughput
index-append
53857.6
62798.3
8940.71
docs/s

Mean Throughput
index-append
64144.4
73708.9
9564.46
docs/s

Median Throughput
index-append
64871.7
72577.6
7705.95
docs/s

Max Throughput
index-append
75949.1
86479.1
10529.9
docs/s

50th percentile latency
index-append
390.425
224.911
-165.513
ms

90th percentile latency
index-append
1202.99
892.285
-310.707
ms

99th percentile latency
index-append
3176.48
4656.96
1480.49
ms

99.9th percentile latency
index-append
4540.35
8025.11
3484.76
ms

100th percentile latency
index-append
5444
12595.4
7151.37
ms

50th percentile service time
index-append
390.425
224.911
-165.513
ms

90th percentile service time
index-append
1202.99
892.285
-310.707
ms

99th percentile service time
index-append
3176.48
4656.96
1480.49
ms

99.9th percentile service time
index-append
4540.35
8025.11
3484.76
ms

100th percentile service time
index-append
5444
12595.4
7151.37
ms

error rate
index-append
0
0
0
%

Summary Metrics

Metric
1.3.2 (cms)
1.3.2 (g1gc)
2.0.0
Unit

Mean Throughput
60965.4
64144.4
73708.9
doc/s

p50 Index Latency
337.14
390.425
224.911
ms

p99 Index Latency
2758.81
3176.48
4656.96
ms

p99.9 Index Latency
4146.45
4540.35
8025.11
ms

The upshot here is that 2.0.0 offers the best indexing throughput performance and p50 latency. At higher percentiles, then 1.3.2 does better, particularly using the old CMS garbage collector.

@CEHENKLE I assume we can close this issue as we found the root cause of the latency? Can you please confirm?

Closing this issue as we finalized the root cause of the latency.


Add install features; Adapt to GCC 7 build system

This pull request (PR) accomplished the following:

[X] Fixes issue #356.
[X] Adds two new installation features: --only-download and patched-trunk-install.sh.

New features

install.sh now recognizes a --only-download argument.  Examples of its usage include the following:

./install.sh --only-download downloads all prerequisites so that a subsequent ./install.sh execution can proceed without an Internet connection.
To check out the GCC trunk without building it, execute ./install.sh --only-download --package gcc --install-branch trunk.

The new patched-trunk-install.sh script uses the --only-download option to download the requested GCC branch before patching, building, and installing it.

I certify that:

[X] I have reviewed the contributing guidelines
[X] I have deleted trailing white space on any lines that this PR
touches
[X] I have used spaces for indentation on any lines that this PR
touches
[X] I have included some comments to explain non-obvious code
changes
[X] I have signed  Contributor License Agreement (CLA) by
clicking the "details" link to the right of the licence/cla
check and following the directions on the CLA assistant webpage

Summary of changes

Added patched-trunk-install.sh script.
Modified install.sh and supporting scripts to accept the new --only-download argument used by [patch-triunk-install.sh].
Modified the edit_GCC_download_prereqs_file_if_necessary.sh script so it edits GCC's download_prerequisites script to enable the latter script's digital signature verifications to work on macOS.

Rationale for changes
When gfortran developers have responded to a request for a bug fix by producing a patch that they would like the requesting user to test, the steps to build gfortran and OpenCoarrays differ from the usual workflow.  The new script captures and automates those steps. The script is in the developer-scripts folder because it captures a common workflow of advanced users and contributors and it therefore makes assumptions the other installation scripts don't make, e.g., it assumes the presence of package management and can use apt, homebrew, MacPorts, or dnf.
For contributors and SI team members with code review priviledges

[X] I certify that I will wait 24 hours before self-approving via
pullapprove comment or Github code review so that someone
else has the chance to review my proposed changes

@zbeekman This pull request has a long trail of intermediate commits that are crying out for squashing.  If you have any thoughts on how or whether to squash before merging or while merging, feel free to share.  If no one has any objections, I'm going to self-approve soon after the 24-hour window expires and then I'd very much like to get a release out early this week because this pull request fixes an issue (#356) on master that prevents using our install scripts to build unreleased GCC branches such as the trunk.  It can be a temporary unsigned release if necessary.

I believe the one runtime test failure reported by Travis-CI is a known issue and is unrelated to the build system changes in this PR so I'll still merge after the 24-hour  period unless anyone expresses concerns.

LGTM


Fix the css hiding the checkbox on the redactor link

Coverage remained the same at 95.738% when pulling 8e9d345ff127d3afd9dbb699cf778b3b541e0b14 on fix-missing-blank-checkbox into cfc220d0acf7211b4fc208621655cea257d7c052 on master.


16 UNAUTHENTICATED: Failed to retrieve auth metadata

I'm trying to use the gcp option, but when configuring private-key and email it gives the error when converting the audio.
Convert to audio (0/1)
→ 16 UNAUTHENTICATED: Failed to retrieve auth metadata with error: error:0909006C:PEM routines:get_name:no start line
The command used is
echo 'Text test' | tts /var/lib/docker/volumes/azuracast_station_data/_data/radio_luna/Noticias_Rss/Noticias_Rss-ok.mp3 --email<EMAIL_ADDRESS>--private-key key generated in the service --service gcp --voice en-BR -Wavenet-B

I changed the scheme to authenticate by .json file and it also gives the same error.

The PEM error makes it sound like your private key is malformed. Double-check that it is in PEM or PKCS#12 format. See https://github.com/eheikes/tts/blob/master/packages/tts-cli/docs/options.md#--private-key----private-key-file.
You can use a tool like openssl to confirm the format, e.g.:
openssl rsa -text -in your-private-key.pem -noout


Avoid cloning source code multiple times

Summary
In working on https://github.com/astral-sh/ruff/pull/6628, I noticed that we clone the source code contents, potentially multiple times, prior to linting. The issue is that SourceKind::Python takes a String, so we first have to provide it with a String. In the stdin case, that means cloning. However, on top of this, we then have to clone source_kind.contents() because SourceKind gets mutated. So for stdin, we end up cloning twice. For non-stdin, we end up cloning once, but unnecessarily (since the contents don't get mutated, only the kind).
This PR removes the String from source_kind, instead requiring that we parse it out elsewhere. It reduces the number of clones down to 1 for Jupyter Notebooks, and zero otherwise.

It feels awkward to me too, but I didn’t want to do anything more invasive. I want to see if we can remove the contents from Notebook, perhaps, which would make the responsibilities clearer.

@MichaReiser - I made some improvements based on your suggestions but LMK how you want to proceed (e.g., whether you want to spend time on this, or want me to do so, or want to merge and revisit later).

Current dependencies on/for this PR:

main

PR #6629   👈

PR #6640

This comment was auto-generated by Graphite.


Completions failure

Issue Description
None of the code actions are available
Steps to Reproduce
I can currently revert to 1.24 version to make this work. Version 1.25 fails code completions with the following in the Omnisharp log
Expected Behavior
Actual Behavior
Logs
OmniSharp log
       ************ Request ************
{
  "Type": "request",
  "Seq": 1500,
  "Command": "/v2/getcodeactions",
  "Arguments": {
    "FileName": "<Path to my CS file - Scrubbed>",
    "Line": 11,
    "Column": 79
  }
}
[fail]: OmniSharp.Stdio.Host
        ************  Response (4.5074ms) ************
{
  "Request_seq": 1500,
  "Command": "/v2/getcodeactions",
  "Running": true,
  "Success": false,
  "Message": "\"System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.\\r\\nCould not load type 'System.Data.SqlClient.SqlAuthenticationProvider' from assembly 'System.Data, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b77a5c561934e089'.\\r\\nCould not load type 'System.Data.SqlClient.SqlAuthenticationToken' from assembly 'System.Data, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b77a5c561934e089'.\\r\\nCould not load type 'System.Data.SqlClient.SqlAuthenticationToken' from assembly 'System.Data, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b77a5c561934e089'.\\r\\n   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)\\r\\n   at System.Reflection.RuntimeAssembly.get_DefinedTypes()\\r\\n   at System.Linq.Enumerable.SelectManySingleSelectorIterator`2.MoveNext()\\r\\n   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()\\r\\n   at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()\\r\\n   at System.Collections.Generic.LargeArrayBuilder`1.AddRange(IEnumerable`1 items)\\r\\n   at System.Collections.Generic.SparseArrayBuilder`1.ReserveOrAdd(IEnumerable`1 items)\\r\\n   at System.Linq.Enumerable.Concat2Iterator`1.ToArray()\\r\\n   at System.Collections.Immutable.ImmutableArray.CreateRange[T](IEnumerable`1 items)\\r\\n   at OmniSharp.Roslyn.CSharp.Services.Refactoring.V2.CachingCodeFixProviderForProjects.LoadFrom(Project project) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Roslyn.CSharp\\\\Services\\\\Refactoring\\\\V2\\\\CachingCodeFixProviderForProjects.cs:line 95\\r\\n   at OmniSharp.Roslyn.CSharp.Services.Refactoring.V2.CachingCodeFixProviderForProjects.GetAllCodeFixesForProject(ProjectId projectId) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Roslyn.CSharp\\\\Services\\\\Refactoring\\\\V2\\\\CachingCodeFixProviderForProjects.cs:line 47\\r\\n   at OmniSharp.Roslyn.CSharp.Services.Refactoring.V2.BaseCodeActionService`2.GetSortedCodeFixProviders(Document document) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Roslyn.CSharp\\\\Services\\\\Refactoring\\\\V2\\\\BaseCodeActionService.cs:line 170\\r\\n   at OmniSharp.Roslyn.CSharp.Services.Refactoring.V2.BaseCodeActionService`2.AppendFixesAsync(Document document, TextSpan span, IEnumerable`1 diagnostics, List`1 codeActions) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Roslyn.CSharp\\\\Services\\\\Refactoring\\\\V2\\\\BaseCodeActionService.cs:line 166\\r\\n   at OmniSharp.Roslyn.CSharp.Services.Refactoring.V2.BaseCodeActionService`2.CollectCodeFixesActions(Document document, TextSpan span, List`1 codeActions) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Roslyn.CSharp\\\\Services\\\\Refactoring\\\\V2\\\\BaseCodeActionService.cs:line 136\\r\\n   at OmniSharp.Roslyn.CSharp.Services.Refactoring.V2.BaseCodeActionService`2.GetAvailableCodeActions(ICodeActionRequest request) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Roslyn.CSharp\\\\Services\\\\Refactoring\\\\V2\\\\BaseCodeActionService.cs:line 94\\r\\n   at OmniSharp.Roslyn.CSharp.Services.Refactoring.V2.GetCodeActionsService.Handle(GetCodeActionsRequest request) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Roslyn.CSharp\\\\Services\\\\Refactoring\\\\V2\\\\GetCodeActionsService.cs:line 40\\r\\n   at OmniSharp.Endpoint.EndpointHandler`2.GetFirstNotEmptyResponseFromHandlers(ExportHandler`2[] handlers, TRequest request) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Host\\\\Endpoint\\\\EndpointHandler.cs:line 218\\r\\n   at OmniSharp.Endpoint.EndpointHandler`2.HandleRequestForLanguage(String language, TRequest request, RequestPacket packet) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Host\\\\Endpoint\\\\EndpointHandler.cs:line 234\\r\\n   at OmniSharp.Endpoint.EndpointHandler`2.Process(RequestPacket packet, LanguageModel model, JToken requestObject) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Host\\\\Endpoint\\\\EndpointHandler.cs:line 143\\r\\n   at OmniSharp.Stdio.Host.HandleRequest(String json, ILogger logger) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Stdio\\\\Host.cs:line 258\\r\\nSystem.TypeLoadException: Could not load type 'System.Data.SqlClient.SqlAuthenticationProvider' from assembly 'System.Data, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b77a5c561934e089'.\\r\\nSystem.TypeLoadException: Could not load type 'System.Data.SqlClient.SqlAuthenticationToken' from assembly 'System.Data, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b77a5c561934e089'.\\r\\nSystem.TypeLoadException: Could not load type 'System.Data.SqlClient.SqlAuthenticationToken' from assembly 'System.Data, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b77a5c561934e089'.\"",
  "Body": null,
  "Seq": 2360,
  "Type": "response"
}

C# log
Post the output from Output-->C# here
Environment information
VSCode version: 1.67.2
C# Extension: 1.25.0
Dotnet Information
.NET SDK (reflecting any global.json):
 Version:   6.0.203
 Commit:    a20feadf6d
Runtime Environment:
OS Name:     Windows
OS Version:  10.0.22000
OS Platform: Windows
RID:         win10-x64
Base Path:   C:\Program Files\dotnet\sdk\6.0.203\
Host (useful for support):
Version: 6.0.5
Commit:  70ae3df4a6
.NET SDKs installed:
6.0.105 [C:\Program Files\dotnet\sdk]
6.0.203 [C:\Program Files\dotnet\sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 6.0.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 6.0.5 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
To install additional .NET runtimes or SDKs:
https://aka.ms/dotnet-download

Visual Studio Code Extensions

Extension
Author
Version

code-spell-checker
streetsidesoftware
2.2.0

copilot
GitHub
1.24.6022

csharp
ms-dotnettools
1.25.0

gitlens
eamodio
12.0.7

markdown-mermaid
bierner
1.14.0

powershell
ms-vscode
2022.5.1

@vidommet Can you please share a more complete OmniSharp log? Need to see it to understand how your projects are being loaded.

Shared the log as requested.

Shared the log as requested.

@vidommet Where did you share it? In particular I need from the start of the log until the projects have been completely loaded.

The same on my end.
Starting OmniSharp server at 7/19/2022, 6:22:57 PM
    Target: d:\Temp\b

OmniSharp server started with .NET 6.0.400-preview.22330.6
.
    Path: c:\Users\nikol\.vscode\extensions\ms-dotnettools.csharp-1.25.0-win32-x64\.omnisharp\1.39.0-net6.0\OmniSharp.dll
    PID: 21212

[info]: OmniSharp.Stdio.Host
        Starting OmniSharp on Windows 10.0.22000.0 (x64)
[info]: OmniSharp.Services.DotNetCliService
        Checking the 'DOTNET_ROOT' environment variable to find a .NET SDK
[info]: OmniSharp.Services.DotNetCliService
        Using the 'dotnet' on the PATH.
[info]: OmniSharp.Services.DotNetCliService
        DotNetPath set to dotnet
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Located 2 MSBuild instance(s)
            1: .NET Core SDK 6.0.400 17.3.0 - "C:\Program Files\dotnet\sdk\6.0.400-preview.22330.6\"
            2: .NET Core SDK 6.0.302 17.2.0 - "C:\Program Files\dotnet\sdk\6.0.302\"
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Registered MSBuild instance: .NET Core SDK 6.0.400 17.3.0 - "C:\Program Files\dotnet\sdk\6.0.400-preview.22330.6\"
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpFormattingWorkspaceOptionsProvider, Order: 0
[info]: OmniSharp.MSBuild.ProjectSystem
        No solution files found in 'd:\Temp\b'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for 'd:\Temp\b\b.csproj'
[info]: OmniSharp.Script.ScriptProjectSystem
        Detecting CSX files in 'd:\Temp\b'.
[info]: OmniSharp.Script.ScriptProjectSystem
        Did not find any CSX files
[info]: OmniSharp.WorkspaceInitializer
        Configuration finished.
[info]: OmniSharp.Stdio.Host
        Omnisharp server running using Stdio at location 'd:\Temp\b' on host 10100.
[info]: OmniSharp.MSBuild.ProjectManager
        Loading project: d:\Temp\b\b.csproj
[info]: OmniSharp.MSBuild.ProjectManager
        Successfully loaded project file 'd:\Temp\b\b.csproj'.
[info]: OmniSharp.MSBuild.ProjectManager
        Adding project 'd:\Temp\b\b.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Update project: b
[warn]: OmniSharp.Stdio.Host
        ************ Request ************
{
  "Type": "request",
  "Seq": 20,
  "Command": "/v2/getcodeactions",
  "Arguments": {
    "FileName": "d:\\Temp\\b\\Class1.cs",
    "Line": 7,
    "Column": 25
  }
}
[fail]: OmniSharp.Stdio.Host
        ************  Response (84.3947ms) ************
{
  "Request_seq": 20,
  "Command": "/v2/getcodeactions",
  "Running": true,
  "Success": false,
  "Message": "\"System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.\\r\\nCould not load file or assembly 'WebDriver, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.\\r\\nCould not load file or assembly 'WebDriver, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.\\r\\nCould not load file or assembly 'WebDriver, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.\\r\\n   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)\\r\\n   at System.Reflection.RuntimeAssembly.get_DefinedTypes()\\r\\n   at OmniSharp.Roslyn.CSharp.Services.Refactoring.V2.CachingCodeFixProviderForProjects.<>c.<LoadFrom>b__6_0(AnalyzerFileReference analyzerFileReference) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Roslyn.CSharp\\\\Services\\\\Refactoring\\\\V2\\\\CachingCodeFixProviderForProjects.cs:line 64\\r\\n   at System.Linq.Enumerable.SelectManySingleSelectorIterator`2.MoveNext()\\r\\n   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()\\r\\n   at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()\\r\\n   at System.Collections.Generic.LargeArrayBuilder`1.AddRange(IEnumerable`1 items)\\r\\n   at System.Collections.Generic.SparseArrayBuilder`1.ReserveOrAdd(IEnumerable`1 items)\\r\\n   at System.Linq.Enumerable.Concat2Iterator`1.ToArray()\\r\\n   at System.Collections.Immutable.ImmutableArray.CreateRange[T](IEnumerable`1 items)\\r\\n   at OmniSharp.Roslyn.CSharp.Services.Refactoring.V2.CachingCodeFixProviderForProjects.LoadFrom(Project project) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Roslyn.CSharp\\\\Services\\\\Refactoring\\\\V2\\\\CachingCodeFixProviderForProjects.cs:line 95\\r\\n   at OmniSharp.Roslyn.CSharp.Services.Refactoring.V2.CachingCodeFixProviderForProjects.GetAllCodeFixesForProject(ProjectId projectId) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Roslyn.CSharp\\\\Services\\\\Refactoring\\\\V2\\\\CachingCodeFixProviderForProjects.cs:line 57\\r\\n   at OmniSharp.Roslyn.CSharp.Services.Refactoring.V2.BaseCodeActionService`2.GetSortedCodeFixProviders(Document document) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Roslyn.CSharp\\\\Services\\\\Refactoring\\\\V2\\\\BaseCodeActionService.cs:line 170\\r\\n   at OmniSharp.Roslyn.CSharp.Services.Refactoring.V2.BaseCodeActionService`2.AppendFixesAsync(Document document, TextSpan span, IEnumerable`1 diagnostics, List`1 codeActions) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Roslyn.CSharp\\\\Services\\\\Refactoring\\\\V2\\\\BaseCodeActionService.cs:line 140\\r\\n   at OmniSharp.Roslyn.CSharp.Services.Refactoring.V2.BaseCodeActionService`2.CollectCodeFixesActions(Document document, TextSpan span, List`1 codeActions) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Roslyn.CSharp\\\\Services\\\\Refactoring\\\\V2\\\\BaseCodeActionService.cs:line 134\\r\\n   at OmniSharp.Roslyn.CSharp.Services.Refactoring.V2.BaseCodeActionService`2.GetAvailableCodeActions(ICodeActionRequest request) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Roslyn.CSharp\\\\Services\\\\Refactoring\\\\V2\\\\BaseCodeActionService.cs:line 86\\r\\n   at OmniSharp.Roslyn.CSharp.Services.Refactoring.V2.GetCodeActionsService.Handle(GetCodeActionsRequest request) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Roslyn.CSharp\\\\Services\\\\Refactoring\\\\V2\\\\GetCodeActionsService.cs:line 34\\r\\n   at OmniSharp.Endpoint.EndpointHandler`2.GetFirstNotEmptyResponseFromHandlers(ExportHandler`2[] handlers, TRequest request) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Host\\\\Endpoint\\\\EndpointHandler.cs:line 201\\r\\n   at OmniSharp.Endpoint.EndpointHandler`2.HandleRequestForLanguage(String language, TRequest request, RequestPacket packet) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Host\\\\Endpoint\\\\EndpointHandler.cs:line 230\\r\\n   at OmniSharp.Endpoint.EndpointHandler`2.Process(RequestPacket packet, LanguageModel model, JToken requestObject) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Host\\\\Endpoint\\\\EndpointHandler.cs:line 131\\r\\n   at OmniSharp.Stdio.Host.HandleRequest(String json, ILogger logger) in D:\\\\a\\\\1\\\\s\\\\src\\\\OmniSharp.Stdio\\\\Host.cs:line 218\\r\\nSystem.IO.FileNotFoundException: Could not load file or assembly 'WebDriver, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.\\r\\nFile name: 'WebDriver, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'\\r\\n ---> System.IO.FileNotFoundException: Could not load file or assembly 'WebDriver, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.\\r\\nFile name: 'WebDriver, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'\\r\\n   at System.Reflection.RuntimeAssembly.InternalLoad(ObjectHandleOnStack assemblyName, ObjectHandleOnStack requestingAssembly, StackCrawlMarkHandle stackMark, Boolean throwOnFileNotFound, ObjectHandleOnStack assemblyLoadContext, ObjectHandleOnStack retAssembly)\\r\\n   at System.Reflection.RuntimeAssembly.InternalLoad(AssemblyName assemblyName, RuntimeAssembly requestingAssembly, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, AssemblyLoadContext assemblyLoadContext)\\r\\n   at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyName(AssemblyName assemblyName)\\r\\n   at Microsoft.CodeAnalysis.DefaultAnalyzerAssemblyLoader.DirectoryLoadContext.Load(AssemblyName assemblyName)\\r\\n   at System.Runtime.Loader.AssemblyLoadContext.ResolveUsingLoad(AssemblyName assemblyName)\\r\\n   at System.Runtime.Loader.AssemblyLoadContext.Resolve(IntPtr gchManagedAssemblyLoadContext, AssemblyName assemblyName)\\r\\nSystem.IO.FileNotFoundException: Could not load file or assembly 'WebDriver, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.\\r\\nFile name: 'WebDriver, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'\\r\\n ---> System.IO.FileNotFoundException: Could not load file or assembly 'WebDriver, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.\\r\\nFile name: 'WebDriver, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'\\r\\n   at System.Reflection.RuntimeAssembly.InternalLoad(ObjectHandleOnStack assemblyName, ObjectHandleOnStack requestingAssembly, StackCrawlMarkHandle stackMark, Boolean throwOnFileNotFound, ObjectHandleOnStack assemblyLoadContext, ObjectHandleOnStack retAssembly)\\r\\n   at System.Reflection.RuntimeAssembly.InternalLoad(AssemblyName assemblyName, RuntimeAssembly requestingAssembly, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, AssemblyLoadContext assemblyLoadContext)\\r\\n   at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyName(AssemblyName assemblyName)\\r\\n   at Microsoft.CodeAnalysis.DefaultAnalyzerAssemblyLoader.DirectoryLoadContext.Load(AssemblyName assemblyName)\\r\\n   at System.Runtime.Loader.AssemblyLoadContext.ResolveUsingLoad(AssemblyName assemblyName)\\r\\n   at System.Runtime.Loader.AssemblyLoadContext.Resolve(IntPtr gchManagedAssemblyLoadContext, AssemblyName assemblyName)\\r\\nSystem.IO.FileNotFoundException: Could not load file or assembly 'WebDriver, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.\\r\\nFile name: 'WebDriver, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'\\r\\n ---> System.IO.FileNotFoundException: Could not load file or assembly 'WebDriver, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.\\r\\nFile name: 'WebDriver, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'\\r\\n   at System.Reflection.RuntimeAssembly.InternalLoad(ObjectHandleOnStack assemblyName, ObjectHandleOnStack requestingAssembly, StackCrawlMarkHandle stackMark, Boolean throwOnFileNotFound, ObjectHandleOnStack assemblyLoadContext, ObjectHandleOnStack retAssembly)\\r\\n   at System.Reflection.RuntimeAssembly.InternalLoad(AssemblyName assemblyName, RuntimeAssembly requestingAssembly, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, AssemblyLoadContext assemblyLoadContext)\\r\\n   at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyName(AssemblyName assemblyName)\\r\\n   at Microsoft.CodeAnalysis.DefaultAnalyzerAssemblyLoader.DirectoryLoadContext.Load(AssemblyName assemblyName)\\r\\n   at System.Runtime.Loader.AssemblyLoadContext.ResolveUsingLoad(AssemblyName assemblyName)\\r\\n   at System.Runtime.Loader.AssemblyLoadContext.Resolve(IntPtr gchManagedAssemblyLoadContext, AssemblyName assemblyName)\"",
  "Body": null,
  "Seq": 192,
  "Type": "response"
}

Reproducible project:
b.zip


Add support to avoid overwriting trained models

This PR adds optional support to the DefaultTrainer in favor of avoiding to train if the training is already completed. This is controlled via the fit method with the overwrite_training argument, which is set to True as default (i.e. the current action of the trainers). If this is set to False, it will check in the latest.pt checkpoint to verify if the training is finished or not. GTG from my side!

Hi @constantinpape,
I took care of interactions between continuing training with overwriting trained models (i.e. raising error when overwrite_training is set to False and user passes a custom checkpoint to continue training)
GTG from my side!


The valhook setter causes other plugins to fail

In the valhook setter code you don't always call the original valhook to set the value.  This can cause unexpected behavior in others plugins which also use the valhook.
           // Otherwise, don't worry about other valhooks, just run ours.
            return el.value = num;
        }
    };

What would you expect to happen here? When running other valHook plugins, what value should we return?
Do you have an example / use case you're trying to achieve?

@samatcd ,
For example in the setter.  You do when yuo don't find $this.data('numFormat'); you call the origHookSet.  When you find it you process the value and set it with the above line.  It should also call the origHookSet (see comment in the code example
Something like this:
$.valHooks.text.set = function( el, val )
	{
		// Get the element, and its data.
		var $this	= $(el),
			data	= $this.data('numFormat');

		// Does this element have our data field?
		if( !data )
		{

			// Check if the valhook function already exists
			if( $.isFunction( origHookSet ) )
			{
				// There was, so go ahead and call it
				return origHookSet(el,val);
			}
			else
			{
				// No previous function, return undefined to have jQuery
				// take care of retrieving the value
				return undefined;
			}
		}
		else
		{
			var num = $.number( val, data.decimals, data.dec_point, data.thousands_sep );

			// Make sure empties are set with correct signs.
//			if(val.indexOf('-') === 0 && +num === 0)
//			{
//				num = '-'+num;
//			}
	                //cal the original valhook setter with your processed value
                        // this way the original behavior if any of the original valhooksetter is also applied
			return origHookSet(el,num);
		}
	};

Ahh, Ok, that makes sense. If you submit that as a pull request, I'll merge it in.

Fixed as per merge #72