[osmoutils]: Add tests with different upper/lower bounds to osmoutil binary search

Background
Ref: https://github.com/osmosis-labs/osmosis/pull/2802#discussion_r975861292
We should test our binary search implementation(s) on different bounds (currently all of them use the same min and max value).
Suggested Design
Cases to add:

Nonzero lower bounds
Equivalent upper and lower bounds (should panic)
Lower bound greater than upper bound (should panic)
Negative bounds (should panic)
Overflowing bounds (should panic)
Different upper bounds (just so all the tests aren't identical)

Acceptance Criteria

Most/all of the cases above are added and pass

I was working on this issue: every test case seemed fine and passed fine except for this one:
"different upper bounds":     {cubicF, osmomath.OneDec(), osmomath.NewBigDec(1 << 10), osmomath.NewBigDec(1 + (1 << 25)), lowErrTolerance, 20000, false},

So basically the problem is when you specify upperbounds  (3rd struct field) to be less than 1 << 49 it throws this error:
 hit maximum iterations, did not converge fast enough

As seen from this test case, I tried increasing the maxIterations field (20000), however, it did not work.
PS: I removed actualSolvedInput field from tests map, so now test routine looks like this:
actualSolvedInput, err := BinarySearchBigDec(tc.f, tc.lowerbound, tc.upperbound, tc.targetOutput, tc.errTolerance, tc.maxIterations)

			if tc.expectErr {
				require.Error(t, err)
			} else {
				require.NoError(t, err)
				output, err := tc.f(actualSolvedInput)
				require.NoError(t, err)

				require.Equal(t, tc.errTolerance.CompareBigDec(output, tc.targetOutput), 0) // 0 - within errTolerance
			}

Do you have your work on a fork/branch by any chance? The likeliest scenario is that the values being considered were too large for even our BigDec precision, preventing the search from ever converging (if this is the case then it would have triggered an infinite loop so increasing maxIterations wouldn't do anything)
If this is the case then it is intended behavior as precision will always be a bottleneck for sufficiently large binary search inputs

Yes, I do: https://github.com/RusAkh/osmosis-fork   (branch name is issue2807).  However, I forgot to mention that if you specify an upper bound in this range [1 << 49; 1 << 62] it passes as expected (more than 1 << 62 is out of bounds for int64).

I checked this issue again. So it seems that the error was in cubicF function itself. It looked like this:
cubicF := func(a osmomath.BigDec) (osmomath.BigDec, error) {
		calculation := a.Quo(osmomath.NewBigDec(10).Power(18))
		result := calculation.Power(3)
		output := result.Mul(osmomath.NewBigDec(10).Power(18))
		return output, nil
	}

it was returning incorrect outputs. For example, for this line:
fmt.Println(cubicF(osmomath.NewBigDec(3)))

an output was 0.000000000000000000000000000000000000 <nil>
Basically, now it looks like this and works fine:
cubicF := func(a osmomath.BigDec) (osmomath.BigDec, error) {
		calculation := a.Power(3)
		result := calculation.Quo(osmomath.NewBigDec(10).Power(18))
		output := result.Mul(osmomath.NewBigDec(10).Power(18))
		return output, nil
	}

Closing this since it is non v13 blocking


Scene Tree view update is very slow with complex scenes when deleting nodes

Tested versions
v4.4.dev6.official [1f47e4c4e]
System information
Godot v4.4.dev6 - Windows 10.0.19045 - Multi-window, 2 monitors - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 4090 (NVIDIA; <IP_ADDRESS>03) - AMD Ryzen 9 5950X 16-Core Processor (32 threads)
Issue description
In a complex scene with 10k+ nodes, deleting a node in the editor takes a long time for the scene to update - 10 to 15 seconds on average. Weirdly undoing the action immediately after deletion is almost instantaneous.
Steps to reproduce
Create a new scene, use a tool like Proton scatter to mass place thousands of either copies or instances (the net result is the same), manually place one or more instances of a Node3d scene and then delete one of them.
Minimal reproduction project (MRP)
NA

Duplicate of https://github.com/godotengine/godot/issues/83460
If you want to play around with the artifact of https://github.com/godotengine/godot/pull/99700 to see how it improves for you and if everything behave as expected or if you find a bug that would be great also !

Thankyou for the response @AeioMuch I will give that a try.

Consolidating in https://github.com/godotengine/godot/issues/83460.


Use yaml_tag instead of deprecated yaml_as

yaml_as is deprecated since Ruby 1.9.3.
https://github.com/ruby/ruby/commit/5b5bbdbb35098e8e2dabe7af5d31526a54dc8bbd
And it will be remove in Ruby 2.5.0.
https://github.com/ruby/ruby/commit/6d77e28763ed17f75edf3b4072701b4dbd7644bb

+1

Ruby 2.5.0.rc1 released.
https://www.ruby-lang.org/en/news/2017/12/14/ruby-2-5-0-rc1-released/
This necessary for testing with Ruby 2.5.0.rc1. Please anyone check.

Please pull

I second that "please pull". Please let me know if there's anything I can do to help get this merged - we can't determine whether the New Relic agent's DelayedJob instrumentation is compatible with Ruby 2.5 until DelayedJob itself supports the new version.

Are you planning to cut a release any time soon? I'd switch to master, but if a release is imminent, I'd rather hold my breath. Thanks a bunch!

Waiting to get this change released soon. Thanks

New version released

This code doesn't actually work. yaml_tag uses psychs yaml_tag which syck ignores. This means it never actually adds the tags. syck defines yaml_as for it's own uses, it never defines or uses yaml_tag.
with delayed_job 4.1.3
[1] pry(main)> Class.taguri
=> "tag:ruby.yaml.org,2002:class"
[2] pry(main)> Class.to_yaml
=> "--- !ruby/class Class\n"

with delayed_job 4.1.4
[1] pry(main)> Class.taguri
tag:ruby.yaml.org,2002:object
=> "tag:ruby.yaml.org,2002:object:Class"
[2] pry(main)> Class.to_yaml
tag:ruby.yaml.org,2002:object
=> "--- !ruby/object:Class Class\n"


Added validation for the file extensions in a file upload

Checklist

[x] I tested all changes and all related features with different users (student, tutor, instructor, admin) on the test server https://artemistest.ase.in.tum.de.
[x] Server: I added multiple integration tests (Spring) related to the features
[x] ~Server: I added @PreAuthorize and check the course groups for all new REST Calls (security)~
[x] Server: I implemented the changes with a good performance and prevented too many database calls
[x] Server: I documented the Java code using JavaDoc style.
[x] ~Client: I added multiple integration tests (Jest) related to the features~
[x] ~Client: I added authorities to all new routes and check the course groups for displaying navigation elements (links, buttons)~
[x] ~Client: I documented the TypeScript code using JSDoc style.~
[x] Client: I added multiple screenshots/screencasts of my UI changes
[x] Client: I translated all the newly inserted strings into German and English

Motivation and Context
Fixes #1019
Right now, invalid extensions can be specified in the "File Pattern" field of the File Upload exercises, which leads to an error.
Description
This PR adds a validation which proves the specified extensions against a list of valid extensions and displays an error message when the input is invalid.
Steps for Testing

Log in to Artemis as an instructor
Navigate to Course Administration
Navigate to Exercises of a Course
Create a File Upload Exercise
Specify an invalid list of extensions in the File Pattern field (e.g. pdf, doxfg)

You should be able to see a red stripe on the left side of the File Pattern field and an error message below it; and you should not be able to save the exercise

Specify a valid list of extensions in the File Pattern field (e.g. pdf, docx)

You should be able to see a green stripe on the left side of the File Pattern field and you should be able to save the exercise

Screenshots
Invalid extension

Valid extensions

When trying to save the exercise I'm getting the following exceptions and nothin happens:

Even if I don't change the extensions and only enter Title and Points. The Save button is enabled.
Not sure what it means, but creating other types of exercises works and without your changes it also works...

When trying to save the exercise I'm getting the following exceptions and nothin happens:

Even if I don't change the extensions and only enter Title and Points. The Save button is enabled.

Do you mean that trying to save a file upload with the default specified extensions (pdf, png) results in this error?

Not sure what it means, but creating other types of exercises works and without your changes it also works...
Can you, please, give me a bit more detail about that too? What do mean exactly?
(Before my changes you should have been able to save all kinds of extensions without an error,
including more than one whitespace and nothing else - I need to add a validation for that)

Do you mean that trying to save a file upload with the default specified extensions (pdf, png) results in this error?

Exactly.

Can you, please, give me a bit more detail about that too? What do mean exactly?
(Before my changes you should have been able to save all kinds of extensions without an error,
including more than one whitespace and nothing else - I need to add a validation for that)

I meant I can create other types of exercises, e.g. Text or Programming exercises without that kind of exception.
And yes, before the changes I was able to save File Upload exercises with any file extensions and also without the exception. I'm not sure what causes the exception, since I don't have a lot of experience with it, just wanted to highlight, that it is probably related to your changes.

Hi, well done it works for input with matches the RegEx. Some minor issues, if I enter an empty String I get following error message :

Also from a UX perspective I feel like empty spaces after at the end of a file format should be allowed, otherwise we might get stuff like this :

Also I feel like making the user enter the document extension is not very elegant, perhaps we should use something like this : https://material.angular.io/components/select/overview

Also I feel like making the user enter the document extension is not very elegant, perhaps we should use something like this : https://material.angular.io/components/select/overview

This relates to the discussion after Maksym's first comment ( https://github.com/ls1intum/Artemis/pull/1127#discussion_r355313457 ).
In the end, it depends on how many options we want to give the user. If we want to allow him/her to choose from 20+ extensions, a drop-down is not a good solution.
@krusche  What was the reason behind designing this field the way is is now? How many types of extensions do we really need to allow here?

I am now able to create an exercise, but also with an invalid list of file extensions. The extension list is marked red and as invalid, but the Save button is enabled:

The exercise is successfully created and displayed with the invalid extension:

Good job, thank you for this :)
I agree with @Minh13 . What I would suggest, is using some form of typeahead (https://ng-bootstrap.github.io/#/components/typeahead/examples) in combination with a tag input. For an example of something very similar, you can take a look at our CategorySelectorComponent. I think the tag-input-dropdown should have everything you need.

I discussed this with Stephan last week and he suggested that we do this as a separate task. I created an issue for it - 1156.

@beatrisbu for the follow-up PR you can use https://www.npmjs.com/package/ngx-chips for the file ending input. I recently used this in another PR and it looks and works pretty well.

We solved this much easier and differently for now. Therefore we close the PR.


Uncaught (in promise) TypeError: Cannot read property 'removeChild' of null

I love this module but I got an error when use #each on slide content on Sapper v0.27.4

Uncaught (in promise) TypeError: Cannot read property 'removeChild' of null

btw I have found similar issue on svelte repo https://github.com/sveltejs/svelte/issues/2086, maybe upgrading svelte version in this module can fix the issue
My code :
<script>
  import Carousel from "@beyonk/svelte-carousel";
  import SingleCard from "./SingleCard.svelte";
  export let windowWidth;

  const singleMaterials = {
    title: "Just a title",
    author: "authorx",
    description: "card description"  };
  const materials = [
    singleMaterials,
    singleMaterials,
    singleMaterials,
    singleMaterials,
    singleMaterials,
    singleMaterials
  ];
</script>

<Carousel loop={false} perPage={windowWidth}>
  {#each materials as material}
    <SingleCard {material} />
  {/each}
</Carousel>

I did try update the svelte version but still not working, the error still showing and the slider won't sliding so I decide to use plain siema

Hi! I need to open this issue again!
Here is an example that there is an error:
https://svelte.dev/repl/dfa92aa40f134954bac5cec617f2d44b?version=3
If I make the innerWidth of the output smaller than 768 (so that the breakpoint gets triggered), the error appears and the reactivity of the page does not work anymore. The number on the top, which shows the innerWidth, does not get updated anymore. You see it in the attached video.
https://user-images.githubusercontent.com/5259918/104104192-d9f9af00-52a6-11eb-8f7b-6f7353ec4274.mov

Hi! I need to open this issue again!
Here is an example that there is an error:
https://svelte.dev/repl/dfa92aa40f134954bac5cec617f2d44b?version=3
If I make the innerWidth of the output smaller than 768 (so that the breakpoint gets triggered), the error appears and the reactivity of the page does not work anymore. The number on the top, which shows the innerWidth, does not get updated anymore. You see it in the attached video.
https://user-images.githubusercontent.com/5259918/104104192-d9f9af00-52a6-11eb-8f7b-6f7353ec4274.mov


Optimize folsom_sample_uniform

Use a dict instead of list for the reservoir.
This improves the performance of folsom_sample_uniform.
On my laptop inserting 5000 element in a sample with reservoir size=5000, is about 10x faster.
Inserting 50000 elements in a sample with reservoir size=5000 is about 50x faster.
Note that the order of the elements returned by get_values is different from the previous algorithm,
but I don't think that matters since the elements are inserted randomly anyway.
This patch only changes the data structure used for the reservoir, it does not change the basic algorithm
used. I think that there is a bug in how the sampling is done, I will open an issue describing that.
/Anders

Awesome, thanks for tackling these perf issues. If you'll have other patches I think I'll wait until those are ready and merge them all at once.

I don't have any more patches in the pipeline at the moment so I think You can merge these now.

Anders, please squash these two commits into one and I'll merge it ASAP.

I have now squashed the two commits but the pull request now shows 4 commits???
I am not very good at git yet, did I screw up something?

Yeah something doesn't seem right, I'll pull them in manually. FWIW generally you can do something like "git rebase HEAD~N" where N is the last N commits you want to squash.

Yes, that is what I did, and it looked fine locally, but when I tried
to push to github
it complained. From the message it seemed that I needed to pull any changes from
github first, so I did that and then pushed again.
On Mon, Oct 31, 2011 at 5:04 PM, Joe Williams
<EMAIL_ADDRESS>wrote:

Yeah something doesn't seem right, I'll pull them in manually. FWIW generally you can do something like "git rebase HEAD~N" where N is the last N commits you want to squash.
--
Reply to this email directly or view it on GitHub:
https://github.com/boundary/folsom/pull/6#issuecomment-2584653

this has been merged.


[V4.x] Blendmode ADD again

Related to #5739 and #5563
Im trying to contact @Puuca to see if BlendMode breaks his case on iPads

tested on iPad Pro in Safari and Chrome. Seems that #5563 is still fixed.


extend example imports OrbitControls but doesn't use it

https://threlte.xyz/docs/reference/core/t#extending-the-default-component-catalogue

sorted in current next branch 👍


CsvHelper 2.13.2

Type: Missing
Summary:
CsvHelper 2.13.2
Details:
No info in package files. Meta data confirms MS-PL.
Resolution:
https://raw.githubusercontent.com/JoshClose/CsvHelper/master/LICENSE.txt
Affected definitions:

CsvHelper 2.13.2

@TRQ3 This says it is dual licensed under MS-PL or Apache 2.0. Where does it MS-PL only?
https://github.com/JoshClose/CsvHelper/blob/2.13.2/LICENSE.txt
https://raw.githubusercontent.com/JoshClose/CsvHelper/master/LICENSE.txt
https://github.com/JoshClose/CsvHelper/tree/2.13.2#license

@capfei You're right. Thanks. I think I have remedied correctly.

@TRQ3 Thank you for your response. Closing in favor #4855


The wrong usage example at README.md

You have written that usage for *.html files:
<script type="application/json" data-format="liquid">
  {
    "template": "path/to/template.njk",
    "title": "Hello world"
  }
</script>

However, in the source code and in fact you should not use data-format="liquid" but this data-format="njk"

Thanks, readme is fixed in 1.0, and usage as


Removed unused variable key from examples

Q
A

Bug fix?
no

New feature?
no

Doc update?
yes

BC breaks?
no

Deprecations?
no

Removed the unused variable key in some examples, which can be misleading.

Good point.
If you don't mind I'll amend the username tomorrow.

I didn't manage to change the email address without messing too much with the git history. It will be fine to merge with the le78ld email.


Update jszip to 3.7.1

TODO

Abandoning this PR, since the jszip updated dep library is now part of the upstream repo.


multiqc fails to run with  --skipBiotypeQC option

The pipeline runs without error, but the MultiQC process doesn't run with this option in effect.
Seems this is because of a missing .ifEmpty([]) suffix at
https://github.com/nf-core/rnaseq/blob/3b6df9bd104927298fcdf69e97cca7ff1f80527c/main.nf#L1666

I am seeing this issue in rnaseq v1.4.2. Running with 15 samples. The pipeline successfully completes, except for the MultiQC step.


Fix custom select box hover styles

This PR fixes #130038.
Summary of changes on custom select boxes:

Consistent application of hover styles

Before: The hover FG would apply to focused options, but the hover BG would not
After: Neither FG or BG will be set, focused styles always win

Proper clearing of styles when hovering over disabled options

Before: Hover styles might not be cleared if some theme styles were unset, and the styles did not always match regular items

The background-color (not color) was set to the listActiveSelectionForeground (an active FG is probably a mistake too)
The background-color (again) would be set to selectBackground (which might not match the selectListBackground)

After: Hover styles are always cleared for disabled options, and should always match regular unselected items

Some other notes:

This is the only style with an outline of 1.6px, everything else seems to use 1px, not sure if this is intentional
I'm not actually sure if the regular hover styles are ever used since hovering seems to imply focus

Thanks for the PR!
Can you please open an issue to describe what problem this PR fixes (Including Gifs)?
Thank you!

Hi @hediet, created #130038 (with a video). Please let me know if there are any other issues. Thanks!

Thanks! I am still a little confused about the styling of this component. I never see list.hoverBackground/Foreground take effect, only the quick input style? Do you happen to know why? And I actually don't see any different between hover/focus, shouldn't there still be hover-specific styles?

Thanks! I am still a little confused about the styling of this component. I never see list.hoverBackground/Foreground take effect, only the quick input style? Do you happen to know why? And I actually don't see any different between hover/focus, shouldn't there still be hover-specific styles?

Yes, if I'm not mistaken, after this fix, the hover styles never show up (except the one for the disabled option which clears the styles). The reason is because hovering over an option automatically causes it to be focused as well, which is not how the other UI elements work.
To fix this, an option should not automatically focus on hover, but only on selection via keyboard (to be consistent with the other UI elements). However, that is a bigger change, and may have implications which I do not fully understand.
Alternatively, I could let the hover style win over the focused style (by removing the :not(.focused) part), but this would not be consistent with how the other the other UI elements behave.

The reason is because hovering over an option automatically causes it to be focused as well, which is not how the other UI elements work.

Yeah, maybe we did that to make it look a little more like a typical dropdown which I guess wouldn't have two highlight colors.

EDIT: After playing around with the select box, I did fine one scenario where the hover styles do apply: Try hovering over an option, and then switching the focus to another option using the keyboard arrows. The hovered element should now show the hover styles.

I see that, thanks


[eslint] Enforce jsx-handler-names

This one is for @nathanmarks.
I have done some aggressive clean up. Be careful when reviewing :rotating_light:.

@oliviertassinari I wish we had tests for all these handlers right now!
Something to note, unfortunately the eslint rule is only for JSX. Which means there is an opportunity for inconsistency. See here: https://github.com/oliviertassinari/material-ui/blob/eslint-jsx-handler-names/src/DropDownMenu/DropDownMenu.jsx#L286
Maybe a quick search in /src/ for _on is in order? Not sure if you want to enforce the same convention with non-jsx elements, but it'd make sense imo.

I wish we had tests for all these handlers right now!

Me too. Don't worry, my agressive changes are regarding using the open state to speedup the DatePicker and the TimePicker.

Not sure if you want to enforce the same convention with non-jsx elements, but it'd make sense imo.

I agree with you but the conflict potential of this PR with others is already high. I would say, let's take care of this with another PR.

 Readability is so much better with these changes @oliviertassinari !!

Ping me when you think I should rebase.

@oliviertassinari Outside of what I mentioned initially, it looked good to me. Getting this merged would be great, I almost posted an issue by accident today regarding inconsistent use of comma dangled event handler methods :smile:

it looked good to me. Getting this merged would be great

:smile:. This PR may have conflict with many others PRs. I think that we should apply this change and the ES6 classes migration in a row.

I think that we should apply this change and the ES6 classes migration in a row.

@oliviertassinari I agree!

@newoga @oliviertassinari
Is there a PR for that? I can help combine them before merging to master if you'd like

Is there a PR for that? I can help combine them before merging to master if you'd like

By in a row, I was meaning at the same time, like the same day, not combined :grin:.
The question is, when do we do this move?

The question is, when do we do this move?

I know this sounds crazy but I'm thinking we should save both of these for right before we do the directory restructure. Those three probably represent the biggest code changes in this release that will impact existing PRs.
I'd say do this order:

Tag open PRs that we plan to have fixed for 0.15.0.
Merge those PRs
Apply remaining eslint rules
Run react-codemod to convert to ES6 and replace PureRenderMixin
Reorganize directories

I would like to do steps 3, 4, and 5 in a phase when we aren't merging any other PRs and we can do it in a short time span (same day like @oliviertassinari) mentioned.
After that, existing PRs can be resubmitted or updated against the new and moved ES6 class based components.

@newoga That sounds sensible.
When we finally "do it", might want to set it up on a temporary branch before merging it into master.

I think the biggest step is reviewing existing PRs and getting them merged before the migration.

I agree. And while we've been doing a better job with new PRs, do you think perhaps we should take a break from refactoring, and all double-down on catching up with the PR backlog?
I know it's painful, but the longer we leave it, the harder fixing merge conflicts becomes.

break from refactoring, and all double-down on catching up with the PR backlog?

Yeah I think this is a good idea. I think we're just going to have to focus on the existing PRs and decide which ones will get in 0.15.0 and which ones have to get resubmitted after the ES6 and linting migrations.
@oliviertassinari @alitaheri, are you good with this?

on catching up with the PR backlog

That sounds like an good idea.

and which ones have to get resubmitted after the ES6 and linting migrations.

We have different types of pending PRs. I think that they needs different care:

Some are not relevant: let's close them
Some needs a minor rebase: we can or the author can take care of it.
Some needs work and the author is still active, we can merge them for the 0.15.0 release
Some needs work and the author is not longer active: we can take care of them later.

That makes sense :+1: I think we should take care of the backlog. It's getting bloated and scary :fearful:

@oliviertassinari - is now the time rebase and apply this? (And any other desired eslint rules?)

@mbrookes That sounds like the right moment. I will try to rebase before the ES6 classes conversion.

I have just rebased this PR.


SLURMCluster - Memory specification can not be satisfied: make --mem tag optional

Hi everybody,
I followed a simple example from http://jobqueue.dask.org/en/latest/generated/dask_jobqueue.SLURMCluster.html but got an error related to the memory

from dask_jobqueue import SLURMCluster
cluster = SLURMCluster(processes=6, cores=24, memory="120GB",
...                            env_extra=['export LANG="en_US.utf8"',
...                                       'export LANGUAGE="en_US.utf8"',
...                                       'export LC_ALL="en_US.utf8"'])
cluster.scale(2)
tornado.application - ERROR - Exception in callback functools.partial(<function wrap..null_wrapper at 0x7f9a84bc4620>, 2)
Traceback (most recent call last):
File "/home/oscarm/.conda/envs/devito/lib/python3.6/site-packages/tornado/ioloop.py", line 758, in _run_callback
ret = callback()
File "/home/oscarm/.conda/envs/devito/lib/python3.6/site-packages/tornado/stack_context.py", line 300, in null_wrapper
return fn(*args, **kwargs)
File "/home/oscarm/.conda/envs/devito/lib/python3.6/site-packages/dask_jobqueue/core.py", line 416, in scale_up
self.start_workers(n - self._count_active_and_pending_workers())
File "/home/oscarm/.conda/envs/devito/lib/python3.6/site-packages/dask_jobqueue/core.py", line 330, in start_workers
out = self._submit_job(fn)
File "/home/oscarm/.conda/envs/devito/lib/python3.6/site-packages/dask_jobqueue/core.py", line 322, in _submit_job
return self._call(shlex.split(self.submit_command) + [script_filename])
File "/home/oscarm/.conda/envs/devito/lib/python3.6/site-packages/dask_jobqueue/core.py", line 383, in _call
cmd_str, out, err))
RuntimeError: Command exited with non-zero exit code.
Exit code: 1
Command:
sbatch --parsable /tmp/tmpcnm8d6jz.sh
stdout:

stderr:
sbatch: error: Memory specification can not be satisfied
sbatch: error: Batch job submission failed: Requested node configuration is not available
even using less memory I still getting that error, any clue about what is happening?

Hi @ofmla, thanks for trying dask-jobqueue!
Can you tell us more about you cluster spec and the queue your using? Do you have nodes of at least 24 cpu cores and 120GB memory? Or maybe you Slurm version doesn't support some characters (which seems weird).
You can have a look at http://jobqueue.dask.org/en/latest/debug.html for more information on how to debug.
What I would do it is manually (e.g. sbatch via command line) try different submissions with different resource requirements and see if one is working.

Hi @guillaumeeb
The first thing I tried was set the SLURMCluster with less memory but it also did not work. You will find below some relevant information.
$ srun -V
slurm 15.08.13-Bull.1.6
$scontrol show partition
PartitionName=all
AllowGroups=ALL AllowAccounts=ALL AllowQos=ALL
AllocNodes=ALL Default=YES QoS=N/A
DefaultTime=NONE DisableRootJobs=NO ExclusiveUser=NO GraceTime=0 Hidden=NO
MaxNodes=UNLIMITED MaxTime=UNLIMITED MinNodes=1 LLN=NO MaxCPUsPerNode=UNLIMITED
Nodes=,c005,c048,c007,c006,c032,c041,c040,c043,c042,c009,c044,c047,c046,c034,c029,c028,c027,c026,c025,c024,c023,c022,c021,c020,c037,c030,c051,c031,c036,c033,c045,c052,c050,c008,c018,c019,c038,c039,c012,c013,c010,c011,c016,c017,c014,c015,c035,c049,c056,c054,c055,c053,cgpu1,cgpu2,c004,c001,c003,c002
Priority=1 RootOnly=NO ReqResv=NO Shared=NO PreemptMode=OFF
State=UP TotalCPUs=5408 TotalNodes=58 SelectTypeParameters=N/A
DefMemPerNode=UNLIMITED MaxMemPerNode=UNLIMITED
PartitionName=standard
AllowGroups=ALL AllowAccounts=ALL AllowQos=ALL
AllocNodes=ALL Default=NO QoS=N/A
DefaultTime=NONE DisableRootJobs=NO ExclusiveUser=NO GraceTime=0 Hidden=NO
MaxNodes=UNLIMITED MaxTime=UNLIMITED MinNodes=1 LLN=NO MaxCPUsPerNode=UNLIMITED
Nodes=,c041,c040,c043,c042,c044,c048,c049,c050,c051,c052,c053,c047,c046,c045,c038,c039,c006,c007,c008,c009,c010,c011,c012,c013,c014,c015,c016,c017,c018,c019,c020,c021,c022,c023,c024,c026,c027,c028,c029,c030,c031,c032,c033,c034,c035,c036,c037,
Priority=1 RootOnly=NO ReqResv=NO Shared=NO PreemptMode=OFF
State=UP TotalCPUs=3760 TotalNodes=47 SelectTypeParameters=N/A
DefMemPerNode=UNLIMITED MaxMemPerNode=UNLIMITED
PartitionName=largemem
AllowGroups=ALL AllowAccounts=ALL AllowQos=ALL
AllocNodes=ALL Default=NO QoS=N/A
DefaultTime=NONE DisableRootJobs=NO ExclusiveUser=NO GraceTime=0 Hidden=NO
MaxNodes=UNLIMITED MaxTime=UNLIMITED MinNodes=1 LLN=NO MaxCPUsPerNode=UNLIMITED
Nodes=,c056,c054,c055,c053
Priority=1 RootOnly=NO ReqResv=NO Shared=NO PreemptMode=OFF
State=UP TotalCPUs=320 TotalNodes=4 SelectTypeParameters=N/A
DefMemPerNode=UNLIMITED MaxMemPerNode=UNLIMITED
PartitionName=gpu
AllowGroups=ALL AllowAccounts=ALL AllowQos=ALL
AllocNodes=ALL Default=NO QoS=N/A
DefaultTime=NONE DisableRootJobs=NO ExclusiveUser=NO GraceTime=0 Hidden=NO
MaxNodes=UNLIMITED MaxTime=UNLIMITED MinNodes=1 LLN=NO MaxCPUsPerNode=UNLIMITED
Nodes=,cgpu1,cgpu2
Priority=1 RootOnly=NO ReqResv=NO Shared=NO PreemptMode=OFF
State=UP TotalCPUs=160 TotalNodes=2 SelectTypeParameters=N/A
DefMemPerNode=UNLIMITED MaxMemPerNode=UNLIMITED
PartitionName=phi
AllowGroups=ALL AllowAccounts=ALL AllowQos=ALL
AllocNodes=ALL Default=NO QoS=N/A
DefaultTime=NONE DisableRootJobs=NO ExclusiveUser=NO GraceTime=0 Hidden=NO
MaxNodes=UNLIMITED MaxTime=UNLIMITED MinNodes=1 LLN=NO MaxCPUsPerNode=UNLIMITED
Nodes=,c004,c001,c003,c002
Priority=1 RootOnly=NO ReqResv=NO Shared=NO PreemptMode=OFF
State=UP TotalCPUs=1088 TotalNodes=4 SelectTypeParameters=N/A
DefMemPerNode=UNLIMITED MaxMemPerNode=UNLIMITED
I wouldn't be able to tell you why the memory in all partitions appears to be UNLIMITED. Anyway, I know that all nodes have 40 CPU cores with 192 GB, and some nodes have even more memory (384 GB).  I ran a test with a simple MPI hello world code in order to try to understand why I can't to use dask
  program  test
  use mpi
  implicit  none
  character(100)  name
  integer  ierr, myid, size, length

  call  MPI_init( ierr )
  call  MPI_Comm_rank( MPI_COMM_WORLD, myid, ierr )
  call  MPI_Comm_size( MPI_COMM_WORLD, size, ierr )
  call  MPI_Get_processor_name( name, length, ierr )
  print '(a,i3,a,i3,a,a)', 'Hello from processor: ', myid, &
       ' of ', size, ' Processors, named:', name(1:length)

  if( myid .eq. 0 )  then
     print '(a,a)', 'Hello again from the root processor, named: ',&
             name(1:length)
  endif

  call  MPI_Finalize( ierr )

  end program

I submitted the job using the following shell (submit_slurm.sh)
#!/bin/sh
#SBATCH --partition=standard
#SBATCH --ntasks=120
#SBTACH --cpus-per-task=1
#SBATCH --ntasks-per-node=40
#SBATCH --ntasks-per-socket=20
#SBATCH --distribution=cyclic:cyclic
#SBATCH --mem=23000
Memory per node specification is in MB. It is optional.
#SBATCH --job-name="hello_test"
#SBATCH --output=test-srun.out
##SBATCH --requeue
#Specifies that the job will be requeued after a node failure.
#The default is that the job will not be requeued.
ulimit -s unlimited
echo "Launch helloworld with srun"
srun ./helloworld
echo "All Done!"
But I got the same error
$sbatch submit_slurm.sh
sbatch: error: Memory specification can not be satisfied
sbatch: error: Batch job submission failed: Requested node configuration is not available
When I comment on the line where the memory is specified
##SBATCH --mem=23000
I can submit the job normally
$squeu
JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
30582  standard script_h   oscarm  R      12:52      3 c[047-049]
For some reason, I can't set the memory per node. What could be the solution?

I'm no slurm expert, and I don't see any way to avoid specifying --mem with the actual code, see https://github.com/dask/dask-jobqueue/blob/master/dask_jobqueue/slurm.py#L95.
I can see some ways forward:

Find the correct syntax with your slurm cluster so that it accepts this option. Can you ask some cluster admin?
Find an option that will override this one, and pass it to jobqueue using job_extra kwarg.
Propose a PR to change the code here so that --mem is not always set.

I'm no slurm expert, and I don't see any way to avoid specifying --mem with the actual code, see https://github.com/dask/dask-jobqueue/blob/master/dask_jobqueue/slurm.py#L95.
I can see some ways forward:

Find the correct syntax with your slurm cluster so that it accepts this option. Can you ask some cluster admin?
Find an option that will override this one, and pass it to jobqueue using job_extra kwarg.
Propose a PR to change the code here so that --mem is not always set.

Thanks for your answer @guillaumeeb. I apologize for bringing this problem here, it is linked with the slurm configuration of the cluster and no with dask-jobqueue. I solved  the problem temporarily by defining a function to delete the --mem flag.
  def find_mem_pos(header_lines):
       for i,line in enumerate(header_lines):
            if('--mem=' in line):
                return i

This funstion is used after the definition of the cluster
  if __name__ == "__main__":
   cluster = SLURMCluster(walltime="120000", memory='12 GB',queue ='standard',cores=2)
   header_lines = cluster.job_header.split('\n')
   mem_pos = find_mem_pos(header_lines)
   header_lines = header_lines[:mem_pos] + header_lines[mem_pos+1:]
   cluster.job_header = '\n'.join(header_lines)
   print("Waiting for workers")
   cluster.start_workers(16)
   c = Client(cluster)
   main(c)

Now, I am facing another problem when run my application.  I get the following with scontrol show job 31779
JobId=31779 JobName=dask-worker
UserId=oscarm(2079) GroupId=oscarm(2079)
Priority=4294897460 Nice=0 Account=(null) QOS=normal
JobState=RUNNING Reason=None Dependency=(null)
Requeue=1 Restarts=0 BatchFlag=1 Reboot=0 ExitCode=0:0
RunTime=00:00:16 TimeLimit=83-08:00:00 TimeMin=N/A
SubmitTime=2019-02-28T14:49:51 EligibleTime=2019-02-28T14:49:51
StartTime=2019-02-28T14:49:53 EndTime=2019-05-22T22:49:53
PreemptTime=None SuspendTime=None SecsPreSuspend=0
Partition=standard AllocNode:Sid=login0:169037
ReqNodeList=(null) ExcNodeList=(null)
NodeList=c017
BatchHost=c017
NumNodes=1 NumCPUs=2 CPUs/Task=2 ReqB:S:C:T=0:0::
TRES=cpu=2,mem=1,node=1
Socks/Node=* NtasksPerN:B:S:C=0:0:: CoreSpec=*
MinCPUsNode=2 MinMemoryNode=1M MinTmpDiskNode=0
Features=(null) Gres=(null) Reservation=(null)
Shared=OK Contiguous=0 Licenses=(null) Network=(null)
Command=/tmp/tmp5n6jgl1_.sh
WorkDir=/scratch/oscarm/devito/deap/git_development/evolutionaryfwi
StdErr=/scratch/oscarm/devito/deap/git_development/evolutionaryfwi/slurm-31779.out
StdIn=/dev/null
StdOut=/scratch/oscarm/devito/deap/git_development/evolutionaryfwi/slurm-31779.out
Power= SICP=0
and here is the log file of that job (cat slurm-31779)
/home/oscarm/.conda/envs/devito/lib/python3.6/site-packages/distributed/utils.py:128: RuntimeWarning: Couldn't detect a suitable IP address for reaching '<IP_ADDRESS>', defaulting to '<IP_ADDRESS>': [Errno 101] Network is unreachable
% (host, default, e), RuntimeWarning)
/home/oscarm/.conda/envs/devito/lib/python3.6/site-packages/distributed/utils.py:128: RuntimeWarning: Couldn't detect a suitable IP address for reaching '<IP_ADDRESS>', defaulting to '<IP_ADDRESS>': [Errno 101] Network is unreachable
% (host, default, e), RuntimeWarning)
distributed.nanny - INFO -         Start Nanny at: 'tcp://<IP_ADDRESS>:39171'
/home/oscarm/.conda/envs/devito/lib/python3.6/site-packages/distributed/utils.py:128: RuntimeWarning: Couldn't detect a suitable IP address for reaching '<IP_ADDRESS>', defaulting to '<IP_ADDRESS>': [Errno 101] Network is unreachable
% (host, default, e), RuntimeWarning)
distributed.worker - INFO -       Start worker at:      tcp://<IP_ADDRESS>:45313
distributed.worker - INFO -          Listening to:      tcp://<IP_ADDRESS>:45313
distributed.worker - INFO -              nanny at:            <IP_ADDRESS>:39171
distributed.worker - INFO -              bokeh at:             <IP_ADDRESS>:8789
distributed.worker - INFO - Waiting to connect to:   tcp://<IP_ADDRESS>:42996
distributed.worker - INFO - -------------------------------------------------
distributed.worker - INFO -               Threads:                          2
distributed.worker - INFO -                Memory:                    7.00 GB
distributed.worker - INFO -       Local Directory: /scratch/oscarm/devito/deap/git_development/evolutionaryfwi/dask-worker-space/worker-fc2qidad
distributed.worker - INFO - -------------------------------------------------
distributed.worker - INFO - Waiting to connect to:   tcp://<IP_ADDRESS>:42996
distributed.worker - INFO - Waiting to connect to:   tcp://<IP_ADDRESS>:42996
distributed.worker - INFO - Waiting to connect to:   tcp://<IP_ADDRESS>:42996
distributed.worker - INFO - Waiting to connect to:   tcp://<IP_ADDRESS>:42996
distributed.worker - INFO - Waiting to connect to:   tcp://<IP_ADDRESS>:42996
distributed.nanny - INFO - Closing Nanny at 'tcp://<IP_ADDRESS>:39171'
distributed.worker - INFO - Stopping worker at tcp://<IP_ADDRESS>:45313
distributed.dask_worker - INFO - End worker
/home/oscarm/.conda/envs/devito/lib/python3.6/site-packages/distributed/utils.py:128: RuntimeWarning: Couldn't detect a suitable IP address for reaching '<IP_ADDRESS>', defaulting to '<IP_ADDRESS>': [Errno 101] Network is unreachable
% (host, default, e), RuntimeWarning)
Do you have any idea what is happening? Thank you and I apologise once again for bringing my problem to the wrong  place.

