KAFKA-7616: Make MockConsumer only add entries to the partition map r…

…eturned by poll() if there are any records to return
The MockConsumer behaves unlike the real consumer in that it can return a non-empty ConsumerRecords from poll, that also has a count of 0. This change makes the MockConsumer only add partitions to the ConsumerRecords if there are records to return for those partitions.
A unit test in MockConsumerTest demonstrates the issue.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

retest this please


Show parent commits from the pull request view of a commit

When a commit is seen in the context of a pull request, its parents are not shown:

single parent:
https://github.com/sindresorhus/refined-github/pull/1939/commits/8dbef0104b19aee380e0bd17492c1402bd818ab5
two parents:
https://github.com/chinese-poetry/chinese-poetry/pull/123/commits/5aeb8445648373432ff049f0aab5761f360c7555

:warning: Edit, put these links between backticks to avoid Github rewriting them.
When the same commit is seen outside its pull request, its parents are shown:

single parent: https://github.com/sindresorhus/refined-github/commit/8dbef0104b19aee380e0bd17492c1402bd818ab5
two parents: https://github.com/chinese-poetry/chinese-poetry/commit/5aeb8445648373432ff049f0aab5761f360c7555

If this info is available, it could be useful to add it to the pull request view, too.

I personally think this is more work than it's worth to implement, but you should definitely send a feature request to GitHub<EMAIL_ADDRESS>

This doesn't seem terribly hard, but I basically never rarely use this information.
Here's a demo GQL (try it on https://developer.github.com/v4/explorer/)
{
  repository(owner: "chinese-poetry", name: "chinese-poetry") {
    object(oid: "5aeb8445648373432ff049f0aab5761f360c7555") {
      ... on Commit {
        parents(first: 100) {
          nodes {
            id
          }
        }
      }
    }
  }
}

Or v3
https://api.github.com/repos/chinese-poetry/chinese-poetry/git/commits/5aeb8445648373432ff049f0aab5761f360c7555

This doesn't seem terribly hard, but I basically never use this information.

I use it to check merge commits during code reviews.
 "Merge master in feature/a"
          |\
          | \
feature/a .  . master
          .  .
          .  .
          .  .
          .  .
           \ .
            \. master~6

master commits could have (inadvertently) been rewritten locally before merging.

import React from 'dom-chef';
import cache from 'webext-storage-cache';
import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';

import features from '.';
import * as api from '../github-helpers/api';
import {getRepoGQL, getRepoURL} from '../github-helpers';

const getCommitChanges = cache.function(async (commit: string): Promise<string[]> => {
	const {repository} = await api.v4(`
		repository(${getRepoGQL()}) {
			object(expression: "${commit}") {
				... on Commit {
					parents(first: 2) {
						nodes {
							abbreviatedOid
						}
					}
				}
			}
		}
	`);

	return repository.object.parents.nodes.map((parent: AnyObject) => parent.abbreviatedOid);
}, {
	cacheKey: ([commit]) => 'pr-commit-parents:' + commit
});

async function init(): Promise<void> {
	const commitSha = location.pathname.split('/').pop()!;
	const parents = await getCommitChanges(commitSha);
	const shaBlock = await elementReady('.sha-block');
	shaBlock!.before(
		<span className="sha-block ml-0">
			{parents.length === 1 ? '1 Parent ' : '2 Parents '}
			{parents.map((parent, index) => (
				<>
					<a
						className="sha"
						data-hotkey={index === 0 ? 'p' : 'o'}
						href={`/${getRepoURL()}/commit/${parent}`}
					>
						{parent}
					</a>
					{parents.length === 2 && index === 0 ? ' +   ' : ' '}
				</>
			))}
		</span>
	);
}

void features.add({
	id: __filebasename,
	description: 'Adds commit parents on PR commits.',
	screenshot: 'https://user-images.githubusercontent.com/16872793/83922964-4cbe0d00-a74f-11ea-9978-c863725b8663.png'
}, {
	include: [
		pageDetect.isPRCommit
	],
	waitForDomReady: false,
	init
});

If this is accepted then I made POC https://github.com/yakov116/refined-github/tree/pr-parent-commit
If not lets close the issue

@fregante is this accepted?

@fregante ?

We are going to pass on this, the information is just one page away.


US05.01.01

As a claimant, I want to list all the expense items for a claim, in order of entry, showing for each expense item: the date the expense was incurred, the category, the textual description, amount spent, unit of currency, whether there is a photographic receipt, and incompleteness indicator.

working


Allow using VAR= and setting the value to empty string

Hi! This would indeed make fill-in-the-blank .env.sample files nicer :)
Please let me know if you'd like me to change anything and I'd be happy to! 🌞
Fixes #54.

Hi @carols10cents! Thanks for your contribution! Merging 👍


Follow naming conventions in id

Renaming wild_type to wildType for the id to follow the naming conventions -> fix for #15

@UlrikeS91 : I agree with Oli's suggestion (cf. also #15) Do you agree? if yes please feel free to merge.

@UlrikeS91 : I agree with Oli's suggestion (cf. also #15) Do you agree? if yes please feel free to merge.

@olinux and @lzehl, shouldn't the file name also be renamed to "wildType" then?

@olinux and @lzehl, shouldn't the file name also be renamed to "wildType" then?

@UlrikeS91 no, the entries for the "name" property stays at it is usually written. the ID and the type have conventions:

ID: lowerCamelCase
type: UpperCamelCase
Which is true for spaces, but only question here is what to do with dashes in names? Should they remain in the ID and type?
@olinux what do you think?

@UlrikeS91 no, the entries for the "name" property stays at it is usually written. the ID and the type have conventions:

ID: lowerCamelCase
type: UpperCamelCase
Which is true for spaces, but only question here is what to do with dashes in names? Should they remain in the ID and type?
@olinux what do you think?

I think dashes should be generally avoided if anyhow possible. Otherwise, I would suggest to treat them just as other "filling" characters and therefore treat them as if they would be a space... meaning "foo-bar" becomes "fooBar"

I think dashes should be generally avoided if anyhow possible. Otherwise, I would suggest to treat them just as other "filling" characters and therefore treat them as if they would be a space... meaning "foo-bar" becomes "fooBar"

@olinux okay. we can follow this convention. For this PR : @UlrikeS91 is right, but I misunderstood her. Could you change the filename of this json-ld also to "wildType.jsonld" ?

@olinux okay. we can follow this convention. For this PR : @UlrikeS91 is right, but I misunderstood her. Could you change the filename of this json-ld also to "wildType.jsonld" ?


Order of parameters not preserved when using x-prompt

🐞 Bug report
Command (mark with an x)
- [X] new
- [ ] build
- [ ] serve
- [ ] test
- [ ] e2e
- [X] generate
- [ ] add
- [ ] update
- [ ] lint
- [ ] xi18n
- [ ] run
- [ ] config
- [ ] help
- [ ] version
- [ ] doc

Description
When Angular CLI is asking  for parameters specified with x-prompt in a schematics, the order should be preserved. This seems to be true for small number of prompts, but breaks when more are used.
The likely culprit is the sort on top of _applyPrompts in https://github.com/angular/angular-cli/blob/master/packages/angular_devkit/core/src/json/schema/registry.ts
It seems that older V8 versions didn't implement stable sort. I don't follow exactly the Node releases, so it's possible this is fixed in the absolutely newest one.
Seeing that the priorities are currently not configurable, maybe commenting-out the sort call is the quickest fix.
🔬 Minimal Reproduction

define schema.json with larger number of parameters and x-prompt (our is currently using 13)
run ng new or ng generate without providing the parameters, thus triggering the interactive prompts

🌍 Your Environment

Angular CLI: 7.3.8
Node: 10.15.3
OS: win32 x64
Angular:
...

Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.13.8
@angular-devkit/core         7.3.8
@angular-devkit/schematics   7.3.8
@schematics/angular          7.3.8
@schematics/update           0.13.8
rxjs                         6.3.3
typescript                   3.2.4

The versions of V8 used within Node.js 10 and earlier use an unstable quicksort for arrays with a length  larger than 10.  Node.js 11/12+ use V8 7.0+ which implements a stable sort instead.


[Feat]: README File needs proper optmization with addition of images and sub sections of the web application

Is there an existing issue for this?

[X] I have searched the existing issues

Feature Description
Detailed description of each feature with its image and schematics(wherever possible)
Use Case
Will help user to understand the nature of the website and its cause which its trying to convey to users
Benefits

Improves Readability
Formats the readme file for efficient usage
Adds image which increases engagement and enhances proper understanding of the cause
-Improves overall User Experience

Priority
High
Agreements

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSoC contributor
[X] I'm a Hacktoberfest contributor
[X] I want to work on this issue
[X] I'm willing to provide further clarification or assistance if needed.

If possible please do assign me , i will work on it and update it to enhance user experience


Default value for numerical word weighting

The default numerical value is currently 0, which seems unusual because the default weighting is 1. So clicking on a plus sign expecting to get 1.1 instead returns 0.1.

It has been fixed.


TypeError: Cannot promisify an API that has normal methods with 'Async'-suffix

$ node --version
v8.12.0

$ npm-register --version
2.7.1