it is linked with the slurm configuration of the cluster and no with dask-jobqueue

But maybe we should provide some way for not always setting --mem. If you're happy with your workaround, let's stick with it for now, but if you find something more elegant and want to propose a PR, do not hesitate.
As for your other problem, it seems your workers cannot reach your scheduler with the IP it has selected and provided to them.
You should identify the network interfaces available on your nodes (ifconfig), and if possible find one common to the node where your running the python cluster/client code (scheduler node), and the nodes where the Slurm jobs (Worker nodes) are ran. Then you can use the interface kwarg to tell Daks to use this one.
If you don't have a common network interface between the nodes, you must at least find an interface and corresponding IP on the Scheduler node that the worker nodes can reach, and use ip kwarg to specify it for the Scheduler to use.

I had the same problem as @ofmla, the manager that I am using does not allow manually setting the memory of nodes. My suggestion is that memory should be an optional argument in SLURMCluster.
Thanks @ofmla for the workaround!

@guillaumeeb did some tests with the available networks but I'm still getting error messages. I ran with the debug mode activated and just one worker (so error messages are simpler.). I don't know what I need to do for my application works. The error messages show that there is also a problem with the memory, but I am sure the memory is not a problem (I can run it serially in my workstation).
The full error msg in the scheduler is the following:
scheduler.txt
and here follows error msg from the worker:
worker.txt
I don't know if this is the right place to continue asking for help (since the initial issue was solved). Is there another channel to continue the discussion? Thanks.