I am getting this error when I start the npm-register server with S3 set.
Opbeat agent is inactive due to configuration
/usr/local/share/.config/yarn/global/node_modules/bluebird/js/release/promisify.js:54
                    throw new TypeError("Cannot promisify an API that has normal methods with '%s'-suffix\u000a\u000a    See http://goo.gl/MqrFmX\u000a"
                    ^

TypeError: Cannot promisify an API that has normal methods with 'Async'-suffix

    See http://goo.gl/MqrFmX

@dgautsch for some reasons it seems that the NPM package does not contain the latest version tagged on the git repo 2.7.1 <> 2.8.1 I will check if the last version fix the issue

Yep I confirm this issue does not exist with the latest version

@canercandan yea i haven't published 2.8.1 yet because I wanted to do some more testing. Thanks for checking!

Thanks @dgautsch for the heads-up though the lastest npm package version available is not working with S3 which is quite sad, which version shall we use (available in NPM) to get S3 working with? thanks

@canercandan I've published 2.8.1, please give it a try. Thanks!


HBASE-28331 Client integration test fails after upgrading hadoop3 ver…

…sion to 3.3.x
Patch hadoop 3.3.x to make minicluster work again

See https://ci-hbase.apache.org/job/HBase Nightly/job/HBASE-28331-jenkins/6/
After the patch here we could pass client integration test again.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+0 :ok:
shelldocs
0m  0s
Shelldocs was not available.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

_ master Compile Tests _

+0 :ok:
mvndep
0m 12s
Maven dependency ordering for branch

+1 :green_heart:
spotless
0m 41s
branch has no errors when running spotless:check.

_ Patch Compile Tests _

+0 :ok:
mvndep
0m  4s
Maven dependency ordering for patch

-0 :warning:
shellcheck
0m  0s
The patch generated 4 new + 0 unchanged - 0 fixed = 4 total (was 0)

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
spotless
0m 38s
patch has no errors when running spotless:check.

_ Other Tests _

+0 :ok:
asflicense
0m  0s
ASF License check generated no output?

2m 25s

Subsystem
Report/Notes

Docker
ClientAPI=1.44 ServerAPI=1.44 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5657/1/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/5657

Optional Tests
dupname asflicense spotless shellcheck shelldocs

uname
Linux f994996a86f0 5.4.0-166-generic #183-Ubuntu SMP Mon Oct 2 11:28:33 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
master / d82a892fb8

shellcheck
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5657/1/artifact/yetus-general-check/output/diff-patch-shellcheck.txt

Max. process+thread count
44 (vs. ulimit of 30000)

modules
C:  U:

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5657/1/console

versions
git=2.34.1 maven=3.8.6 shellcheck=0.8.0

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

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

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+0 :ok:
shelldocs
0m  0s
Shelldocs was not available.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

_ master Compile Tests _

+0 :ok:
mvndep
0m  5s
Maven dependency ordering for branch

+1 :green_heart:
spotless
0m 37s
branch has no errors when running spotless:check.

_ Patch Compile Tests _

+0 :ok:
mvndep
0m  5s
Maven dependency ordering for patch

+1 :green_heart:
shellcheck
0m  0s
There were no new shellcheck issues.

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
spotless
0m 37s
patch has no errors when running spotless:check.


Fix Material Resolved with Texture References

Please check if the PR fulfills these requirements

[x] The commit message follows our guidelines
[x] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
What is the current behavior? (You can also link to an open issue here)
What is the new behavior (if this is a feature change)?
Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
Other information:

Codecov Report
Base: 34.28% // Head: 34.29% // Increases project coverage by +0.00% :tada:

Coverage data is based on head (7c1cd0f) compared to base (a6ddd00).
Patch coverage: 0.00% of modified lines in pull request are covered.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1076   +/-   ##
=======================================
  Coverage   34.28%   34.29%
=======================================
  Files         336      336
  Lines       14504    14506    +2
  Branches     2225     2227    +2
=======================================
+ Hits         4973     4975    +2
- Misses       8990     8992    +2
+ Partials      541      539    -2

Impacted Files
Coverage Δ

packages/loader/src/MaterialLoader.ts
2.32% <0.00%> (-0.12%)
:arrow_down:

packages/loader/src/gltf/parser/SceneParser.ts
1.02% <0.00%> (ø)

packages/math/src/Color.ts
89.28% <0.00%> (+3.57%)
:arrow_up:

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

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


Issue with RemoteTokenServices decoding the /oauth/check_token result

I've set up an authorization server and a resource server to use the remote token services on spring boot.
The authorization server returns the xml below from the /oauth/check_token endpoint:
<Map>
    <aud>resource_1</aud>
    <aud>resource_2</aud>
    <exp>1487025250</exp>
<EMAIL_ADDRESS>    <authorities>ROLE_ADMIN</authorities>
    <authorities>ROLE_USER</authorities>
    <client_id>client_1</client_id>
    <scope>read</scope>
    <scope>write</scope>
</Map>

The issue is that the decoded authentication doesn't decode the authorities and scopes correctly. It seems to convert the list to a string by taking the last item so the authentication only has the ROLE_USER authority and the write scope.

Okay, so I fixed this by removing com.fasterxml.jackson.dataformat:jackson-dataformat-xml from the build file. Does this mean that xml serialization isn't supported?

I think this is related to FasterXML/jackson-dataformat-xml#11 which will not be fixed. Maybe the documentation could warn users about this?

@calebkiage See https://github.com/FasterXML/jackson-dataformat-xml/issues/205 and use the Gist provided in the comments to work around this issue.


Throw ValueError in draw bounding boxes for invalid boxes

Closes #5517
We also suggest users to convert the boxes, in case they are using some other format.

I can cherry pick this to release branch as well :) let me know if needed


Reimplement scrolling from wheel

Just a hack right now.
By default, Chrome & Safari seem to 'lock' scrolling to horizontal or vertical. That seems weird for our game. So, here I reimplement scrolling from the wheel events. The allows diagonal scrolling on a mac trackpad.
Some thoughts / observations:

This makes scrolling in Firefox pretty broken, although diagonal scrolling already worked there, so a hack like this could use UA-sniffing.
I've only tested with a mouse & trackpad on mac. It's possible this breaks things on other device combinations.

@surma @kosamari do you think this is worth pursuing?

It makes scrolling on a Chromebook really weird/broken too.
If we think about shipping this, we should only ship it to Chrome/Safari on mac.

Closing this. It's interesting, but too risky to land.


Hi, Can it be configured to detect only one of 80 classes?

I have a few questions:

I want to use the original [yolov5n. Onnx] and configure it to detect. For example, in the class of [person], I want to filter during detection, not after the results come out. Can I do this?
Will this increase our detection speed?
If we can't do this, can we only realize it by starting a new training model?

I am a beginner of yolov5. This code example is very helpful to me. Thank you

@luopinluobo you have to train a new model if you need only 1 class, you may change Dimensions, Labels but it won't work, beacuse output tensor will have size of 85 anyway and will contain predictions for all trained classes.

@kkarahainko
Thank you very much for your reply. It seems that we can't directly use some trained models and use their subclasses.
If the new model has only one class, will the prediction speed be significantly improved?

@luopinluobo it depends on what you're going to achieve, number of classes will not significantly improve the detection speed, pay attention to GPU acceleration, Im getting 30+ fps on laptop with rtx 3060, it's enough for tasks like video, stream processing etc.

@luopinluobo im not sure why can't you use pre-trained models )
var persons = predictions.Where(x => x.Label.Name == "person"); persons will containt only "person" predictions

@kkarahainko
I just want to test whether there is a big improvement. Now I have also obtained 30 + FPs in gtx1080ti, but the target machine is gtx1050. I haven't tested whether it can be met, so I want to find out whether there is any way to improve the speed. If the speed meets my requirements. I will use your recommendation and filter the results

@kkarahainko

It seems that [Python] can be used, but I don't know how to use .Net to implement it

@luopinluobo technically it's possible, copy whole tensor to smaller one, liike this
var output = new DenseTensor<float>(new[] { 1, 25200, 6 });

Parallel.For(0, 1, (a) =>
{
    Parallel.For(0, 25200, (b) =>
    {
        Parallel.For(0, 6, (c) =>
        {
            output[a, b, c] = original[a, b, c];
        });
    });
});

but I didn't see any difference + C# has no Tensor range and GPU acceleration operations, so I've decided not to implement this type of filtering for now, see no sense and didn't find elegant way.


Failure while linking BasicServer in osvr-core building (Ubuntu 16.04)

Hi guys, so after following instructions about how to build osvr-core in Ubuntu, i got the following error. It seems to indicate a problem with jsoncpp, however i followed this recipe that seems to work for almost everybody. I use some help with this, any idea?
Scanning dependencies of target osvr_server
[ 89%] Building CXX object apps/CMakeFiles/osvr_server.dir/osvr_server.cpp.o
[ 89%] Linking CXX executable ../bin/BasicServer
../lib/libosvrServer.so.0.6: reference to `Json::Value::operator=(Json::Value)' undefined
../lib/libosvrServer.so.0.6: reference to `Json::Value::Value(Json::Value&&)' undefined
collect2: error: ld returned 1 exit status
apps/CMakeFiles/BasicServer.dir/build.make:100: recipe for target 'bin/BasicServer' failed
make[2]: *** [bin/BasicServer] Error 1
CMakeFiles/Makefile2:2569: recipe for target 'apps/CMakeFiles/BasicServer.dir/all' failed
make[1]: *** [apps/CMakeFiles/BasicServer.dir/all] Error 2
[ 89%] Linking CXX executable ../bin/osvr_server
../lib/libosvrServer.so.0.6: reference to `Json::Value::operator=(Json::Value)' undefined
../lib/libosvrServer.so.0.6: reference to `Json::Value::Value(Json::Value&&)'  undefined
collect2: error: ld returned 1 exit status
apps/CMakeFiles/osvr_server.dir/build.make:100: recipe for target 'bin/osvr_server' failed
make[2]: *** [bin/osvr_server] Error 1
CMakeFiles/Makefile2:2609: recipe for target 'apps/CMakeFiles/osvr_server.dir/all' failed
make[1]: *** [apps/CMakeFiles/osvr_server.dir/all] Error 2
[ 89%] Linking CXX executable ../../bin/uvbi-test-imu
[ 89%] Built target uvbi-test-imu
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2
```
Thanks!

I run into this sort of error when I'm accidentally compiling against two different versions of jsoncpp: for example, the header files in a manually compiled version and the libraries in the system-installed version (or vice versa).

@godbyk thank you so much for replying. So, how could i get rid of the version of jsoncpp that makes noise?

Well, in my case, I uninstalled the system-wide version since nothing else was using it. If you're building jsoncpp yourself, I recommend using the 0.y.z branch.
You could also run make VERBOSE=1 to see the options CMake is passing to the compiler. That can help sort out which include paths and library is being used.

That solved my problem. The exact solution is the following:

Cloned jsoncpp source using the 0.y.z branch.
Built jsoncpp with cmake (using flags found here).
Replaced json folder in path /usr/local/include with the one in /usr/local/include/jsoncpp/json
Built OSVR-CORE, then make and finally sudo make install.


Remove initial_change when CreateTableTransaction apply table updates on an empty metadata

Fixes #864
Remove initial_change as described in Kevin's #950. This PR relies on Pydantic model's model_construct to create a model without validation. This gives us the flexibility to upgrade from TableMetadataV1 to TableMetadataV2 without worrying about validators terminating the process because of some incomplete fields.

I want to get this PR in before the next release, please let me know if there's anything I can do to move it along!

@kevinjqliu Thanks for reviewing this!  I've updated the PR. It will be great to include this in the next release.

Thanks @HonahX for the fix and @Fokko for the review! One step closer to 0.8.0!


Python-Miio update attempt on every server reboot at shutdown and start

There seems to be an update twice at every reboot (on shutdown and start) for python-miio .
After running the command manually I concluded it's already the version it's trying to upgrade to but each time the command is run it takes over 1 minute before I get the error stating it's already the latest version !
This results in what is aproximately 3 minutes of extra time for restarting HA !
Here is the command that is run on every reboot ( both on shutdown and start) :
/usr/local/bin/python3 -m pip install python-miio==0.4.7 --no-cache-dir --upgrade --constraint /usr/src/homeassistant/homeassistant/package_constraints.txt --find-links https://wheels.home-assistant.io/alpine-3.10/armv7/ --prefer-binary

Hassio Version 102.1
No custom packages related to xiaomi miio in any way

Sounds like hassio bug to me, the xiaomi_miio integration is not doing anything special by itself.

Removed the integration hassio, since it has nothing to do with the hassio integration.
Furthermore, Hass.io just runs the Home Assistant docker images (the same images as Docker), and can not be "caused" by Hass.io specifically.

Do you have any custom components/integrations running related to any Xiaomi things? If so, which ones?

@frenck none related to xiaomi, just using the miio platform .
Any chance this is normal behaviour since I'm running HA in a docker ? It may need to rebuild and check the python dependencies but it's quite disturbing to see the reboot time suffer this much in the process .
Perhaps a workaround would be to use the Custom Deps addon and try to install these python dependencies directly so it does not need to update everytime it boots .

Could you check your custom_components folder a second time? I assume there is a custom component with an old manifest.json pointing to python-miio==0.4.6 or something else.

@syssi thanks!!! I assumed all my custom_components were showing up on Hassio frontend and forgot I had installed the xiaomi cooker component manually ! This was what was causing it , the restarts are so much faster now !
On a side note, any way I can integrate this custom component without having to go through the painfully slow dependency install process everytime I restart ?

I will update the custom component. Could you create an issue there? Thanks!

@syssi done !


[zh] resyn windows pages: windows-resource-management.md

Accepted localization task in #34033 from @tengqm. This is win-2 to submit. The path is:
content/en/docs/concepts/configuration/windows-resource-management.md

/approve

/lgtm


Smart file watching

As discussed in #19 and other issues watching the full solution tree sometimes results in too many open files errors, especially when one uses client-side package managers like npm or bower. A solution could be to watch single directories, excluding problematic ones. My idea is to:

Extract project structure information from both the solution file and the top-level global.json "projects" key and use a bit of euristic (see later) to determine which subdirectories should be watched for changes.
Look for exclude patterns in each subdirectory: this could be made configurable but ignoring node_modules, bower_packages and other well-known names is probably a good start.
For each subdirectory that doesn't contain anything to ignore just create a single watcher.
For each subdirectory that contains something to ignore creare a top-level watcher with IncludeSubdirectories set to false and then one watcher for every directory.

We will end up with more watchers than strictly necessary but, given that one usually doesn't have tens of directories inside each project, not that much more.
Does this seems sensible or am I missing something?

It would need to handle new directories that get created or new projects being added. I wonder if there is any problem creating lots of individual file watchers.
I am still tempted to just rely on the IDE detecting file changes since this feature already exists and may be simpler to implement. It also completely fixes the too many files problem.

I fear that the IDE will not detect files added from the outside but I don't know about this part of MonoDevelop: which files exactly does it watch?

Yeah I agree it may not detect files added outside the IDE.
How often does adding files outside the IDE happen in practice? I was assuming that if you are in the IDE then you are adding new files using the IDE.
The IDE will detect files that have changed that it knows about. For example if you edit a .csproj file outside the IDE when you switch back to the IDE it knows the file has changed and will reload the project file. New files are different problem. This could be handled by rescanning the directories when the IDE receives focus again. Or maybe this is not automatic and instead the user can refresh a directory themselves in the solution window.
Right now if you add a new directory or files the solution window will not be updated even though the file watcher will detect this and be sending the files to the DNX host. However this is just something that was not yet implemented.


focusin event prevents textarea/input elements from working

I haven't found this in the docs, only looking through the code. Maybe I missed a issue. Current code prevents any textarea or input element that's not in the popup from working as long as the popup is open. There might be reasons for this, but it can also cause other problems. If keeping it this way, it might make sense to put a small bit in the docs so it's easier to find out how to solve it.
In my case I had a small chatform at the bottom of the page. I have a dirty fix by binding the focusin event  before magnific popup does stop propagation. Like this:
        $('#chat-bar').on('focusin', '.chat-text-input', function(ev) {
            ev.stopPropagation();
        });

+1
Same here, this helped, thanks!


MDRenewMode always: cert renewal on each server reload

With MDRenewMode always Managed Domain certificates will be renewed on each apachectl graceful.  In my opinion, renewal should only be done when the expiry rules apply.

That is certainly how MDRenewMode always is intended to work. Do you have a log of such a run, ideally at LogLevel md:trace1 and the minimal config?

Here it is:
The following instructions are for a test domain mydomain.net and boulder as CA. Virtual hosts are not required for this demonstration.
Base config:
MDCertificateAgreement accepted
MDCertificateAuthority http://boulder:4001/directory
MDRenewMode always

To get a "third-party" certificate:
MDomain mydomain.net

Reload Apache to get a the cert from boulder:
apachectl graceful

Reload Apache a second time to install the cert:
apachectl graceful

Copy MDStoreDir/mydomain.net/{pubcert.pem,privkey.pem} to /etc/apache2/ssl.*/... (for example) and change the md config to
# MDomain mydomain.net

<MDomain test.mydomain.net>
  MDCertificateFile /etc/apache2/ssl.crt/mydomain.net/pubcert.pem
  MDCertificateKeyFile /etc/apache2/ssl.key/mydomain.net/privkey.pem
</MDomain>

What I found was, that the hostname in the <MDomain ...> directive must be somehow different from the hostname of the MDomain directive for the "third-party" certificate. When the hostnames are the same, renewal is skipped (in md_reg.c line 225 is executed).
Anyway, next step: Remove all in the MDStore directory except accounts and md_store.json, then reload Apache to get the cert for test.mydomain.net:
apachectl graceful

Up to this point, everything is still fine. And now reload Apache again to install the cert
apachectl graceful

and see my comments in the following md:trace1 log:
# install cert and remove staging directory:

md_acme_drive.c(503): test.mydomain.net: init_base driver
md_store_fs.c(668): start remove of md staging/test.mydomain.net/order.json
md_store_fs.c(974): using archive dir: /var/lib/apache2/md/archive/test.mydomain.net.1
md_reg.c(1135): test.mydomain.net: load done
mod_md.c(693): cecking duplicate ssl assignments
mod_md.c(481): md[test.mydomain.net]: auto add domains
md_acme_drive.c(503): test.mydomain.net: init_base driver
md_acme_drive.c(580): test.mydomain.net: init driver
mod_md_drive.c(298): md(test.mydomain.net): state=1, created drive job

# At this point the install job is done and the following
# should not happen in my opinion.

# A new staging job is created and executed.

md_acme_drive.c(503): test.mydomain.net: init_base driver
md_acme_drive.c(580): test.mydomain.net: init driver
md_acme_drive.c(624): test.mydomain.net: reset staging area, will
md_curl.c(394): request <-- 200
md_acme.c(676): directory lookup response: 200
md_acme.c(460): add acme POST: http://boulder:4001/acme/acct/51
md_curl.c(394): request <-- 200
md_acme.c(257): acme payload(len=2): {}
md_curl.c(394): request <-- 200
md_acme.c(294): response: 200
md_acme.c(460): add acme POST: http://boulder:4001/acme/new-order
md_acme.c(257): acme payload(len=60): {"identifiers":[{"type":"dns","value":"test.mydomain.net"}]}
md_curl.c(394): request <-- 201
md_acme.c(294): response: 201
md_acme_order.c(308): new order at http://boulder:4001/acme/order/51/394
md_acme.c(483): add acme GET: http://boulder:4001/acme/order/51/394
md_acme.c(257): acme payload(len=0):
md_curl.c(394): request <-- 200
md_acme.c(294): response: 200
md_acme.c(483): add acme GET: http://boulder:4001/acme/authz-v3/634
md_acme.c(257): acme payload(len=0):
md_curl.c(394): request <-- 200
md_acme.c(294): response: 200
md_acme.c(483): add acme GET: http://boulder:4001/acme/authz-v3/634
md_acme.c(257): acme payload(len=0):
md_curl.c(394): request <-- 200
md_acme.c(294): response: 200
md_acme.c(483): add acme GET: http://boulder:4001/acme/order/51/394
md_acme.c(257): acme payload(len=0):
md_curl.c(394): request <-- 200
md_acme.c(294): response: 200
md_acme.c(460): add acme POST: http://boulder:4001/acme/finalize/51/394
md_acme.c(257): acme payload(len=890): {"csr":"MIICkDCCAXgCAQAwHDEaMBgGA1UEAwwRdGVzdC5teWRvbWFpbi5uZXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDUW_So5UF0j6NWYn2MOReUDRLnrpfeod_gJqlUZp7AJR5NNnzCJZrTFQVFXefXBNl_bHi6xGTyHLHhBi12zm02fs1oAJN_jWyR5-bXnbBCQdYmBJd18-Wy_bO3Zi348Ejm38mGv_IcrY75K_sBitXQtiRqQmKIuTOUgeYxIHkB1ROF7PFpPlkYJecDQaUcnbEr2r3qTPL6xriO97S4SgpGS6b_UbudvZV_S_7tnKzC8kS2FX2ZzJxSDOkTeUjNkItKXSfAHZFbVMvWOpkAP4orH3Wz-hAC67iUF67pxkiZywGaPZFZoNOZ3NqULp3Q9or8jVAa5gODHKsYIodSC3z9AgMBAAGgLzAtBgkqhkiG9w0BCQ4xIDAeMBwGA1UdEQQVMBOCEXRlc3QubXlkb21haW4ubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQC3OLWVmzkeFFt1kSepVIbh9JlYhUfMmUu8UUq2eM0jC4RKb6HYIBzGKlNXQ0pr8BBtel-y81OlQmq8b1FLX_lYrG159LmcofDXLz8vlREg9-yRrt7ASek46A9IqcnZ_PkAuRFP74aiRG_XPLuFxmm1q7ljOQGcwl97J0Upa45Co4HzMWAjoZXbPv2WGLNnibXqu1aNxpoJrJwNX9JVvmdh7Xz8-P9-srz1Y2g8EGT5KpIQXpd8Z2ju3rXvqu68bu4CsZpdbFJSOE_CTjSh63OGWvnOH68yoXZEUZ1IrJR_mdCLIo2kfjeMN_BtDLZCCwtS30RGLF49JyCmuhm4lfrC"}
md_curl.c(394): request <-- 200
md_acme.c(294): response: 200
md_acme.c(483): add acme GET: http://boulder:4001/acme/order/51/394
md_acme.c(257): acme payload(len=0):
md_curl.c(394): request <-- 200
md_acme.c(294): response: 200
md_acme_drive.c(243): retrieving cert from http://boulder:4001/acme/cert/ff7979182acfc75612443a243e23a3fa06a5
md_acme.c(483): add acme GET: http://boulder:4001/acme/cert/ff7979182acfc75612443a243e23a3fa06a5
md_acme.c(257): acme payload(len=0):
md_curl.c(394): request <-- 200
md_acme.c(294): response: 200
md_acme_drive.c(438): got chain with 2 certs (0. attempt)
md_store_fs.c(668): start remove of md staging/test.mydomain.net/order.json
md_acme_drive.c(748): test.mydomain.net: certificate ready, activation delay set to 1d
mod_md_drive.c(156): test.mydomain.net: saving job props

With each subsequent apachectl graceful a new staging job is executed.
However, I may misunderstood the meaning of the MDRenewMode always directive.

I am not sure I understand what you want to achieve with this. Maybe you need to explain more on where you start and want to end up.
The MDRenewMode controls if the module should watch and renew certificates for a MDomain.  The default is auto and means: "check if the MDomain is used in a VirtualHost somewhere and only then care about renewing certs. If it is not in use, do not care.
But some people want certificates from Lets Encrypt to use somewhere else. For example, you might want to have a certificate for your IMAP server, but imap.mydomain.net is not a site in your apache server. Then you would configure:
<MDomain imap.mydomain.net>
  MDRenewMode always
</MDomain>

and the module would get/renew a cert for that.
The third value is manual, meaning just install the certificate in the appropriate VirtualHosts, but do not care about renewing them. This mode is implicitly enabled when you configure static files via MDCertificateFile.
Since you seem to do a mix of all this, I might not have explained it well enough in the documentation....

My core problem is that the instructions at https://github.com/icing/mod_md#how-to-migrate-a-https-host do not work as hoped:
As soon as the new certificate is installed (after the second apachectl graceful), it is used immediately.
In my opinion, the new certificate should only be used after SSLCertificateFile and SSLCertificateKeyFile have been removed from the virtual host configuration.
Looking for an alternative solution I found https://github.com/icing/mod_md#how-to-use-other-certificates together with the MDRenewMode always statement.

That would be one way to do it, but it is not the way mod_md does it.


Added deep_clean method to CatkinInference and implemented CatkinMake (fixes #221)

@ChrisTimperley I added the deep_clean function to CatkinInterface. With this functionality I no longer need CatkinMake and I can simply just use CatkinTools, so if you think the repeated functionality is code smell I can return both build and clean back to raise NotImplementedError as before.

Overall, the changes look nice. Just a few minor tweaks and then we're good to merge.

We probably want to update the CHANGELOG here, too.


Consistent way to handle compiled resources

Notice: A bug is a crash or incorrect behavior. If you have a debugging or troubleshooting question, please open a discussion on the Discussions Tab. Otherwise, remove this line and fill out the following sections.
Expected behavior:
Asset compilation should respect the RAILS environment in which the assets are being compiled.
Actual behavior:
Currently the behavior varies on multiple factors.
Running the command :
 RAILS_ENV=test bundle exec rake assets:precompile

will compile the js assets generating the following structure:
decidim_core (1.24 MiB)
      js/249-ec2e3ebada8025a94315.js
      js/1230-2d2276329353b825cfcd.js
      js/9732-67c0f69bfb7f23cf64af.js
      js/5671-e1a7c8e971fa73e54b50.js
      js/1787-63187eccb0f404616589.js
      js/2449-aa50519c7ac79df1aea9.js
      js/3784-0293ffaa7902d4e20046.js
      js/3667-7efa4b10e61b95ad879b.js
      js/4930-dd2b126045ec1c942aa9.js
      css/decidim_core-00a3663a.css
      js/decidim_core-3351b76e64ec549f7e08.js

Running
NODE_ENV=test RAILS_ENV=test bundle exec rake shakapacker:compile

will compile the js assets generating the following structure:
decidim_core (1.22 MiB)
      js/249.js
      js/1230.js
      js/9732.js
      js/5671.js
      js/1787.js
      js/2449.js
      js/3784.js
      js/3667.js
      js/4930.js
      css/decidim_core.css
      js/decidim_core.js

Running the following command
NODE_ENV=test RAILS_ENV=test bundle exec rspec spec/system/editor_spec.rb -e "with full toolbar controls image"

will generate a lot of files that follow the previous response.
Running the following command
RAILS_ENV=test bundle exec rspec spec/system/editor_spec.rb -e "with full toolbar controls image"

will generate the files having the following structure:
decidim-core_app_packs_images_sync_recursive_-decidim-core_app_packs_src_decidim_account_form-f1f256.js
decidim-core_app_packs_images_sync_recursive_-decidim-core_app_packs_src_decidim_account_form-f1f256.js.map
decidim-core_app_packs_src_decidim_autocomplete_js.js
decidim-core_app_packs_src_decidim_autocomplete_js.js.map
decidim-core_app_packs_src_decidim_direct_uploads_upload_field_js.js
decidim-core_app_packs_src_decidim_direct_uploads_upload_field_js.js.map
decidim-core_app_packs_src_decidim_form_datepicker_js-decidim-core_app_packs_src_decidim_form-55cc57.js
decidim-core_app_packs_src_decidim_form_datepicker_js-decidim-core_app_packs_src_decidim_form-55cc57.js.map
decidim-core_app_packs_src_decidim_input_emoji_js-decidim-core_app_packs_src_decidim_redesign-fe0013.js
decidim-core_app_packs_src_decidim_input_emoji_js-decidim-core_app_packs_src_decidim_redesign-fe0013.js.map
decidim-core_app_packs_src_decidim_map_controller_markers_js.js
decidim-core_app_packs_src_decidim_map_controller_markers_js.js.map
decidim-core_app_packs_src_decidim_map_js.js
decidim-core_app_packs_src_decidim_map_js.js.map
decidim-core_app_packs_src_decidim_sw_index_js.js
decidim-core_app_packs_src_decidim_sw_index_js.js.map
decidim_core.js
decidim_core.js.map

our shackapacker.yml ( generated)
---
default:
  source_path: app/packs
  source_entry_path: entrypoints
  nested_entries: true
  css_extract_ignore_order_warnings: false
  public_root_path: public
  public_output_path: decidim-packs
  cache_path: tmp/shakapacker
  webpack_compile_output: true
  extract_css: true
  shakapacker_precompile: true
  additional_paths: &1
  - node_modules
  - app/packs
  - "/path/to/project/decidim-api/app/packs"
  - "/path/to/project/decidim-core/app/packs"
  - "/path/to/project/decidim-comments/app/packs"
  - "/path/to/project/decidim-accountability/app/packs"
  - "/path/to/project/decidim-admin/app/packs"
  - "/path/to/project/decidim-assemblies/app/packs"
  - "/path/to/project/decidim-blogs/app/packs"
  - "/path/to/project/decidim-budgets/app/packs"
  - "/path/to/project/decidim-debates/app/packs"
  - "/path/to/project/decidim-forms/app/packs"
  - "/path/to/project/decidim-meetings/app/packs"
  - "/path/to/project/decidim-pages/app/packs"
  - "/path/to/project/decidim-participatory_processes/app/packs"
  - "/path/to/project/decidim-proposals/app/packs"
  - "/path/to/project/decidim-sortitions/app/packs"
  - "/path/to/project/decidim-templates/app/packs"
  - "/path/to/project/decidim-surveys/app/packs"
  - "/path/to/project/decidim-system/app/packs"
  - "/path/to/project/decidim-verifications/app/packs"
  - "/path/to/project/decidim-conferences/app/packs"
  - "/path/to/project/decidim-dev/app/packs"
  - "/path/to/project/decidim-elections/app/packs"
  - "/path/to/project/decidim-initiatives/app/packs"
  cache_manifest: false
  webpack_loader: babel
  ensure_consistent_versioning: true
  compiler_strategy: digest
  useContentHash: false
  entrypoints: &2
    decidim_api_docs: "/path/to/project/decidim-api/app/packs/entrypoints/decidim_api_docs.js"
    decidim_api_graphiql: "/path/to/project/decidim-api/app/packs/entrypoints/decidim_api_graphiql.js"
    decidim_core: "/path/to/project/decidim-core/app/packs/entrypoints/decidim_core.js"
    decidim_sw: "/path/to/project/decidim-core/app/packs/entrypoints/decidim_sw.js"
    redesigned_decidim_core: "/path/to/project/decidim-core/app/packs/entrypoints/redesigned_decidim_core.js"
    decidim_conference_diploma: "/path/to/project/decidim-core/app/packs/entrypoints/decidim_conference_diploma.js"
    decidim_editor: "/path/to/project/decidim-core/app/packs/entrypoints/decidim_editor.js"
    decidim_email: "/path/to/project/decidim-core/app/packs/entrypoints/decidim_email.js"
    decidim_map: "/path/to/project/decidim-core/app/packs/entrypoints/decidim_map.js"
    decidim_geocoding_provider_photon: "/path/to/project/decidim-core/app/packs/entrypoints/decidim_geocoding_provider_photon.js"
    decidim_geocoding_provider_here: "/path/to/project/decidim-core/app/packs/entrypoints/decidim_geocoding_provider_here.js"
    decidim_map_provider_default: "/path/to/project/decidim-core/app/packs/entrypoints/decidim_map_provider_default.js"
    decidim_map_provider_here: "/path/to/project/decidim-core/app/packs/entrypoints/decidim_map_provider_here.js"
    decidim_widget: "/path/to/project/decidim-core/app/packs/entrypoints/decidim_widget.js"
    decidim_comments: "/path/to/project/decidim-comments/app/packs/entrypoints/decidim_comments.js"
    decidim_accountability: "/path/to/project/decidim-accountability/app/packs/entrypoints/decidim_accountability.js"
    decidim_accountability_admin: "/path/to/project/decidim-accountability/app/packs/entrypoints/decidim_accountability_admin.js"
    decidim_accountability_admin_imports: "/path/to/project/decidim-accountability/app/packs/entrypoints/decidim_accountability_admin_imports.js"
    decidim_admin: "/path/to/project/decidim-admin/app/packs/entrypoints/decidim_admin.js"
    decidim_assemblies: "/path/to/project/decidim-assemblies/app/packs/entrypoints/decidim_assemblies.js"
    decidim_assemblies_admin: "/path/to/project/decidim-assemblies/app/packs/entrypoints/decidim_assemblies_admin.js"
    decidim_blogs: "/path/to/project/decidim-blogs/app/packs/entrypoints/decidim_blogs.js"
    decidim_budgets: "/path/to/project/decidim-budgets/app/packs/entrypoints/decidim_budgets.js"
    decidim_budgets_admin: "/path/to/project/decidim-budgets/app/packs/entrypoints/decidim_budgets_admin.js"
    decidim_debates_admin: "/path/to/project/decidim-debates/app/packs/entrypoints/decidim_debates_admin.js"
    decidim_forms: "/path/to/project/decidim-forms/app/packs/entrypoints/decidim_forms.js"
    decidim_forms_admin: "/path/to/project/decidim-forms/app/packs/entrypoints/decidim_forms_admin.js"
    decidim_questionnaire_answers_pdf: "/path/to/project/decidim-forms/app/packs/entrypoints/decidim_questionnaire_answers_pdf.js"
    decidim_meetings: "/path/to/project/decidim-meetings/app/packs/entrypoints/decidim_meetings.js"
    decidim_meetings_admin: "/path/to/project/decidim-meetings/app/packs/entrypoints/decidim_meetings_admin.js"
    decidim_pages: "/path/to/project/decidim-pages/app/packs/entrypoints/decidim_pages.js"
    decidim_participatory_processes: "/path/to/project/decidim-participatory_processes/app/packs/entrypoints/decidim_participatory_processes.js"
    decidim_participatory_processes_admin: "/path/to/project/decidim-participatory_processes/app/packs/entrypoints/decidim_participatory_processes_admin.js"
    decidim_proposals: "/path/to/project/decidim-proposals/app/packs/entrypoints/decidim_proposals.js"
    decidim_proposals_admin: "/path/to/project/decidim-proposals/app/packs/entrypoints/decidim_proposals_admin.js"
    decidim_sortitions: "/path/to/project/decidim-sortitions/app/packs/entrypoints/decidim_sortitions.js"
    decidim_templates: "/path/to/project/decidim-templates/app/packs/entrypoints/decidim_templates.js"
    decidim_templates_admin: "/path/to/project/decidim-templates/app/packs/entrypoints/decidim_templates_admin.js"
    decidim_system: "/path/to/project/decidim-system/app/packs/entrypoints/decidim_system.js"
    decidim_verifications: "/path/to/project/decidim-verifications/app/packs/entrypoints/decidim_verifications.js"
    decidim_conferences: "/path/to/project/decidim-conferences/app/packs/entrypoints/decidim_conferences.js"
    decidim_conferences_admin: "/path/to/project/decidim-conferences/app/packs/entrypoints/decidim_conferences_admin.js"
    decidim_dev: "/path/to/project/decidim-dev/app/packs/entrypoints/decidim_dev.js"
    decidim_dev_test_custom_map: "/path/to/project/decidim-dev/app/packs/entrypoints/decidim_dev_test_custom_map.js"
    decidim_elections: "/path/to/project/decidim-elections/app/packs/entrypoints/decidim_elections.js"
    decidim_elections_admin: "/path/to/project/decidim-elections/app/packs/entrypoints/decidim_elections_admin.js"
    decidim_votings: "/path/to/project/decidim-elections/app/packs/entrypoints/decidim_votings.js"
    decidim_votings_admin: "/path/to/project/decidim-elections/app/packs/entrypoints/decidim_votings_admin.js"
    decidim_initiatives: "/path/to/project/decidim-initiatives/app/packs/entrypoints/decidim_initiatives.js"
    decidim_initiatives_admin: "/path/to/project/decidim-initiatives/app/packs/entrypoints/decidim_initiatives_admin.js"
    decidim_initiatives_print: "/path/to/project/decidim-initiatives/app/packs/entrypoints/decidim_initiatives_print.js"
    decidim_initiatives_initiatives_votes: "/path/to/project/decidim-initiatives/app/packs/entrypoints/decidim_initiatives_initiatives_votes.js"
  stylesheet_imports: &3
    imports:
      app:
      - stylesheets/decidim/initiatives/initiatives
  compile: false
development:
  source_path: app/packs
  source_entry_path: entrypoints
  nested_entries: true
  css_extract_ignore_order_warnings: false
  public_root_path: public
  public_output_path: decidim-packs
  cache_path: tmp/shakapacker
  webpack_compile_output: true
  extract_css: true
  shakapacker_precompile: true
  additional_paths: *1
  cache_manifest: false
  webpack_loader: babel
  ensure_consistent_versioning: true
  compiler_strategy: mtime
  useContentHash: false
  compile: false
  dev_server:
    https: false
    host: localhost
    port: 3035
    hmr: false
    inline_css: true
    client:
      overlay: false
    compress: true
    allowed_hosts: all
    pretty: true
    headers:
      Access-Control-Allow-Origin: "*"
    static:
      watch:
        ignored: "**/node_modules/**"
  entrypoints: *2
  stylesheet_imports: *3
test:
  source_path: app/packs
  source_entry_path: entrypoints
  nested_entries: true
  css_extract_ignore_order_warnings: false
  public_root_path: public
  public_output_path: packs-test
  cache_path: tmp/shakapacker
  webpack_compile_output: true
  extract_css: true
  shakapacker_precompile: true
  additional_paths: *1
  cache_manifest: false
  webpack_loader: babel
  ensure_consistent_versioning: true
  compiler_strategy: digest
  useContentHash: false
  compile: false
  entrypoints: *2
  stylesheet_imports: *3
production:
  source_path: app/packs
  source_entry_path: entrypoints
  nested_entries: true
  css_extract_ignore_order_warnings: false
  public_root_path: public
  public_output_path: decidim-packs
  cache_path: tmp/shakapacker
  webpack_compile_output: true
  extract_css: true
  shakapacker_precompile: true
  additional_paths: *1
  cache_manifest: true
  webpack_loader: babel
  ensure_consistent_versioning: true
  compiler_strategy: digest
  useContentHash: true
  compile: false
  entrypoints: *2
  stylesheet_imports: *3

Small, reproducible repo:
https://github.com/decidim/decidim  ( branch chore/upgrade-shakapacker )
Setup environment:

Ruby version: 3.1
Rails version: 6.1
Shakapacker version:  7.10

At decidim we pass through a major redesign process, in which we have ended up replacing the WYSIWYG from QuillJS to Tip-tap, change that led to have some specs.
We also, changed our tag system from foundation-datapicker to tom-select.
While working with the dev-server we could not see any issue. We did not see any issues either when running in CI the specs, as there was no NODE_ENV variable being set. We only had "RAILS_ENV".
One of my colleagues tried to run the editor specs locally, case when observed that the specs were failing.
I could observe, while investigating on my end, that my script actually was failing with:
packs-test/js/1230.js 1:12730 Uncaught SyntaxError: Invalid regular expression: /ß|€|â||„|ˆ|•|±|¥|É| "

During my investigation, i could observe that 'rake webpacker:compile' and the asset compiling during the test are behaving differently.
The Invalid regular expression error, is being caused by tom-select dependency @orchidjs/unicode-variants, and it seems that the compiler is actually replacing accent_pat from
https://github.com/orchidjs/unicode-variants/blob/1e0f5e89c843750200dfe5cbc8610cb424dae7a8/lib/index.mjs#L86
const convert_pat = new RegExp(Object.keys(latin_convert).join('|') + '|' + accent_pat, 'gu');

to
new RegExp(Object.keys(j).join("|")+"|[̀-ͯ·ʾʼ]","gu")

I could observe in my specs that i had a node_env variable that was being set, but removing it, would have no effect.
I ended up, overriding the webpackConfig variable in my config.js to always use the TerserPlugin on all the environments, as being defined in https://github.com/shakacode/shakapacker/blob/master/package/environments/production.js , which in the end fixed the above issue.

@alecslupu if you want a custom NODE_ENV, then why not just set it before running the scripts that invoke this command?

Closed as #366 is also closed.


chore: add OWNERS for release-pipelines-suite

Description
Add OWNERs for release-pipelines-suite. This suite will only be ran in the CI of
release-service-catalog repo.
Please include a summary of the changes and the related issue. Please also include relevant motivation and context. List any dependencies that are required for this change.
Issue ticket number and link
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Checklist:

[ ] I have performed a self-review of my code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added meaningful description with JIRA/GitHub issue key(if applicable), for example HASSuiteDescribe("STONE-123456789 devfile source")
[ ] I have updated labels (if needed)

/approve

/lgtm


Vorbis & Opus support

PR ritiek/spotify-downloader#292 by @BeeeWall already attempted to bring support for Vorbis and Opus as output formats, but some recent refactoring caused it to not be easily rebaseable.
I therefore restarted from scratch.

I had completely forgotten I had even made that PR... I suppose I should close it in favor of this.

Hello and thanks a lot for the PR! This looks pretty good as is but I'll check it in detail after some time, just in case.

Dunno why the Travis build isn't running though.

Do you prefer the option be named ogg or vorbis?
I used ogg without really thinking about it, but since both Vorbis & Opus use the same Ogg container, it would make sense to use vorbis instead.

I see but let's keep it as ogg so that it is more about the file extension rather than the encoding.

@ritiek you're trying to view ogg/opus album art with ffmpeg, ffmpeg doesn't have support for that. It's a ffmpeg issue. Other media players can show ogg/opus album art.
For the PR, re-encoding could be done better, like I mentioned in my previous PR #678.
I don't know why @ritiek doesn't consider anything beyond his knowledge, sometimes there could be a good advice.
Why is still double entry of opus exists in PR, and you merged it already.

My ffmpeg is able to report albumarts for ogg & opus.
This might just be a version issue.

Why is still double entry of opus exists in PR, and you merged it already.

Oh, my bad, I though there was the single spot that @ritiek mentioned, but there are two other duplicates. I'll fix that.
I saw the comments on the previous PR about re-encoding.
I didn't discussed anything on that subject because I thought the proposed solution was good enough for a first integration, but I'll happily iterate to integrate something better.
Can you clarify how this can be done better?
I think I agree with @ritiek (I'm not an audio expert, though, feel free to correct me), when doing opus -> opus, there's no benefit from re-encoding. Same goes from upsampling.
But I believe that if we want to satisfy everybody, we will have to expose most of the encoding parameters:

bitrate
sampling
CBR/VBR/ABR
maybe others...

@ritiek you're trying to view ogg/opus album art with ffmpeg, ffmpeg doesn't have support for that. It's a ffmpeg issue. Other media players can show ogg/opus album art.

@Sigill has already addressed this:

My ffmpeg is able to report albumarts for ogg & opus.
This might just be a version issue.

For the PR, re-encoding could be done better, like I mentioned in my previous PR #678.

I see. I didn't pay much attention to the changes in your PR back then. I didn't realize that there was a difference between the sampling rate between the audio codecs provided by YouTube. You seem to have also posted a log of ffprobe in https://github.com/ritiek/spotify-downloader/issues/620#issuecomment-549136409 about the stream being 44100Hz but apparently it wasn't explicit enough to have caught my attention. Sorry about that.
If you like you can make a new PR for the sampling rate concerns.

Why is still double entry of opus exists in PR, and you merged it already.

Oh, my bad, I though there was the single spot that @ritiek mentioned, but there are two other duplicates. I'll fix that.

That was an oversight on my behalf as well.

I don't know why @ritiek doesn't consider anything beyond his knowledge, sometimes there could be a good advice.

Yea, he's really bad.

My ffmpeg is able to report albumarts for ogg & opus.
This might just be a version issue.

It shows just in command line as a vorbis comment (metadata_block_picture), that is ascii (b64 encoded image).
What I meant is that ffmpeg is unable to convert and display album art picture as video stream like mp3. That is why mpv doesn't show album art for ogg while for mp3 it does.

when doing opus -> opus, there's no benefit from re-encoding.

That is what I'm saying too. By default re-encoding should be avoided as much as possible to not to lose quality.

Same goes from upsampling.

https://github.com/Sigill/spotify-downloader/blob/c8bbc7ad1902eae14bd661846299edca5cf7c7bb/spotdl/encode/encoders/ffmpeg.py#L15-L19
here it is sampling 44kHz AAC stream to 48kHz mp3, same with FLAC in line 19. FLAC supports 44kHz.

If you like you can make a new PR for the sampling rate concerns.

I thought that you would change that in refactoring, It is just small change. If you are not sure, I will be happy to make a PR.

Yea, he's really bad.

Nah, you just said you missed my comment log. I think you're just too busy.

If you are not sure, I will be happy to make a PR.

Alright, I'll be glad to merge it. By the way, do we really need to explicitly specify the output sample rate to FFmpeg? Shouldn't FFmpeg automatically be able to determine the output sample rate from sample rate in the input audio? I just tried and FFmpeg seems to keep the sample rate for the output audio same as in the input audio. Is this supposed be the right way?

Yes ffmpeg keeps sample rate same, if codec supports it. Otherwise it will automatically change to supported sampling rate.
If you convert a m4a 44100 Hz to opus, it will automatically changes to 48000 Hz.
So it will be wise to leave that to just ffmpeg, but I would say we should change bitrate option for some codecs that can use variable bit rate for quality, like vorbis uses quality setting from -1 to 10. It accepts -q:a or -aq parameters for encoding. -q:a 5 generates around 160k bitrate file which is almost transparent.

Sounds good to me.

Just a gentle ping guys. Are you up on making PRs?

Why is still double entry of opus exists in PR, and you merged it already.

Oh, my bad, I though there was the single spot that @ritiek mentioned, but there are two other duplicates. I'll fix that.

@Sigill

If you are not sure, I will be happy to make a PR.

@mrkumar009
If you're busy atm, let me know so I'll do it myself.

I'm AFK for the weekend, feel free to give it a go.
Le ven. 26 juin 2020 à 12:52, Ritiek Malhotra<EMAIL_ADDRESS>a
écrit :

Just a gentle ping guys. Are you up on making PRs?
Why is still double entry of opus exists in PR, and you merged it already.
Oh, my bad, I though there was the single spot that @ritiek
https://github.com/ritiek mentioned, but there are two other
duplicates. I'll fix that.
@Sigill https://github.com/Sigill
If you are not sure, I will be happy to make a PR.
@mrkumar009 https://github.com/mrkumar009
If you're busy atm, let me know so I'll do it myself.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ritiek/spotify-downloader/pull/769#issuecomment-650116917,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAR4YMIAMGMQFAGHSYSSPE3RYR4XFANCNFSM4ODR2CJA
.


JS Error using File Manager with S3 Disk

I currently am using the latest version of Laravel File Manager and S3 as my upload disk.
Everything uploads fine, but once it uploads, there is a JS error in console.
Uncaught TypeError: response.join is not a function
at d. (filemanager?type=Images&CKEditor=text-editor&CKEditorFuncNum=1&langCode=en-au:1349)
at d.a.emit (dropzone.min.js:1)
at d._finished (dropzone.min.js:1)
at XMLHttpRequest. (dropzone.min.js:1)
So, the filemanager doesn't reload to reflect my newly uploaded file.
I have to get out of file manager and get back in to see it.

After some checking, the response is coming as ["OK"] , not 'OK' - which means it cannot complete the process

Same problem here.


added ESLint driver

Overal looks pretty good.
Remove that last commit though. Upgrading pygments is a separate task.
One note. Master has not been released yet as I am waiting on @benpatterson to at least try out master against their stuff since it is a lot of refactoring of the currently released version. So it may take a bit.

last commit: yeah, bloody github added it from the fork without asking...

release is not a concern, we can use the fork

please merge I need to set that pin back for us to work

Haven't forgotten to get a closer look at master, @Bachmann1234 . But clearly things are moving a bit slow...so I will put it into our next sprint (which starts in 2 weeks) so we can be sure to get that done.

This is released! https://pypi.python.org/pypi/diff_cover/0.9.0 Thanks @benpatterson for taking a look

@agroszer  Thanks again for the PR!


Down / up arrow key navigation not working in Select component when VoiceOver enabled

Provide a general summary of the issue here
When VoiceOver is enabled while using Safari or Firefox, the down and up arrow keys don't work in the Select component. Instead it just closes.
This happening in the project I'm working on and I can reproduce it in the official docs as described in the Reproduce section.
To be clear, it only happens when VoiceOver is enabled. Without VoiceOver keyboard navigation works fine. It also works brilliantly in Chrome, with and without VoiceOver
Thanks in advance
🤔 Expected Behavior?
When VoiceOver is enabled, the down and up arrow keys should navigate the items in the list
😯 Current Behavior
When VoiceOver is enabled, the down and up arrow keys are causing the Select to close
💁 Possible Solution
No response
🔦 Context
No response
🖥 Steps to Reproduce

Use Safari https://react-spectrum.adobe.com/react-aria/Select.html
Enable VoiceOver
Focus the first select component on the page. The one with animal names.
Press enter to open the listbox
Press the down arrow key

For me after step 5 the list just closes
Version
1.1.1
What browsers are you seeing the problem on?
Firefox, Safari
If other, please specify.
No response
What operating system are you using?
Mac OS Sonoma 14.4
🧢 Your Company/Team
No response
🕷 Tracking Issue
No response

The team has noticed something similar with table/tree navigation recently with Sonoma 14.4 as well, I don't see the issue you described in Sonoma 14.3 so maybe something changed in VoiceOver with this update. I'll update you after I bump my own machine's OS

Odd I can't reproduce, I'm now on Sonoma 14.4.1, Safari 17.4.1. @snowystinger are you able to?

@LFDanLu  Thanks for the quick response. I have a few updates.
I realized my description isn't quite accurate. I described the behavior for Firefox. In Safari, pressing the down arrow with VoiceOver enabled move the focus to the hidden Dismiss button.
I saw that you were on Sonoma 14.4.1, so tried updating and that didn't help either. But since you said it is working for you I did some more digging and figured out my problem.
Apparently I had Quick Nav enabled. I'd never heard of it before until my googling led me to this reddit thread. I must have enabled it accidentally. I disabled it and arrow keys work as expected now.
I'm going to go ahead and close this. Thanks again


Create a page "thanks for downloading"

Inspired in @bernarddeluna issue for the SennaJs

does this really need to be a new page ? I suggest using one of the components to do this, maybe a modal could solve the problem.

It's true. But... it is an older issue. I'll closed it.
Thanks!


Draft "Robust Self-Update of thin-edge.io" feature

When using thin-edge.io in a remote location connected to Cumulocity IoT, I would like to use Cumulocity´s Device Management to trigger an update of thin-edge.io itself to a newer version.
The update process needs to be highly robust and handling automatic rollback in the case of any issues during the installation to prevent manual interaction or disconnected device situations.
tedge-updater is a seperate component
AC:

POC for self-update
Rollback

Work on this ticket will from now on be on Milestone thin-edge self-updating

Duplicate of https://github.com/thin-edge/thin-edge.io/issues/760


Add ability to import an existing certificate to ACM

Description
Add ability to import an existing certificate to ACM
What Changed?

Adapt for_each loop on aws_route53_record.acm_validation_cname using condition
Make aws_acm_certificate_validation.this resource conditional
Pass private_key, certificate_body and certificate_chain arguments to aws_acm_certificate resources
Add input variables acm_create_certificate, acm_certificate_private_key, acm_certificate_certificate_body and acm_certificate_certificate_chain
Update README.md

Reason For Change
Using an existing certificate means the Route 53 public hosted zone does not need to be linked to a validated domain in AWS. This means a subdomain and certificates can be managed outside AWS and be used by services rather than requiring domains and certificates to be AWS managed
Checklist For Reviewer

[ ] You understand the reason for the change and how it fits into the existing codebase
[ ] For changes that relate to a deployment, you understand how the change will affect any dependent Live environments
[ ] You understand the scope of the change and the commit messages reflect this, e.g. where you consider the change to be a breaking change, at least one commit message should include the body "BREAKING CHANGE: ..."
[ ] You have requested changes to the Pull Request if required, or raised comments suggesting improvements
[ ] All Review comments and requests for changes have been resolved, or assigned Issues
[ ] All GitHub Actions jobs pass

Should we be passing the private key around? This may be a security issue.
https://registry.terraform.io/providers/hashicorp/tls/latest/docs/resources/private_key
> Security Notice

The private key generated by this resource will be stored unencrypted in your Terraform state file. Use of this resource for production deployments is not recommended. Instead, generate a private key file outside of Terraform and distribute it securely to the system where Terraform will be run.

Can we instead add it to e.g. some secure parameter store, and reference it from Terraform?


react-rss-reader does not install all necessary files

Category

[ ] Question
[x] Bug
[ ] Enhancement

Authors
@eoverfield
Expected or Desired Behavior
So what I expect to happen is that once I run npm install on the solution for it not to return any errors or files missing.
Observed Behavior
However, when I run npm install on the solution it runs fine until I get several errors along the lines of
"npm WARN tar ENOENT: no such file or directory" about 60 times,
Steps to Reproduce
Clone or download the "sp-dev-fx-weparts" directory.
Navigate to the samples and then finally the react-rss reader sample.
Then while in the directory run npm install.

@[clohigh] you should definitely not be seeing such errors. What version of node are using?
node -v

Hi Eric thank you for the quick response. I'm on v8.12.0
Carloz

Good version, I used 8.11.4 to test, 8.12.0 should work. I will check to see if something is missing.

Sounds great, thank you sir.
Carloz

I was getting the same behavior, doing the steps mentioned in this post on stackoverflow solved the issue. Maybe it can help you guys adress this issue.
Regards,
Otacon

Thank you for sharing this fix.

That fixed it thank you sir @otaconwow

I created a PR for this issue https://github.com/SharePoint/sp-dev-fx-webparts/pull/1032

The PR got accepted, this issue can be closed


Commands defined within scope of "Components" are not processed (Azure IOT Central)

Commands defined in the Root of Azure IoT Central are processed/received by the azure-iot-device node. However, Commands defined within Components seem not to be received by the azure-iot-device node. As example in the screenshot, the Blink and Cmd commands are not received in the azure-iot-device node. The Message command (defined in the Root) is processed correctly.

@peterheldens "node-red-contrib-azure-iot-device" doesn't support components currently. Will put it on the backlog.

@peterheldens can you try using the full command name in the device definition? When using components the command names are actually including the component name. So in your case define the direct method as "control_cmd" and "control_blink". Please let me know if this works?

I tested it and it actually works:

(IoT Central raw message}

(Method in node-red)


scipy.optimize.minimize fails in case of multiple constraints

I am using 'minimize' function from scipy.optimize for an optimization problem.  Here is the sample code to recreate the issue:
def recreate_bug():

    def cost(x):
        return 0.5*np.sum(x**2)

    A = np.ones((10,5));  b = np.ones(10)
    C = np.eye(20,5); d = np.ones(20)
    cons =  (
                {'type':'ineq',
                 'fun': lambda x: b - np.dot(A,x)
                },
                {'type':'ineq',
                 'fun': lambda x: d - np.dot(C,x)
                }
            )

    minimize(fun=cost, x0=np.zeros(5), method="SLSQP",
             constraints=cons, options={'disp':1})

Here is the full "Traceback":
Traceback (most recent call last):
  File "/net/home/pratap/Documents/LiClipseWorkspace/otto/src/test_optimize.py", line 29, in <module>
    recreate_bug()
  File "/net/home/pratap/Documents/LiClipseWorkspace/otto/src/test_optimize.py", line 26, in recreate_bug
    constraints=cons, options={'disp':1})
  File "/net/home/pratap/lib/python3.4/site-packages/scipy/optimize/_minimize.py", line 435, in minimize
    constraints, callback=callback, **options)
  File "/net/home/pratap/lib/python3.4/site-packages/scipy/optimize/slsqp.py", line 400, in _minimize_slsqp
    a = concatenate((a,zeros([la,1])),1)
ValueError: all the input array dimensions except for the concatenation axis must match exactly

Here is my 2 cents about the cause of this issue:
I think the problem is due to function handle being overridden. See 'sslqp.py' file, lines 270 - 279
        # check jacobian
        cjac = con.get('jac')
        if cjac is None:
            # approximate jacobian function
            def cjac(x, *args):
                return approx_jacobian(x, con['fun'], epsilon, *args)

        # update constraints' dictionary
        cons[ctype] += ({'fun': con['fun'],
                         'jac': cjac,
                         'args': con.get('args', ())}, )

calling the jacobian function from 'cons' dictionary for both the constraints returns the same output. Also, if you change the order of constraints in sample code, the jacobian function's output also changes but remains the same for both the constraints. The sample code works if any one of the constraints is commented out.
Environment Details:
SciPy version: 0.14.0
python3
OpenSUSE

Try with newer scipy version, AFAIK this was fixed

This was fixed in 7018c110add3f52885a595da7ae1026afecb0e8f which appears in 0.14.1


Loaded cameras distorted view

When loading in saved camera positions from JSON I get distorted camera views.

{         "fx": 1163.2547607421875,         "fy": 1156.2802734375,         "height": 1091,         "id": 14,         "img_name": "000015.jpg",         "position": [             1.0722368955612183,             0.6061256527900696,             -2.6365013122558594         ],         "rotation": [             [                 0.8878934979438782,                 -0.07130444049835205,                 0.45448988676071167             ],             [                 -0.07130444049835205,                 0.45448988676071167,                 0.00947901327162981             ],             [                 0.45448988676071167,                 0.00947901327162981,                 0.9905414581298828             ]         ],         "width": 1957     },
This doens't happen when navigating the standard viewer, so is probably a small bug somewhere.

Interesting, did you try it with other official scenes? I played with bonsai and some others but not truck. They worked, wonder if truck is different. Have to admit I did not try the official scenes after the finishing touches, right before releasing (and the camera conversion code is a mess).


Add and improve type annotations

In addition to the things I mentioned already, why do we need any annotations on private methods (starts with an underscore) or methods in subclasses which override the method with the same annotations in the parent class?
Thank you for this. It is a much more reasonable change. As some of my comments indicate, I find some things ridiculous, but am willing to overlook them as I didn't need to do the work to make the change myself. However, I do not expect to keep those annotations updated over time as they offer no value IMO.

why do we need any annotations on private methods

Because I had no idea what the heck some arguments were meant to be when reading the code, and it was actually hard to figure out in many cases. Will save someone the work,

why do we need any annotations on private methods

Because I had no idea what the heck some arguments were meant to be when reading the code, and it was actually hard to figure out in many cases. Will save someone the work,

Here's the thing. Type annotations are documentation. Documentation is for users of the library. Users will never be accessing private methods (because they are private). So why do we need them....
To be clear, I actually dislike annotations, They are noise which makes the code harder to read. So when you include annotations were only the devs will ever use them, I don't like that. I would rather need to read the code to work out the type of a variable that have to separate the annotation from the code in my mind. But that may be just me. I'm not going to force that way on others.
In a similar vein, I do not care for the recent changes to the code comments. Those changes were made because the comments were being publisher on the site as API documentation. And so the language needed to be appropriate for that context. But personally, I prefer the terse comments which are directed at the devs of the code. I'm disappointed that we no longer have those. Therefore, on private methods, (which don't get included in the documentation) the original terse comments were left as-is.

I don't follow your argument. Are you saying that private code doesn't need documentation? I, as a user, was reading private code on many occasions and could've used documentation.

I'm saying that a user will never call a private method, so no it does not need to be documented in the way that a public method would be. Of course, the method may need to have some documentation written for the developer of the code. However, that documentation can be more terse and make assumptions about the knowledge and understanding of the reader that would not be appropriate for user documentation. Sometimes, that documentation is nothing more than well chosen method and argument names. Other times, some comments are necessary as well.
As an example, take the case of a method which returns None. I think it is reasonable to assume that the developer of the code knows that a lack of a return statement will result in the method returning None. Therefore, the explicit return statement is not needed. Neither is an annotation or a comment. Such things are just noise which offer no value. However, if this is a method which may be called by a user, then those assumptions should not be made and it is necessary to add the noise via comments, annotations and maybe even a return statement.
I prefer that terse documentation in code comments. Even as a user of a library, when reading through unfamiliar code to understand how it works, I personally prefer that. And with nearly 20 years of reading Python code without type annotations, I see the annotations as noise.
Maybe I'm being a grump old guy here. But I'm just trying to explain my point of view. If I don't see any value in it, my first reaction is to reject it. So I ask, because maybe there is a point of view I'm missing.
If these changes are being suggested just so we can say the code has complete annotations and there is no other value in having them, then I'm inclined to so no thanks. But if there is real value, then that's fine. And I realize that just because I don't see the value that there isn't any. I just want to make sure there actually is and that someone isn't adding annotations because they think "everything must be annotated."

I think it is reasonable to assume that the developer of the code knows that a lack of a return statement will result in the method returning None

Just take this one as an example
    def _build_row(self, row: str, parent: etree.Element, align: Sequence[str | None]) -> None:

It is instantly clear that, despite the name of the function, it doesn't return what it "built". (this is often a big one for me)
And it is clear that "align" is not a single item but something with N items. Each of which could be None as well.
Sure you could look and figure it out after a minute, but why?
You're saying that the developer who knows the code like the palm of their hand will have no trouble understanding the code. But what about everyone else?

I said that "Sometimes, that documentation is nothing more than well chosen method and argument names." However, you provided a counterexample where the names are not well chosen. Had they been, then yes, my point of view might hold up. I say "might" because I qualified my statement by acknowledging that that is not sufficient in every situation. But in the situations where is is sufficient, yes, anything extra is just noise.
Of course, the trick is working out the correct balance between what is sufficient and what is not. Each unique function/class/method is different and will have a different answer. Some developers will take the simple route and over-document everything. I prefer a more considered approach.


?query=string - how to?

I'm trying to understand how nextjs-route can handle ?query=part?
For example, we have a page with a table that is supposed to be paged. So I need to pass count and page for every URL.
But nextjs-routes Router doesn't know about our params and I get errors.

Use query https://nextjs.org/docs/api-reference/next/link#with-url-object

@tatethurston That seems to be an example of using <Link>, but what about useRouter?
const Home = () => {
  const router = useRouter<'/'>()
  const {
    query: { current = 0 },
  } = router

  // ...

  const onPagination = (pagination: TablePaginationConfig) => {
    const { current, pageSize } = pagination
    router.push(
      { query: { current: current?.toString(), pageSize: pageSize?.toString() } },
      undefined,
      { shallow: true }
    )
  }

The last part is erroneous, as the query (of the "/" page) doesn't know anything about my parameters. This is how it's generated:
declare module "nextjs-routes" {
  export type Route =
    // ...
    | { pathname: "/"; query?: Query | undefined }
    // ...
}

What do I do in this case?
Thanks in advance.

@OnkelTem your example for useRouter should work. What issue are you running into? Are you using version 0.0.18?

Your example for router.push should work. What issue are you running into? Are you using version 0.0.18?

Yes, 0.0.18.
Ok, it seems that I want more than it can actually provide, or made for.
What you mean under working - is that it compiles, while I want routes typing. Sure, the query is defined as a combination of anything in NextJS: its default string | string[] | undefined is inconvenient. E.g. one has to make some silly checks like Array.isArray() to get rid of the string[] part (what nextjs-routes fixes for queries defined in URL like /[thing]/[thing]/...).
I could, once again, extend the generated .d.ts to define my own type:
     | { pathname: "/"; query?: Query<{ current?: string, pageSize?: string }> | undefined }

but then I should disable its generation.
Ok, I understand now the limitation of this approach and I think we could really maintain some alternative to nextjs-routes.d.ts with our own types and extended functionality.

Types for search parameters are something we’re looking looking into https://github.com/tatethurston/nextjs-routes/issues/39


⚠ AlphaRatio has degraded performance

In 759d3fa, AlphaRatio ($AR) experienced degraded performance:

HTTP code: 200
Response time: 5789 ms

Resolved: AlphaRatio performance has improved in 1570df1.


Introduce pinot-fastdev profile, which will make it easier to develop…

… without having to care about these verifications during development
Instructions:

The PR has to be tagged with at least one of the following labels (*):

feature
bugfix
performance
ui
backward-incompat
release-notes (**)

Remove these instructions before publishing the PR.

(*) Other labels to consider:

testing
dependencies
docker
kubernetes
observability
security
code-style
extension-point
refactor
cleanup

(**) Use release-notes label for scenarios like:

New configuration options
Deprecation of configurations
Signature changes to public methods/interfaces
New plugins added or old plugins removed

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 0.00%. Comparing base (59551e4) to head (7e90494).
Report is 919 commits behind head on master.

:exclamation:  There is a different number of reports uploaded between BASE (59551e4) and HEAD (7e90494). Click for more details.
HEAD has 53 uploads less than BASE

Flag
BASE (59551e4)
HEAD (7e90494)

integration
7
1

integration2
3
1

temurin
12
1

java-21
7
1

skip-bytebuffers-true
3
1

skip-bytebuffers-false
7
0

unittests
5
0

unittests1
2
0

java-11
5
0

unittests2
3
0

integration1
2
0

custom-integration1
2
0

Additional details and impacted files
@@              Coverage Diff              @@
##             master   #13865       +/-   ##
=============================================
- Coverage     61.75%    0.00%   -61.76%
=============================================
  Files          2436     2502       +66
  Lines        133233   138570     +5337
  Branches      20636    21540      +904
=============================================
- Hits          82274        0    -82274
- Misses        44911   138570    +93659
+ Partials       6048        0     -6048

Flag
Coverage Δ

custom-integration1
?

integration
0.00% <ø> (-0.01%)
:arrow_down:

integration1
?

integration2
0.00% <ø> (ø)

java-11
?

java-21
0.00% <ø> (-61.63%)
:arrow_down:

skip-bytebuffers-false
?

skip-bytebuffers-true
0.00% <ø> (-27.73%)
:arrow_down:

temurin
0.00% <ø> (-61.76%)
:arrow_down:

unittests
?

unittests1
?

unittests2
?

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

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


Update Select design and disclosure icon

The icon size is unified for all input fields (InputContent). As other components that use chevron use the normal icon size, the current state may be preferred.
The suffix should be non-configurable, fixed to a specific orbit size chevron.

Fixed and resolved by allowing custom Icon content.


docs(fastapi): change git URL to not require SSH setup for easier use

The previous URL required the user to have ssh set up for GitHub, which is an unnecessary requirement.

Update fastapi/README.md as well 😁


[12.x] Fix laravel/prompt dependency version constraint for illuminate/console

The version constraint in the main composer.json was updated in https://github.com/laravel/framework/commit/e0cf931ba8b73dde10d1535053f11a849592afa3 , but this one seems to be forgotten.
The l12 branch is no longer available, causing illuminate/console to be no longer installable in Laravel 12.

This isn't really necessary as we still need to handle the merge conflict once the team merge 11.x to master after weekly release.


KeyError: 'piston_arm_collision'

Exception in Tkinter callback
Traceback (most recent call last):
File "structura.py", line 96, in generate_pack
File "armor_stand_class.py", line 74, in make_block
File "armor_stand_class.py", line 330, in block_name_to_uv
File "armor_stand_class.py", line 352, in get_block_texture_paths
KeyError: 'piston_arm_collision'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "tkinter_init_.py", line 1883, in call
File "structura.py", line 161, in runFromGui
File "structura.py", line 99, in generate_pack
File "armor_stand_class.py", line 74, in make_block
File "armor_stand_class.py", line 330, in block_name_to_uv
File "armor_stand_class.py", line 352, in get_block_texture_paths
KeyError: 'piston_arm_collision'

Version? Structure file?
On Thu, Dec 29, 2022, 3:07 PM M2DRIVE @.***> wrote:

Exception in Tkinter callback
Traceback (most recent call last):
File "structura.py", line 96, in generate_pack
File "armor_stand_class.py", line 74, in make_block
File "armor_stand_class.py", line 330, in block_name_to_uv
File "armor_stand_class.py", line 352, in get_block_texture_paths
KeyError: 'piston_arm_collision'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "tkinter_init_.py", line 1883, in call
File "structura.py", line 161, in runFromGui
File "structura.py", line 99, in generate_pack
File "armor_stand_class.py", line 74, in make_block
File "armor_stand_class.py", line 330, in block_name_to_uv
File "armor_stand_class.py", line 352, in get_block_texture_paths
KeyError: 'piston_arm_collision'
—
Reply to this email directly, view it on GitHub
https://github.com/RavinMaddHatter/Structura/issues/149, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBUC5GI5D3ZC7WJDYSVEE3WPYKSLANCNFSM6AAAAAATMOPNYE
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

I didn't get a version. i think this is 1.0


SDC is not working on multiple files only

What happened?
Hi, experts
I got the fmriprep results ‘Susceptibility distortion correction: FMB (field map-based) - phase-difference map’ in case I analyzed just one fMRI file.
However, when analyzing three files in the same way, the following error appears:
KeyError: “‘phasediff_fmap0’ is already in mapping”
I don’t know if this config file is the correct way.
These fMRI fieldmap files were gained in Simens and had two magnitude files and one phasediff file.
Below is the explanation in part of the config file.
I put “B0FieldSource”: [“phasediff_fmap0”] in func(rest) section.
Also put “B0FieldIdentifier”: “phasediff_fmap0” in two magnitude sections and one phasediff section.
What command did you use?
fmriprep-docker d:\t15 d:\t15\derivatives --fs-license-file d:\freesurfer.txt

What version of fMRIPrep are you running?
fMRIPrep v24.0.1
How are you running fMRIPrep?
Docker
Is your data BIDS valid?
Yes
Are you reusing any previously computed results?
No
Please copy and paste any relevant log output.
RUNNING: docker run --rm -e DOCKER_VERSION_8395080871=27.1.1 -it -v d:\freesurfer.txt:/opt/freesurfer/license.txt:ro -v d:\t15:/data:ro -v d:\t15\derivatives:/out nipreps/fmriprep:24.0.1 /data /out participant
<EMAIL_ADDRESS>(node:9) Warning: Closing directory handle on garbage collection
(Use `node --trace-warnings ...` to show where the warning was created)
        1: [WARN] The Authors field of dataset_description.json should contain an array of fields - with one author per field. This was triggered based on the presence of only one author field. Please ignore if all contributors are already properly listed. (code: 102 - TOO_FEW_AUTHORS)

        Please visit https://neurostars.org/search?q=TOO_FEW_AUTHORS for existing conversations about this issue.

        2: [WARN] The Name field of dataset_description.json is present but empty of visible characters. (code: 115 - EMPTY_DATASET_NAME)

        Please visit https://neurostars.org/search?q=EMPTY_DATASET_NAME for existing conversations about this issue.

        Summary:                  Available Tasks:        Available Modalities:
        41 Files, 415.49MB        rest                    MRI
        3 - Subjects
        1 - Session

        If you have any questions, please post on https://neurostars.org/tags/bids.
240824-16:21:18,689 nipype.workflow IMPORTANT:
         Running fMRIPrep version 24.0.1

         License NOTICE ##################################################
         fMRIPrep 24.0.1
         Copyright The NiPreps Developers.

         This product includes software developed by
         the NiPreps Community (https://nipreps.org/).

         Portions of this software were developed at the Department of
         Psychology at Stanford University, Stanford, CA, US.

         This software is also distributed as a Docker container image.
         The bootstrapping file for the image ("Dockerfile") is licensed
         under the MIT License.

         This software may be distributed through an add-on package called
         "Docker Wrapper" that is under the BSD 3-clause License.
         #################################################################
240824-16:21:18,708 nipype.workflow IMPORTANT:
         Building fMRIPrep's workflow:
           * BIDS dataset path: /data.
           * Participant list: ['y072', 'y073', 'y074'].
           * Run identifier: 20240824-162111_25609c1e-6e57-4ac0-8ab0-1760c929ab31.
           * Output spaces: MNI152NLin2009cAsym:res-native.
           * Pre-run FreeSurfer's SUBJECTS_DIR: /out/sourcedata/freesurfer.
240824-16:21:19,47 nipype.workflow INFO:
         ANAT Stage 1: Adding template workflow
240824-16:21:19,250 nipype.workflow INFO:
         ANAT Stage 2: Preparing brain extraction workflow
240824-16:21:19,295 nipype.workflow INFO:
         ANAT Stage 3: Preparing segmentation workflow
240824-16:21:19,297 nipype.workflow INFO:
         ANAT Stage 4: Preparing normalization workflow for ['MNI152NLin2009cAsym']
240824-16:21:19,301 nipype.workflow INFO:
         ANAT Stage 5: Preparing surface reconstruction workflow
240824-16:21:19,311 nipype.workflow INFO:
         ANAT Stage 6: Preparing mask refinement workflow
240824-16:21:19,313 nipype.workflow INFO:
         ANAT No T2w images provided - skipping Stage 7
240824-16:21:19,313 nipype.workflow INFO:
         ANAT Stage 8: Creating GIFTI surfaces for ['white', 'pial', 'midthickness', 'sphere_reg', 'sphere']
240824-16:21:19,321 nipype.workflow INFO:
         ANAT Stage 8: Creating GIFTI metrics for ['thickness', 'sulc']
240824-16:21:19,324 nipype.workflow INFO:
         ANAT Stage 8a: Creating cortical ribbon mask
240824-16:21:19,326 nipype.workflow INFO:
         ANAT Stage 9: Creating fsLR registration sphere
240824-16:21:19,328 nipype.workflow INFO:
         ANAT Stage 10: Creating MSM-Sulc registration sphere
240824-16:21:19,424 nipype.workflow INFO:
         B0 field inhomogeneity map will be estimated with the following 1 estimator(s): [<EstimatorType.PHASEDIFF: 3>].
240824-16:21:19,442 nipype.workflow INFO:
         Setting-up fieldmap "phasediff_fmap0" (EstimatorType.PHASEDIFF) with <sub-y072_ses-2_magnitude1.nii, sub-y072_ses-2_magnitude2.nii, sub-y072_ses-2_phasediff.nii>
240824-16:21:19,456 nipype.workflow INFO:
         No single-band-reference found for sub-y072_ses-2_task-rest_run-01_bold.nii.
240824-16:21:19,467 nipype.workflow INFO:
         Stage 1: Adding HMC boldref workflow
240824-16:21:19,470 nipype.workflow INFO:
         Stage 2: Adding motion correction workflow
240824-16:21:19,473 nipype.workflow INFO:
         Stage 3: Adding coregistration boldref workflow
240824-16:21:19,501 nipype.workflow IMPORTANT:
         BOLD series will be slice-timing corrected to an offset of 0.961s.
240824-16:21:19,546 nipype.workflow INFO:
         No single-band-reference found for sub-y072_ses-2_task-rest_run-02_bold.nii.
240824-16:21:19,557 nipype.workflow INFO:
         Stage 1: Adding HMC boldref workflow
240824-16:21:19,559 nipype.workflow INFO:
         Stage 2: Adding motion correction workflow
240824-16:21:19,561 nipype.workflow INFO:
         Stage 3: Adding coregistration boldref workflow
240824-16:21:19,590 nipype.workflow IMPORTANT:
         BOLD series will be slice-timing corrected to an offset of 0.96s.
240824-16:21:19,833 nipype.workflow INFO:
         ANAT Stage 1: Adding template workflow
240824-16:21:19,835 nipype.workflow INFO:
         ANAT Stage 2: Preparing brain extraction workflow
240824-16:21:19,871 nipype.workflow INFO:
         ANAT Stage 3: Preparing segmentation workflow
240824-16:21:19,873 nipype.workflow INFO:
         ANAT Stage 4: Preparing normalization workflow for ['MNI152NLin2009cAsym']
240824-16:21:19,878 nipype.workflow INFO:
         ANAT Stage 5: Preparing surface reconstruction workflow
240824-16:21:19,887 nipype.workflow INFO:
         ANAT Stage 6: Preparing mask refinement workflow
240824-16:21:19,888 nipype.workflow INFO:
         ANAT No T2w images provided - skipping Stage 7
240824-16:21:19,888 nipype.workflow INFO:
         ANAT Stage 8: Creating GIFTI surfaces for ['white', 'pial', 'midthickness', 'sphere_reg', 'sphere']
240824-16:21:19,896 nipype.workflow INFO:
         ANAT Stage 8: Creating GIFTI metrics for ['thickness', 'sulc']
240824-16:21:19,900 nipype.workflow INFO:
         ANAT Stage 8a: Creating cortical ribbon mask
240824-16:21:19,902 nipype.workflow INFO:
         ANAT Stage 9: Creating fsLR registration sphere
240824-16:21:19,903 nipype.workflow INFO:
         ANAT Stage 10: Creating MSM-Sulc registration sphere
Process Process-2:
Traceback (most recent call last):
  File "/opt/conda/envs/fmriprep/lib/python3.11/multiprocessing/process.py", line 314, in _bootstrap
    self.run()
  File "/opt/conda/envs/fmriprep/lib/python3.11/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/opt/conda/envs/fmriprep/lib/python3.11/site-packages/fmriprep/cli/workflow.py", line 126, in build_workflow
    retval['workflow'] = init_fmriprep_wf()
                         ^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/fmriprep/lib/python3.11/site-packages/fmriprep/workflows/base.py", line 94, in init_fmriprep_wf
    single_subject_wf = init_single_subject_wf(subject_id)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/fmriprep/lib/python3.11/site-packages/fmriprep/workflows/base.py", line 515, in init_single_subject_wf
    fmap_estimators, estimator_map = map_fieldmap_estimation(
                                     ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/fmriprep/lib/python3.11/site-packages/fmriprep/workflows/base.py", line 763, in map_fieldmap_estimation
    fmap_estimators = find_estimators(
                      ^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/fmriprep/lib/python3.11/site-packages/sdcflows/utils/wrangler.py", line 354, in find_estimators
    e = fm.FieldmapEstimation(
        ^^^^^^^^^^^^^^^^^^^^^^
  File "<attrs generated init sdcflows.fieldmaps.FieldmapEstimation>", line 7, in __init__
    self.__attrs_post_init__()
  File "/opt/conda/envs/fmriprep/lib/python3.11/site-packages/sdcflows/fieldmaps.py", line 434, in __attrs_post_init__
    _estimators[self.bids_id] = self.paths()
    ~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/opt/conda/envs/fmriprep/lib/python3.11/site-packages/sdcflows/utils/bimap.py", line 144, in __setitem__
    raise KeyError(
KeyError: "'phasediff_fmap0' is already  in mapping"
fMRIPrep: Please report errors to https://github.com/nipreps/fmriprep/issues

Additional information / screenshots
[dcm2bids] config file
{
"dcm2niixOptions": "-ba n",
"descriptions": [
{
"datatype": "anat",
"suffix": "T1w",
"criteria": {
"SeriesDescription": "t1*",
"EchoTime": 0.00236,
"RepetitionTime": 2.3
},
"sidecar_changes": {
"ProtocolName": "T1"
}
},
{
"datatype": "anat",
"suffix": "FLAIR",
"criteria": {
"SeriesDescription": "t2*",
"EchoTime": 0.093,
"RepetitionTime": 9
},
"sidecar_changes": {
"ProtocolName": "FLAIR"
}
},
{
"id": "id_task-rest",
"datatype": "func",
"suffix": "bold",
"custom_entities": "task-rest",
"criteria": {
"EchoTime": 0.03,
"RepetitionTime": 2
},
"sidecar_changes": {
"TaskName": "rest",
"B0FieldSource": ["phasediff_fmap0"]
}
},
{
"datatype": "fmap",
"suffix": "magnitude1",
"criteria": {
"ProtocolName": "field_map",
"EchoTime": 0.00492
},
"sidecar_changes": {
"IntendedFor": ["id_task-rest"],
"B0FieldIdentifier": "phasediff_fmap0"
}
},
{
"datatype": "fmap",
"suffix": "magnitude2",
"criteria": {
"ProtocolName": "field_map",
"EchoTime": 0.00738,
"ImageType": ["ORIGINAL", "PRIMARY", "M", "ND"]
},
"sidecar_changes": {
"IntendedFor": "id_task-rest",
"B0FieldIdentifier": "phasediff_fmap0"
}
},
{
"datatype": "fmap",
"suffix": "phasediff",
"criteria": {
"ProtocolName": "field_map",
"EchoTime": 0.00738,
"ImageType": ["ORIGINAL", "PRIMARY", "P", "ND", "PHASE"]
},
"sidecar_changes": {
"IntendedFor": ["id_task-rest"],
"B0FieldIdentifier": "phasediff_fmap0"
}
}
]
}

Duplicate of https://github.com/nipreps/sdcflows/issues/455


Broken form designer?

I'm no expert on C# and .NET so maybe I've missed something completely obvious but when I try to open up the forms in this project in design mode (MainForm.cs for example) I'm greeted by this lovely screen:

This happens for every form I've tried. Any idea why this is happening?
I'm using the latest Visual Studio 2017 and I have the C# for desktop applications packages installed. The project compiles fine.

i believe this has something to do with the latest visual studio (2017 community) not displaying the forms properly.  I think @KN4CK3R uses something older

No I use the latest version but Visual Studio itself is the (known) problem. Visual Studio is a 32bit app and the designer works by compiling and displaying your form class. You have selected the x64 build mode which forces the compiler to compile the (form) classes in 64bit mode. Now the 32bit designer needs to load a 64bit assembly which fails and results in this error. Simply switch to x86 build mode and everything will work.

Here are more infos:
https://stackoverflow.com/questions/5378919/visual-studio-designer-in-x64-doesnt-work
https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/2677962-make-design-view-available-for-x64-target-platform

Thanks for the quick response.