@ofmla , this is not a network problem, the cluster looks correctly started.
This is probably linked to your computation. You've got a memory problem, I suggest opening a Stack Overflow question or another issue here or in distributed tracker. You should explain your usecase and if possible have a minimal reproducible example (http://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports).
I leave this issue open, has it would be good to have a simple way to disable --mem in the job_script.

I had the same issue, using AWS Parallel Cluster. This is my first time setting up a cluster and using Dask, so lots of research this evening. I followed the instructions in this issue response, and it worked:
https://github.com/aws/aws-parallelcluster/issues/1517#issuecomment-561775124

Maybe someone else would say that this should have been expected but it blows my mind that Dask-Jobqueue is used on AWS rather than native cloud technologies with Dask-Cloudprovider or Dask-Kubernetes.
Maybe @robertddewey if you had 5 minutes to explain the reason you use AWS Parallel Cluster I would be very curious to hear about it!
As a additional comment, SLURMCluster (and all the cluster classes actually) have a header_skip argument since 0.7 IIRC that should allow you to skip some lines in the header to make your job scheduler happy:
header_skip : list
    Lines to skip in the header.
    Header lines matching this text will be removed

So if your job scheduler does not want --mem you can use:
cluster = SLURMCluster(header_skip=['--mem'], **rest_of_the_options)

@lesteve -- I'm new to managed clusters and needed to quickly test some financial models on my own dime. I chose AWS ParallelCluster, as I'm already quite familiar with their dashboard, APIs, and cost structure. Hopefully that helps.
I'd assume there are many more people out there like myself... AWS is a pretty big service.

Thanks for the details, very much appreciated!

I'd assume there are many more people out there like myself... AWS is a pretty big service.

I guess my surprise was that to use AWS ParallelCluster you need to know both AWS and SLURM, I would have expected that if you know AWS you use Dask-Cloudprovider but of course you probably a good reason to use SLURM.
To be fair I have actually heard another use case for AWS ParallelCluster: some big labs have a in-house SLURM cluster and close to big conference deadlines they use AWS ParallelCluster (or at least a SLURM cluster in the cloud not sure if there are others) that looks exactly the same as their in-house cluster to allow to scale their cluster to the peak usage.

+1 to this issue - instead of following aws/aws-parallelcluster#1517 (comment)  for our parallel cluster running in production we have made a local fork of the dask-jobqueue library and commented out this line which ensures that the memory request is not made.

Can you not use the header_skip parameter as mentioned in https://github.com/dask/dask-jobqueue/issues/238#issuecomment-629994873

Closing this one, I think the header_skip options can fix the problem. And it is well documented thanks to @lesteve!
https://jobqueue.dask.org/en/latest/advanced-tips-and-tricks.html#skipping-unrecognised-line-in-submission-script-with-header-skip

Closing this one, I think the header_skip options can fix the problem. And it is well documented thanks to @lesteve!
https://jobqueue.dask.org/en/latest/advanced-tips-and-tricks.html#skipping-unrecognised-line-in-submission-script-with-header-skip


add closing double quote

Great app! Love the simplicity and clean look of this utility. My suggestion is to add that kinda missing closing double quotes.
Thanks for the work!

Thank you for the PR!


Build pipeline

Create an actual build pipeline:
Stages

[ ] Production

production-ready assets!
includes all files as raw/original, .gz and .br
apply highest compression (time does not matter!)

[ ] Staging

Cache Busting applied
CSS/JS minimized
CSS purged (might include other post-processing steps, e.g. autoprefix)

[ ] Build

Reference

colorizer, which was one of the sidetracks that significantly impacted building this website, has the additional benefit of having implemented a working cache busting in its v2 branch.
Related: #61

Build Pipeline
Stage 0: Development

the most recent code lives in the development branch
development happens in dedicated feature branches, which are then used in a pull request against the development branch
PRs are processed with a dedicated workflow through Github Actions:

linting (several different linters for the different languages, e.g. black for Python, stylelint and prettier for SCSS/SASS)
building the project includes several stages, including compilation of SCSS/SASS and TS/JS sources and running sphinx to actually create the static HTML output. Management of the actual build process is handled by the project's Makefile.
validating the created build artifact runs several HTML validation tools against the (generated) output to ensure semantically correct HTML. It does NOT check, if everything is working!

Please note: The website's images are not part of the repository. Their existence is not checked! The (generated) build artifact of the building step is not ready for deployment!.
Focus of this stage and the associated workflow is code quality.
MISSING / TODO:

Tests

Unit Tests for Python code, especially the utility scripts; try to provide unit tests for the (custom) sphinx extensions aswell
Unit Tests for TS/JS code (how to unit test a codebase with target browser?)
Integration Test for (compiled) JS code (at least target major browsers)

Validation of (compiled) CSS stylesheet

Resources

run a HTTP server in a Github Actions workflow

https://github.com/marketplace/actions/http-server-action

Custom Python-based Cache Buster
#!/usr/bin/env python3

# Python imports
import argparse
import logging

# get a module-level logger
logger = logging.getLogger(__name__)

LOGGING_DEFAULT_CONFIG = {
    "version": 1,
    "disable_existing_loggers": True,
    "formatters": {
        "console_output": {
            "format": "[%(levelname)s] %(name)s: %(message)s",
        },
    },
    "handlers": {
        "default": {
            "level": "DEBUG",
            "formatter": "console_output",
            "class": "logging.StreamHandler",
            "stream": "ext://sys.stdout",
        },
    },
    "loggers": {
        "": {
            "handlers": ["default"],
            "level": "DEBUG",
            "propagate": True,
        },
    },
}

def parse_args():
    """Parse the command line arguments."""

    # create the main parser
    parser = argparse.ArgumentParser(description="Perform cache busting for static assets")

    parser.add_argument(
        "--source",
        action="store",
        type=str,
        required=True,
        help="Path to the source directory"
    )

    parser.add_argument(
        "--asset",
        dest="assets",
        action="append",
        type=str,
        required=True,
        help="Relative path from source directory to an asset file"
    )

    return parser.parse_args()

def main():
    pass

if __name__ == "__main__":
    # setup the logging module
    logging.config.dictConfig(LOGGING_DEFAULT_CONFIG)

    main()


add cream pie to clown uplink

About the PR

Adds clown job specific entry to uplink - banana cream pie.
(for some reason it is not displayed correctly)
Media

Changelog

:cl:

add: clown can buy cream pie from syndicate uplink for 1 TC

i think wrong icon is because you used pie tin state without banana cream pie ("plain" i think)
dont know how to overlay states in catalog but yeah

Obviously the intent with this is to use this in conjunction with the newly merged exploding pie feature. On that point, I question if this is a boring way of allowing such gameplay to emerge. It's not like getting pies is hard: the kitchen can quite easily make a few for the clown if they so desire. Most clowns also start off with a few mapped in their room.
So to that point, I would think that putting them in here is both kind of lazy and just a cheap way to let Clown traitors use an overpowered item combination without much effort involved.

I agree this is not really useful due to how easy it is to get pies

well, getting eggs is not super easy but ok.


Liquid includes of templates with HTML code

When my Jekyll page includes (using the Liquid include tag) a template with HTML code, the HTML code gets converted by the AsciiDoctor processor, thus not rendering the HTML code as expected. Example:
page.adoc
---
front matter
---

:page-liquid:

{% include file.html %}

file.html

{{ site.time }}

This renders as:

2018-07-24 11:47:17 -0500

But it would be great to have a way to instruct the plugin to render it as expected, i.e.:

2018-07-24 11:47:17 -0500

It can be achieved by using the passthrough macro, i.e., for example:
+++{% include file.html %}+++

But that seems clunky.

Actually, it would be:
++++
{% include file.html %}
++++

This is by design per the AsciiDoc language. You are including HTML into AsciiDoc. AsciiDoc only allows raw HTML if included in a passthrough block.
I'll make a mention of this in the docs.

Other approach would be to use a custom block macro in Asciidoctor, which itself would include the content into the document tree. That might look like:
liquid::file.html[]

Thanks.

liquid::file.html[]

That would be very nice.

You're free to implement it using the Asciidoctor extension API. Here's an example to follow: https://github.com/asciidoctor/asciidoctor-extensions-lab/blob/master/lib/gist-block-macro/extension.rb


regex does not give the same outcome in scalajs vs scala

scala
scala> val that = """|

                     |List(1)
                     |
""".stripMargin
scala> "(?s).*(.*?).*".r.pattern.matcher(that).matches()
res1: Boolean = true

vs
scalajs
dom.console.log("(?s).*(.*?).*".r.pattern.matcher(that).matches()) // false

This is documented in http://www.scala-js.org/doc/semantics.html
Javascript RegEx are supported and not Java ones:
The support for regular expressions in Scala.js is implemented on top of JavaScript regexes.

Duplicate of #1201.


Fail to add 'score_thr' in detr and sparse r-cnn

I have used sparse r-cnn and detr model to achieve good AP in my own dataset. However, when I check the results, there are a bunch of false positive samples. I think this is because there are 100 proposals and I do not eliminate predictions with low confidence score. I try to add 'score_thr' in test_cfg but it doesn't work. What should I do to reduce FP? Thanks!

You can pass a high value to --show-score-thr (defualt 0.3) in test.py to filter prediction with low confidence score. See, https://github.com/open-mmlab/mmdetection/blob/3e2693151add9b5d6db99b944da020cba837266b/tools/test.py#L65

Thanks for your answer! But I do not need to visualize the results and I just want to count the number of false negative samples for a report. Can I filter those predictions with low confidence score in inference?

You can pass a high value to --show-score-thr (defualt 0.3) in test.py to filter prediction with low confidence score. See,
https://github.com/open-mmlab/mmdetection/blob/3e2693151add9b5d6db99b944da020cba837266b/tools/test.py#L65

Thanks for your answer! But I do not need to visualize the results and I just want to count the number of false negative samples for a report. Can I filter those predictions with low confidence score in inference?

For example, you can add some code to filter low confidence scores before return https://github.com/open-mmlab/mmdetection/blob/3e2693151add9b5d6db99b944da020cba837266b/mmdet/models/dense_heads/detr_head.py#L683.
add score_thr in test_cfg and use it like https://github.com/open-mmlab/mmdetection/blob/3e2693151add9b5d6db99b944da020cba837266b/mmdet/models/dense_heads/detr_head.py#L660

For example, you can add some code to filter low confidence scores before return
https://github.com/open-mmlab/mmdetection/blob/3e2693151add9b5d6db99b944da020cba837266b/mmdet/models/dense_heads/detr_head.py#L683
.
add score_thr in test_cfg and use it like
https://github.com/open-mmlab/mmdetection/blob/3e2693151add9b5d6db99b944da020cba837266b/mmdet/models/dense_heads/detr_head.py#L660

Sorry for being late! It seems that I have succeeded to add score_thr for sparse r-cnn by using a index filter.
Before:
https://github.com/open-mmlab/mmdetection/blob/3e2693151add9b5d6db99b944da020cba837266b/mmdet/models/roi_heads/sparse_roi_head.py#L360-L362
After:
filter_idx = torch.squeeze(
                scores_per_img[:, None] > self.test_cfg.score_thr)
det_bboxes.append(
                torch.cat([bbox_pred_per_img, scores_per_img[:, None]], dim=1)[filter_idx])
det_labels.append(labels_per_img[filter_idx])

I think it's correct and it works for my project. Thanks!


[FEATURE] Split the SkiaSharp package into separate NativeAssets packages

Is your feature request related to a problem? Please describe.
The download and install of SkiaSharp is potentially an issue with about 100MB of native files to pull down.
Describe the solution you'd like
The installation of SkiaSharp should only pull down the native assets that are actually required. If I install a package into Xamarin.iOS, don't pull down macOS, UWP, Android, and all the rest. 8MB is better than 100MB

I have been thinking about this and was all ready to go with some work, but then it occurred to me... Is this really worth it?
Pros:

smaller NuGet package
faster download

Cons:

extra work / maintenance
more packages
potential for mismatched package versions
potential for duplicated assets (macOS is both used on netcoreapp and xamarinmac)

Size is just a download number and has no relevance to the final app, or any relevance at all.
Any opinions?

The big Nuget Package might be a problem.
But normally this nuget package gets loaded on a developer machine with internet access and is cached.
I would rather put energy in somehow reducing the size of the native libraries (e.g. libSkiaSharp.so). libSkiaSharp.so on Android is 6.6MB which is very much on a mobile device.
If only a small feature is used, you still have to include the whole library.

Finally reached a point where the package got too big to be viable. Now we got smaller packages with SkiaSharp at <5MB (mostly xml docs) and <15MB for each asset package. UWP is a bit bigger at 18MB because it has ANGLE adn watchOS has bitcode which is pretty huge at 25MB


README updated for v2.2.0 release

Overview
The v2.2.0 release included a number of great fixes/additions that were implemented in PR #43:

Properties will be retrieved from system properties and if not found will then be retrieved from environment variables. Resolves issue: #17
If a mandatory property (CONJUR_ACCOUNT, CONJUR_APPLIANCE_URL) is not provided a more verbose exception message will be thrown instead of a NullPointerException. Resolves issue: #41
Allows the ability to supply an authentication service ID, this will allow alternative authentication methods to use this client library such as authn-iam and authn-oidc. Resolves issue: #40

However, the README wasn't updated to help users take advantage of these changes.  Today, @AndrewCopeland was kind enough to add mention of these features in PRs #66 and #67.  In this way, users will be aware that they exist, but I would like us to take this a step further and provide some detailed guidance, as described in the sections below.
1. System Property Configuration
According to Andrew, the code to support configuration via system properties has been around for quite some time, but was broken.  Additionally, the README never mentioned it.  So essentially this "bug" is really a new feature for users.  Please update the "Configuration" section of the README to address the following points/questions:

Very brief explanation (or at least link to explaining Java doc) about what system properities are.
Example(s) of providing a config value via a system property, ideally via command line option and via Maven.
Precedence rules for environment variables vs properties.
Warning to avoid storing sensitive config values (like API key) in source controlled system property files.

2. Alternative Authentication Methods
This versions add support for setting the CONJUR_AUTHN_URL configuration value in order to use a different authentication method.  Please update the "Configuration" and likely the "Authorization Examples" section of the README to address these points/questions:

Clearly state what the default authentication method is, if this value isn't set.
Describe how providing this value might affect the use of other configuration values.
Provide at least once example of configuring the API with this value.

@sgnn7: Please add me as a second review to the PR.  Thanks.

@AndrewCopeland do you have any insight for (2)? in particular, it would help us if you could share an example of configuring the API using the alternate authn-url value

@alexkalish / @izgeri Alrighty - this is finally in a state where I can say that it's ready: https://github.com/cyberark/conjur-api-java/pull/71


refactor logentry config save hook

Hmm #978 was insufficient for what I needed to do so I refactored it to this plain old method.

coverage: 88.292% (-0.003%) from 88.295% when pulling 1763140bcf4eab332fb5cd99ded5e31761d2524c on refactor-logentry-save-hook into c39d00488403c7ce7aa39af1ea3be7624d1ac6ab on main.


There is an error in subscription node of "Container Apps" when signing in with Azure China account

OS: Win 10
Build Version: 20220615.1
Regression: Not a Regression
Repro Steps:

Sign in with Azure China account.
Expand the subscription node in "Container Apps" view.
Check whether there is no error in subscription node of "Container Apps".

Expect:
There is no error in subscription node of "Container Apps".
Actual:
There is an error in subscription node of "Container Apps".

More Info:
This issue also reproduces on the previous released Container App extension 0.1.1.

I think Container Apps doesn't support Azure China yet. We'll have to just keep tracking this and see if that changes.


Add reset password button to ops project list

What this PR does / why we need it:
Adds a reset password button to the project list in the ops view
Which issue(s) this PR fixes:
Fixes #4844
Does this PR introduce a user-facing change?:
Yes, a new button and column in the ops list

How are users affected by this change: the OPs UI is updated
Is this breaking change: No
How to migrate (if breaking change): N/A

Just pushing up a draft for this at the moment to get some early feedback. I'll have a look through to see how/if we're testing the ops side of things later, but wanted to provide an early view of the UI.

@khanhtc1202 & @ffjlabo - forgot that it wouldn't notify you in draft mode :D Nothing urgent, just hoped to get some feedback on the UI before writing up the tests. Cheers!

@dgannon991
Thank you so much for the quick response!! The button UI is LGTM for me :)
Thanks to your PR, I noticed this action is extremely dangerous because the control plane operator might reset for other projects accidentally. 👀
It would be nice to prevent users from accidentally initializing static admins for other projects.
So, how about adding a confirmation screen?
e.g. the project list page -> reset password confirmation page -> success page
Reset password confirmation page like this↓ (the sentences are the draft, and I want more correct them 🙏 )
Reset Static Admin for the project XXX.
You must check the project name before you click the button.

"Reset button"

@dgannon991 @ffjlabo
How about asking the user to reinstate the project name as part of the reset password confirmation page? (Cloud service like AWS use that method as re-check step if I remember correctly)

I like the sound of that. I've got some down time over the next couple of days, so I'll give it a go and let you know :)

@dgannon991 @khanhtc1202

How about asking the user to reinstate the project name as part of the reset password confirmation page? (Cloud service like AWS use that method as re-check step if I remember correctly)

Thank you both 🙏 I agree with it!

Hi Guys,
I've added a confirmation page, and you have to retype the project ID.
One note though, the user experience is not great when you get things wrong (due to the server just returning error responses instead of markup.) Are we happy with this, as the ops pages are for technical users?
Cheers!

@dgannon991
Thank you for the nice commitment :)
I also agree the ops pages are plain because these are for technical users.
[IMO] If possible, it would be nice to show the Reset page with the failed message, or the link to the Reset page.
Project Page

Fail

Succsess

Absolutely. I'll give that a whirl over the weekend. Cheers for the continued feedback on this one guys :)

Morning! I've updated this to show a nice error message on the confirmation page. Do let me know if it's too big and red! I looked at the material UI library we use in the normal frontend for inspiration, but it is the first think like it on the ops pages!

Hi @dgannon991
Sorry for the late reply. Currently doing the other task.
So plz wait a moment 🙏

Hi @ffjlabo,
Not a problem at all, the other task looks mega! No rush from my side at all :)
D

Hi Guys,
Just working on the coverage now. I've brought it up, but I think it will now be easy to really get it much higher, so I'll have another go tomorrow night at getting it there :)
Cheers!
David

Hi Guys,
Managed to get a few more tests written, and I've got pretty much everything I added covered. It does use gomock (which is a shame) but I couldn't think of a better way to test without actually creating a project store!
Let me know what you think!
D

/review

Hi Guys, more than happy to address these here if you'd like? LMK.

Hi Guys, more than happy to address these here if you'd like? LMK.

@dgannon991 For sure, let's do as you want 👍

Thank you for saying that.
I dismissed my approval for this PR not to make this PR merge by mistake, but it does not mean the code is not good.

Nice one! I’m AFK until Thursday night, but I’ll get it done Friday morning! Cheers all.

Hi Guys,
The git history got a bit squirrely there, apologies. I rebased on my local master, but didn't realise it was stale! I'd definitely suggest a squash commit on this one!
I've made the changes, and run the tests, and things still look good.

Hi Guys,
This looks better now, removed all the silly extra commits! I've given it a run through and it all works as expected :)
Cheers!
David

I checked the behavior, and it worked fine.
I commented nits. Please re-request a review or mention us in the comments when you resolve that.


Problem with placing strings

I got a Problem on my Server
It's possible to place strings in claimed areas.  the Player gets a notification but the string will be placed anyway. And he wont lose his item.
Greetings.

https://github.com/MinecraftPortCentral/GriefPrevention/wiki/Debugging
Make sure you are running latest GP build as well
https://ore.spongepowered.org/blood/GriefPrevention/versions


Add tests for Convert

The conversion routines are already tested within each implementing matrix type.  For example, the DOK matrix type conversion routines are tested within dictionaryofkeys_test.go.  Was there another reason you wanted to move these out to a different file?


Interactions and observers not working with appfairy

I wasn't able to see any of my js scripts run on my pages when I ran the appfairy command. It seems like the issue was that appfairy renames all classes on the html files with "af-class-yourclass" so then the js file cannot attach to those after.
A quick workaround, a little time consuming but works:
Just search for selectors on bottom of webflow js file and add "af-class-" to them. i.e. ".thisClass" to ".af-class-thisClass"
They are all within these 2 initializer functions at the bottom of the Webflow generated script:
Webflow.require('ix').init(....)
Webflow.require('ix2').init(...)
Also, I don't know if its because I am rendering the pages on the server with NextJS, but I also had to add some attributes to my html tag for other animations to work correctly using:
 var doc = document.getElementsByTagName("html")[0]     doc.setAttribute('data-wf-page', 'yourPageID')     doc.setAttribute('data-wf-site', 'yourWebflowSiteID')     //optional for language     doc.setAttribute('lang', 'en')
Also, with nextJS I had to wrap these two initializer functions so they would only run on client side and not give me a "document not defined" when compiled on server using:
$( document ).ready(function() {}
Hope this saves someone else a day of debugging!

@jayb967 Appfairy renames the classes and for a good reason - it saves potential conflicts when attaching additional stylesheets, because Webflow uses extremely generic rules. I'll base my upcoming fixes on the hacks that you provided.

Yes I understand the webflow class name change which is ok, but a lot of interactions made on webflow are not called on the html new class name "af-class-.." from the generated js file. For instance here is a small snippet of my webflow generated interaction inside my js folder, after using the appfairy command:
{     "slug": "reveal-navigation",     "name": "Reveal Navigation",     "value": {         "style": {},         "triggers": [{             "type": "click",             "selector": ".menu-content",             "preserve3d": true,             "stepsA": [{                 "transition": "transform 500ms ease 0ms",                 "x": "25%",                 "y": "0px",                 "z": "0px"             }],             "stepsB": []         }, {             "type": "click",             "selector": ".reset-menu",             "stepsA": [{                 "display": "block"             }],             "stepsB": []         }]     } }, {     "slug": "close-navigation",     "name": "Close Navigation",     "value": {         "style": {},         "triggers": [{             "type": "click",             "selector": ".menu-content",             "preserve3d": true,             "stepsA": [{                 "transition": "transform 500ms ease 0ms",                 "x": "0px",                 "y": "0px",                 "z": "0px"             }],             "stepsB": []         }, {             "type": "click",             "stepsA": [{                 "display": "none"             }],             "stepsB": []         }]     } }, {     "slug": "move-right",     "name": "Move right",     "value": {         "style": {             "opacity": 0,             "x": "0px",             "y": "0px",             "z": "0px"         },         "triggers": [{             "type": "load",             "preload": true,             "stepsA": [{                 "wait": 700,                 "opacity": 1,                 "transition": "opacity 500ms ease 0ms"             }],             "stepsB": []         }]     } }, {     "slug": "zoom-in",     "name": "Zoom in",     "value": {         "style": {},         "triggers": [{             "type": "hover",             "selector": ".project-image",             "preserve3d": true,             "stepsA": [{                 "transition": "transform 1000ms ease-in-out 0ms",                 "scaleX": 1.08,                 "scaleY": 1.08,                 "scaleZ": 1             }],             "stepsB": [{                 "transition": "transform 600ms ease-out 0ms",                 "scaleX": 1,                 "scaleY": 1,                 "scaleZ": 1             }]         }]     } }, {     "slug": "rollover",     "name": "rollover",     "value": {         "style": {             "opacity": 0,             "x": "0px",             "y": "0px",             "z": "0px"         },         "triggers": [{             "type": "hover",             "selector": ".project-rollover",             "preserve3d": true,             "stepsA": [{                 "opacity": 1,                 "transition": "transform 600ms ease-out 0ms, opacity 600ms ease-out 0ms",                 "x": "0px",                 "y": "0px",                 "z": "0px"             }],             "stepsB": [{                 "opacity": 0,                 "transition": "opacity 600ms ease-out 0ms"             }]         }]     } }, {     "slug": "open-menu",     "name": "Open Menu",     "value": {         "style": {},         "triggers": [{             "type": "click",             "selector": ".main-menu",             "preserve3d": true,             "stepsA": [{                 "display": "block",                 "opacity": 1,                 "transition": "transform 200 ease 0, opacity 200 ease 0",                 "x": "0px",                 "y": "0px",                 "z": "0px"             }],             "stepsB": []         }, {             "type": "click",             "selector": ".hamburger",             "stepsA": [{                 "display": "none",                 "opacity": 0,                 "transition": "opacity 200 ease 0"             }],             "stepsB": []         }, {             "type": "click",             "selector": ".close",             "stepsA": [{                 "wait": "250ms"             }, {                 "display": "block",                 "opacity": 1,                 "transition": "opacity 200 ease 0"             }],             "stepsB": []         }]     } },,
All of my selectors are still the same name and not also changed to "af-class-classname"which then doesn't call functions (i.e. where my mouse hover displays an underline)

I guess I'll add an option to disable encapsulation but I truly don't like how webflow assumes it's the only thing that matters...

How did this turn out?

Hi, i also have this issue. Renamed classes according to your answers, yet still not working.
I think this tool can be really amazing if these issues are resolved.

Hi I am having the same issue. @DAB0mB  Do we have an option to disable encapsulation / renaming of the classes?
This is an example of a webflow site with animations that won't work on Appfairy:
https://webflow.com/website/Scholr-Education-One-Page

Thanks for your tips @jayb967
I've created the following script to convert the json events inside Webflow.require('ix2').init(...):
const fs = require('fs');

let rawdata = fs.readFileSync('events.json');
let events = JSON.parse(rawdata);

function traverse(object, convertFunction) {
    if (typeof convertFunction != "function")
        throw "convertFunction must be a function(key,valye) that returns a value for all keys"

    if (object !== null && typeof object == "object") {
        Object.entries(object).forEach(([key, value]) => {
            object[key] = convertFunction(key, value)
            traverse(value, convertFunction);
        });
    }
}

traverse(events, (key, value) => (key == "selector") ? value.split('.').join('.af-class-') : value)

fs.writeFileSync('appfairy-events.json', JSON.stringify(events))

I had also to modify my index.js file to look like this:
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import * as serviceWorker from './serviceWorker';
import './scripts'
import './styles'
import IndexView from './views/IndexView'

// Run the following commands on the console from a deployed webflow site:
// document.getElementsByTagName("html")[0].getAttribute('data-wf-page')
// document.getElementsByTagName("html")[0].getAttribute('data-wf-site')

const WEBFLOW_PAGE_ID = 'your page id'
const WEBFLOW_SITE_ID = 'your site id'

class App extends React.Component {

  componentDidMount() {
    var doc = document.getElementsByTagName("html")[0]
    doc.setAttribute('data-wf-page', WEBFLOW_PAGE_ID)
    doc.setAttribute('data-wf-site', WEBFLOW_SITE_ID)
  };

  render() {
    return (
      <React.StrictMode>
        <IndexView />
      </React.StrictMode>
    )
  }
}

ReactDOM.render(
  <App />,
  document.getElementById('root'),
);

// If you want your app to work offline and load faster, you can change
// unregister() to register() below. Note this comes with some pitfalls.
// Learn more about service workers: https://bit.ly/CRA-PWA
serviceWorker.unregister();

@DAB0mB Any chances of incorporating the above in Appfairy?

Wow thanks for writing Appfairy @DAB0mB and thanks for the tips @ronaldocpontes @jayb967!
I wrote up a summary of what I learned while facing these issues here.
Here is a little bash script that automates the application of the node script ronaldocpontes wrote:
#!/usr/bin/env bash

# Save json from webflow.js to events.json
tail -n2 webflow.js | head -n1 > events.json

# Delete last two lines of webflow.js
sed -i '$ d' webflow.js
sed -i '$ d' webflow.js

# Generate appfairy-events.json
node converter.js

# Write appfairy-events.json to webflow.js
cat appfairy-events.json >> webflow.js

# Add closing parenthesis
echo >> webflow.js
echo ");" >> webflow.js

Also if someone is facing issues with on page load interactions, I think it's a problem with Webflow -> React, not Appfairy. My work around was to make it an onclick animation, assign the click to a button with display: none, and then trigger the click of that button from useEffect/componentDidMount.
document.getElementById("animation-button").click();

I've added native support for that in version 0.8.0. It will work out of the box now

I installed appfairy 0.8.2 and still have the same problem. Thant is, the animations don't work


Fix mobile report view UI

The report view UI should be possible to use on mobile.
Changes sufficient for solving the mobile view:
Mobile and desktop changes

[x] Change right-side hamburger menu to kebab (options) menu (see mocks) on both mobile and desktop

Mobile-only changes

[x] Hide left navigation column by default
[x] Hide "Home" and "About" links and github icon in header
[x] Add left-side hamburger menu
[x] Tapping hamburger menu opens drawer showing "Home" and "About" links and the left nav (see mocks)
[x] Reduce left padding/margin on main report view to 1.5 rem (1rem on the bar chart)

I can't find a great place to put the github icon on mobile so for now I think just hide it to free up space in the header; we can add it back in later.
@lightningorb this design is intended to be minimum viable from an engineering standpoint, lmk any of this seems much more difficult than some other obvious solution.

ok this is done, with the addition of the drawer going over the content on mobile. Also added a slide in and out transition, with a box shadow on mobile.

Done.


Fast Farm

Hi everyone, I have a problem when running fast farm and want to simulate more than 1 turbine...the error is the following:
Farm_Initialize:Farm_ReadPrimaryFile:Invalid numerical input for file
"C:\Users\berna\Desktop\r-test-main\glue-codes\fast-farm\5MW_Baseline\FAST_Farm_Prova.fstf"
occurred while trying to read Wind Turbine Columns.
Aborting FAST.Farm.
If I run the simulation with only 1 turbine I have no problem...how can I fix it? thank you very much!

I also have another question...once I run a simulation succesfully, how can I see the result of the simulation?
I mean, in terms of images of the beahviou of the turbine subjected to the inflow wind?
Thanks a lot!


Version change from 16.0.0 to 16.1.0

Changes

[x] Changed package version to 16.1.0.

Pending release references

#216
#219
#220

Notes
Scribble will adapt to pending release with small set of changes, that are described here: https://github.com/Consensys/scribble/pull/238
Regards.

Codecov Report

Merging #221 (948312c) into master (78666e1) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #221   +/-   ##
=======================================
  Coverage   91.74%   91.74%
=======================================
  Files         267      267
  Lines        6551     6551
  Branches     1320     1320
=======================================
  Hits         6010     6010
  Misses        287      287
  Partials      254      254

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

I hope to see this version available this weekend :smile:
Many thanks,


Licensing Rationale

Issue to discuss licensing and rationale

I suggest we use the MIT license which we currently have.
Given that we have built this package as part of coursework and the aim is to assist others in simplifying steps in EDA, the MIT license would allow the code to be freely distributed for public use.  Furthermore, in our presentation we recognise that only 4 weeks of work was put into the package and is very basic , as such users may want to modify and alter the code to their specific needs when using the package.  By utilising the MIT package, we could gain insight and ideas from others who which to collaborate and help us improve this package in the future.
A 'drawback' of this license is that we would be forfeiting monetary returns if this is used to develop third party software but given that this isn't a priority for our group this point is moot.
I believe that overall our group should use the MIT license as it is the most permissive and user friendly which is what we are aiming for by creating the EDAhelper package.

I agree that we should use MIT license for the reasons given. Thanks.

I agree with the comments above. Thanks!


Add Reactotron builder

@ipakhomov check the code, please :) And I'll add README, if everything ok

@ipakhomov done :)

@ipakhomov I've added description to the README

@ipakhomov fixed :)


Entrypint of the app should be changed on Dockerfiles

To run your app, I had to change the entrypoint from "app" to "create_app".
It seems like you changed the structure of main.py but haven't yet applied the change to those Dockerfiles.
CMD ["uv", "run", "uvicorn", "faster_whisper_server.main:create_app"]

Fix is on master


[Docs] Components: remove source hyperlink

Notes for Reviewers
This PR fixes an issue that @ASK-03 raised.
Signed commits

[x] Yes, I signed my commits.

🚀 Preview for commit d8a8f13b5d351960e44c1e68b34bf2bb96fb9e27 at: https://65baf33f1d51a90e27a0b42d--meshery-docs-preview.netlify.app


jessie security issues?

Hi, these issues have all been previously reported and have CVE's.  Docker Cloud's "Docker Security Scanning" listed them as relevant to the jessie Docker image.
Is there any way to mitigate them in the jessie image?
Some of them are not so relevant, but curious if it's possible to include the fixes.
The report output is all HTMLy, but if you push the jessie image to docker cloud and enable "Security Scanning", you'll see a report.    Dup of #46


Escaping a double quote throws off highlighter

I have a struct definition that looks something like this:
struct MyOptions {
1: optional int foo,
2: optional separatorChar = """,
3: optional escapeChar = "\",
4: optional int bar }
Past the separatorChar definition, that syntax highlighting goes into sort of a tizzy, thinking that the quoted string is never closed.  See attached image.

Hey, thanks for this bug report. I'll echo what I said in #1: I'd fix this, but I'm not terribly familiar with the grammar and how to make that work in the cson file. This is foremost a simple port of the Thrift tmbundle and I haven't done much editing with it since it seemed to work for the Thrift I was writing at New Relic. I also haven't had to write any Thrift since I left New Relic, so I'm unfortunately not in a rush to fix that.
I would be happy to accept a PR to fix the issue of optional ListSeparators, and willing to give a commit bit to anybody who wants to do so and is more familiar with the Thrift grammar! I know this isn't an ideal response, but it's the truth.


lz4 fails on installation

Win10x64
Today I update vspkg and look what happens:
PS C:\Users\UserS> . $env:vcpkg install lz4
The following packages will be built and installed:
    lz4[core]:x64-windows
Starting package 1/1: lz4:x64-windows
Building package lz4[core]:x64-windows...
-- Using cached D:/vcpkg/downloads/lz4-lz4-v1.9.1.tar.gz
-- Using source at D:/vcpkg/buildtrees/lz4/src/v1.9.1-853d17b8f8
-- Configuring x64-windows
-- Building x64-windows-dbg
-- Building x64-windows-rel
-- Performing post-build validation
-- Performing post-build validation done
Building package lz4[core]:x64-windows... done
Installing package lz4[core]:x64-windows...
The following files are already installed in D:/vcpkg/installed/x64-windows and are in conflict with lz4:x64-windows

Installed by xxhash:x64-windows
    include/xxhash.h

Please ensure you're using the latest portfiles with `.\vcpkg update`, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
  Package: lz4:x64-windows
  Vcpkg version: 2018.11.23-nohash

So what I should to do?

Hi @aPSopt, thanks for reporting this issue.
I've fixed this issue. Now when installing lz4, xxhash.h will be installed via port xxhash.
Thanks.


Optimize AOT

Previously when using AOT the llvm ir was not optimized, in JIT if you pass the optlevel it internally optimizes the llvm ir but with AOT we have to do it ourselves.
Checklist

[ ] Linked to Github Issue
[ ] Unit tests added
[ ] Integration tests added.
[ ] This change requires new documentation.

[ ] Documentation has been added/updated.

Codecov Report
Attention: Patch coverage is 75.00000% with 4 lines in your changes missing coverage. Please review.

Project coverage is 88.57%. Comparing base (0b77a8b) to head (6477924).

Files
Patch %
Lines

src/ffi.rs
75.00%
4 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #771      +/-   ##
==========================================
- Coverage   88.57%   88.57%   -0.01%
==========================================
  Files         120      120
  Lines       35393    35408      +15
==========================================
+ Hits        31349    31362      +13
- Misses       4044     4046       +2

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Make it clear on NPM that use-contractkit => react-celo

its not clear from https://www.npmjs.com/package/@celo-tools/use-contractkit that https://www.npmjs.com/package/@celo/react-celo is the successor.
We should mark as deprecated!

done


release artifacts for release v0.0.2

Release artifacts for v0.0.2
Manual changes to helm charts:

Enabled debug logging since its a pre-releaselog:
  enable_development_logging: false
  enable_development_logging: true

removed --endpoint-url from deployment and values.yaml
Default image repo was set to u2r4f3v7. changed to aws-controller-k8simage:
  repository: public.ecr.aws/aws-controller-k8s/sagemaker-controller

Testing
PR build
Release notes draft
This release includes the following resources and updates:

Feature Group
ModelPackageGroup
ModelPackage

Adopting resource not supported

Periodic infinite requeue for endpoint and monitoring schedule

Requeues periodically even after the resource is in sync to sync the latest status from the service. E.g. scaling activity for a variant in endpoint

Tag support

Supported during resource creation
Updates not supported for tags

Changes to printer columns
Runtime update to 0.6.0

Please refer to https://github.com/aws-controllers-k8s/runtime/releases for a detailed list of changes
Some important changes,

Introduces additional debug level logs
Ability to patch a resource post delete
Support additional keys for adopted resource

/test

/test sagemaker-kind-e2e

/retest

/ok-to-test

/lgmt

/lgtm

/retest

/retest


Retrieve VIN

With this snippet of code you can retrieve VIN:
//Request VIN
  $postData = array(
    'apikey: '.$kamereon_api,
    'x-gigya-id_token: '.$id_token,
  );
  $ch = curl_init('https://api-wired-prod-1-euw1.wrd-aws.com/commerce/v1/accounts/'.$accountId2.'/vehicles?country='.$country);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  curl_setopt($ch, CURLOPT_HTTPHEADER, $postData);
  $response = curl_exec($ch);
  if ($response === FALSE) die(curl_error($ch));
  $responseData = json_decode($response, TRUE);
  $VIN = $responseData['vehicleLinks']['vehicleDetails'][0]['vin'];
echo"

VIN response:

" .  json_encode(json_decode($response), JSON_PRETTY_PRINT) . "

";
echo "

VIN:
" .  $vin . "

";

The "trick" is to use the second account number, which you can retrieve adding this line to the account retrieval code:
$accountId2 = $responseData['accounts'][1]['accountId'];
It has property "accountType" = "MYRENAULT".

It's a good idea to receive the VIN directly from the account. The VIN should be saved in the session file to minimize number of API calls.
And the snippet above works only with one car registered the account, are there more than one car on the same MYR account it don't work.

And you should also take care of the type of the account: maybe the myrenault account is always second one, maybe not, so it would be better to check for "accountType" value.


HBASE-25751 - Add writable TimeToPurgeDeletes to ScanOptions

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 28s
Docker mode activated.


Document what publishing apps send to rummager

Document the content in our indexes and where it comes from.
Rendered version
Link through to the code that sends stuff to rummager. We'll be changing how content gets indexed and I think it will be useful to be able to quickly find the source when comparing across 10 applications.
It's fine for this to be removed when it becomes out of date.

Note that the numbers on the pie chart don't add up properly; I think because there's a bunch of specialist content with missing publishing_app data.
This is just intended as a rough illustration of what we have so I'm going to leave it as it is until we have accurate information about publishing app and document type.


Update SpigotWebRequester.cs

Added support back to spigot, without depending on serverjars.
As serverjars dropped support for SpigotMC, I decied to use BuildTools technique to fetch versions, and then after having all the versions, simply make a download request to getbukkit.org
A new library has been needed in the process, HtmlAgilityPack

I actually have a pending pull for updating Fork. We're waiting on some icons to be designed since I added support for new server versions. We actually chose to deprecate Spigot support since tbh nobody should be using it as server software.

I actually have a pending pull for updating Fork. We're waiting on some icons to be designed since I added support for new server versions. We actually chose to deprecate Spigot support since tbh nobody should be using it as server software.

I don't think spigot should not be used as a server software. It's right (and a fact) that other alternatives such as Paper or Purpur are simply faster, but has been also tested that some spigot plugins don't work as expected in Paper or don't even work on Purpur because the modifications they've done to them.
You could of course simply use paper only plugins, but there're not as many as spigot plugins.

I actually agree with @KarmaDeb, because it can't hurt to support more types of servers. I will merge this PR and try to merge the changes to the PR of @PenguCCN. Will try to build a new beta release until the weekend


Change danger icon

I hope I am not offending anyone but I think the default notification, danger, icon is a bit strange.
It looks like a button to close the notification...
This suggested icon follows the design of the warning icon.
Current warning, and suggested danger icon

Current danger icon

Sharing my two cents here...

It looks like a button to close the notification...

I do agree with that, but i think danger relates to errors hence the x icon. I don't see any onther icon that fits better here...
For the other icons, to me, they resemble:
exclamation-circle - Information
exclamation-triangle - Warning

I don't think this is a good idea, as currently warning and danger are much more distinguishable.
Since the icon is colored red too, and positioned inline in front of the title, I don't see how this would be confusing.
Feel free to override the default icon for your own projects with whatever works for you though. 🙂


Upgrade AngularJS to v1.3.15

Upgraded AngularJS (core and ngRoute) to version 1.3.15.
Fixes #680

As always with Angular related stuff, I have a real hard time reviewing PRs but overall it looks good to me.
We still have the behaviour that the VRF selector dialogue closes when clicked. Should we fix that too or do you want to keep that in a separate issue (do we have an issue for that?)?

I added #728 to keep track of the VRF selector closing issue. Since the rest of this patch looks good I'm merging! =)


Update flyway-core to 7.9.2

Updates org.flywaydb:flyway-core from 7.8.2 to 7.9.2.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.flywaydb", artifactId = "flyway-core" } ]

labels: library-update, semver-minor

Superseded by #144.


Disable Test Minimum Version CI Job

This PR bumps the minimum required version of jupyter_client to fit the one defined in jupyter_server

@blink1073 I am running this flow on my MacOs Laptop and it succeeds.
platform darwin -- Python 3.9.12, pytest-7.1.2, pluggy-1.0.0 -- /Users/echarles/opt/miniconda3/envs/tmp/bin/python3.9
cachedir: .pytest_cache
rootdir: /Users/echarles/datalayer/ext/jupyter-notebook-classic, configfile: pyproject.toml, testpaths: tests
plugins: anyio-3.6.1, tornasync-0.6.0.post2, nbval-0.9.6, cov-3.0.0
collected 3 items

tests/test_notebookapp.py::test_tree_handler PASSED                                                                                [ 33%]
tests/test_notebookapp.py::test_notebook_handler PASSED                                                                                [ 66%]
tests/test_notebookapp.py::test_terminal_handler PASSED

whereas it fails on the CI.
self = <jupyter_server.serverapp.ServerApp object at 0x7fed8b442e90>
filename = 'jupyter_config'
path = ['/home/runner/work/nbclassic/nbclassic', '/tmp/pytest-of-runner/pytest-1/test_notebook_handler0/config', '/tmp/pytest.../pytest-1/test_notebook_handler0/env/etc/jupyter', '/tmp/pytest-of-runner/pytest-1/test_notebook_handler0/etc/jupyter']
    @catch_config_error
    def load_config_file(self, filename, path=None):
        """Load config files by filename and path."""
        filename, ext = os.path.splitext(filename)
        loaded = []
        for config in self._load_config_files(filename, path=path, log=self.log,
>           raise_config_file_errors=self.raise_config_file_errors,
        ):
E       RuntimeError: generator raised StopIteration

You tested locally with the minimum version of jupyter_server?

I have pip installed from source, which installs jupyter-server 1.17.0.

The version used in the min version test is 1.8.  It looks like that needs to be bumped to a higher version.

I have bumped jupyter-server>=1.17.0 and get the same exception.

I'm not sure then, I don't have the bandwidth to dive in on this, I'd say remove the CI job.

I have tried also with different python versions without luck. I will disable the job.

@blink1073 I have disabled the failing test in the job, and now CI is green 👌

I have renamed this PR to Disable... and added a note on https://github.com/jupyter/nbclassic/issues/100#issue-1235442957
This is ready to be merged.

Great, thanks!


unsafe: document valid uses of unsafe.Pointer for non-Go memory

What version of Go are you using (go version)?

$ go version
go version go1.14.10 linux/amd64

Does this issue reproduce with the latest release?
N/A
What operating system and processor architecture are you using (go env)?
N/A
What did you do?

Read the documentation for unsafe.Pointer
What did you expect to see?
A documented method for accessing memory outside of the garbage-collected heap, such as memory allocated by C’s malloc.
What did you see instead?
No such method.

I'm not sure exactly what you are asking for here. What does "accessing memory" mean here? Do you mean allocating, or just reading & writing?
Reading and writing can be done on non-Go memory just as you would on Go heap memory. Cast the unsafe.Pointer to a concrete pointer type and go at it. (With the large caveat that the non-Go memory cannot contain pointers into the Go heap.)
For allocating, there are many possibilities. Package unsafe probably isn't the place to document those. For instance, sycall.Mmap or C.malloc would be documented in their packages, not in unsafe.

The problem is that the non-Go memory might contain invalid pointers, which proper C callers will never dereference.

I see. Yes, we should probably say something about pointers-which-are-not-actually-pointers.
The short answer is use uintptr for those. You can't actually dereference them in Go, so there's no benefit to using unsafe.Pointer.
Note that C.malloc never returns an invalid pointer.

Note that there is only a potential problem when a value is copied into Go memory one way or another.  A pointer value at rest in non-Go memory is never a problem.

Is it okay to have a pointer in the Go heap, that points to memory not allocated by Go?

Yes, as long as the pointer is to a valid address.
(A pointer to an entirely-unmapped address is not ok in general, but a pointer to an address mapped in by C code or by an mmap system call should be fine.)

I am a bit confused here: non-Go memory could have any value at all, so the Go runtime obviously needs to treat it specially.  Why does it access the memory at all if it can’t use its value?

The Go runtime does not access non-Go memory.  But the Go runtime does make some sanity checks on pointer values, and crashes if it finds a pointer that holds a clearly invalid value--such as a pointer that can't possibly point to any address mapped into memory.
I would encourage you to take a step back with your questions, which seem very specific and potentially confusing.  Is there a broader question that you are trying to ask?

The short answer is that the current behavior makes automatic binding generation much more difficult.

The short answer is that the current behavior makes automatic binding generation much more difficult.

Could you elaborate? What is "automatic binding generation" and how is it made difficult?

The short answer is that the current behavior makes automatic binding generation much more difficult.

Could you elaborate? What is "automatic binding generation" and how is it made difficult?

Tools that generate Go code from C header files do not know if something with a pointer type in C is actually a valid pointer.  Some C APIs use pointers to refer to non-pointer data, but this cannot be determined by just parsing C headers.

Some C APIs use pointers to refer to non-pointer data

Those APIs are not portable. Per the C11 standard, “the result is implementation-defined, might not be correctly aligned, might not point to an entity of the referenced type, and might be a trap representation.”
When passed to Go as an unsafe.Pointer, it happens to be equivalent to a trap representation.

Some C APIs use pointers to refer to non-pointer data

Those APIs are not portable. Per the C11 standard, “the result is implementation-defined, might not be correctly aligned, might not point to an entity of the referenced type, and might be a trap representation.”

They are portable to virtually all platforms I know of.


Table of Contents (and other anchor links within Doxygen do not work)

In the case of links to anchors in the same document (e.g. the index page) Doxygen is using a different translation for the anchors:

Possible solution is docfx generates conceptual docs which will link out to api/functional docs which are generated by doxygen

The EngSys team is not going to get to this any time soon.  If this is a priority for the C language team, please go ahead.


Remove accidentally added text in FieldSet

The conditional className was accidentally kept inside the Children slot's children when moving it into it's classesResolver.

Please add a changeset for this, thanks!

This was broken in next and is now fixed for next...
A changeset would not make sense in a combined V7 changelog.
Or are there separate changelogs for each beta-release and no combined changelog?


Release handling of large appmaps

Needed to release the handling of large appmaps.

:tada: This PR is included in version 0.71.1 :tada:
The release is available on:

v0.71.1
GitHub release

Your semantic-release bot :package::rocket:


Alpha blended mesh ordering issue

Hi,
I've noticed some issues with alpha blended meshes, where the sorting order chosen by Babylon is wrong (and inconsistent as you move the camera)
It seems very likely its due to Babylon sorting meshes according to the center of the bounding sphere (at least from what I can tell):
Avoid having heavily-stretched alpha blended meshes (i.e. large planes); since the center of its bounding sphere is used for depth sorting, doing this may result in a mesh being sorted as far away from the camera but actually closer to many other meshes.
https://doc.babylonjs.com/divingDeeper/materials/advanced/transparent_rendering#rendering-order
It can be seen in test with the shadow:

(and when I zoom out)

I imagine this could be fixed by raycasting towards the mesh from the camera and manually setting alpha indexes dependent on if you hit a transparent voxel before reaching the mesh
I'm wondering if you've thought about this at all or have a simpler solution?

I've also noticed this issue affecting non-opaque blocks in noa-test, which seems like less of an easy fix

But I couldn't get it to affect the a/b/c/d/1/2 blocks (I assume they are alpha-tested instead of blended?)

As of babylon 5.0, it sounds like there's a feature that will fix this, though I haven't tested it - https://doc.babylonjs.com/divingDeeper/materials/advanced/transparent_rendering#generality
It notes there could be a perf hit (and it's also applied to alpha-tested meshes, which is unneeded)