Enclave LIBC syscall function does not provide same guarantees as described by Linux Programmer's manual

http://man7.org/linux/man-pages/man2/syscall.2.html says:

syscall() saves CPU registers before making the system call, restores
the registers upon return from the system call, and stores any error
code returned by the system call in errno(3) if an error occurs.

Additionally system calls dispatch to the platforms syscall (or equivalent instruction) that provides its own behavioral guarantees.
E.g: https://www.felixcloutier.com/x86/syscall says:

SYSCALL also saves RFLAGS into R11 and then masks RFLAGS using the IA32_FMASK MSR (MSR address C0000084H); specifically, the processor clears in RFLAGS every bit corresponding to a bit that is set in the IA32_FMASK MSR.

It is not clear if the syscall hook function in OE libc provides the same guarantees:
https://github.com/microsoft/openenclave/blob/eac946aaec2a71e7d48283bd025ee84aed10f9f5/libc/sgx/syscalls.c#L226-L251

CC: @CodeMonkeyLeet @paulcallen @dthaler

Do we really want to expose the raw syscall() publically to apps?  If not, it doesn't matter what the behavior is as long as the public calls hide it.

Do we really want to expose the raw syscall() publically to apps?

GLIBC and MUSL do. But we could choose to not provide it.

If not, it doesn't matter what the behavior is as long as the public calls hide it.

There is more to it than just public calls. libc library implementations (e.g MUSL) internally use the syscall function to call into kernel syscall function implementation, and rely on the guarantees provided by the syscall. If the syscall function's semantics are not preserved, then enclave's libc may not behave as expected.

Capturing some of the discussion that I had with Mike on 5/30.
Since the oe_syscall is not actually invoking the instruction syscall for Intel X64 systems, here are some observations:

This actually does the oe_ocall to the host which preserves all the registers when the host is Linux. So, we are preserving more than what syscall does.

However, some behaviors are not mimiced such as: (correctly pointed by Anand)
SYSCALL also saves RFLAGS into R11 and then masks RFLAGS using the IA32_FMASK MSR (MSR address C0000084H); specifically, the processor clears in RFLAGS every bit corresponding to a bit that is set in the IA32_FMASK MSR.
Here is a table that lists the common RFLAGS which we need to watch out for. There can be adverse affects or different behavior if any of the bits are different.
https://us-prod.asyncgw.teams.microsoft.com/v1/objects/0-cus-d10-1cb505379b13fa05b82070226dc9b785/views/imgo

The Linux manpage for syscall() does not go into the details but has a large section on architecture-specific requirements. Specific handling may need to be done on certain 32-bit architectures. We don't support 32-bit on Intel but we do on ARM TrustZone.  Here are a few relevant lines from the man page.
However, when using syscall() to make a system call,
the caller might need to handle architecture-dependent details; this
requirement is most commonly encountered on certain 32-bit
architectures.
For example, on the ARM architecture Embedded ABI (EABI), a 64-bit
value (e.g., long long) must be aligned to an even register pair.
Thus, using syscall() instead of the wrapper provided by glibc, the
readahead() system call would be invoked as follows on the ARM
architecture with the EABI in little endian mode:

    syscall(SYS_readahead, fd, 0,
            (unsigned int) (offset & 0xFFFFFFFF),
            (unsigned int) (offset >> 32),
            count);

Since the offset argument is 64 bits, and the first argument (fd) is
passed in r0, the caller must manually split and align the 64-bit
value so that it is passed in the r2/r3 register pair.  That means
inserting a dummy value into r1 (the second argument of 0).  Care
also must be taken so that the split follows endian conventions
(according to the C ABI for the platform).

Mike is saving/restoring more registers than the syscall instruction. His modifications to the vectored exception hander (./include/openenclave/internal/context.inc) is in the feature.exec branch.
This is done to save registers:
pushfq
pushq %rbp
pushq %rsp
pushq %rbx
pushq %rcx
pushq %rdx
pushq %rsi
pushq %rdi
pushq %r8
pushq %r9
pushq %r10
pushq %r11
pushq %r12
pushq %r13
pushq %r14
pushq %r15

And to restore:
pushq %rdx
movq %rsp, %rdx
addq $15, %rdx
andq $0xFFFFFFFFFFFFFFF0, %rdx
fxrstor (%rdx)
popq %rdx
addq $512 + 16, %rsp
ldmxcsr (%rsp)
addq $16, %rsp
popq %r15
popq %r14
popq %r13
popq %r12
popq %r11
popq %r10
popq %r9
popq %r8
popq %rdi
popq %rsi
popq %rdx
popq %rcx
popq %rbx
popq %rsp
popq %rbp
popfq
subq $16, %rsp

stmxcsr (%rsp)

subq $512 + 16, %rsp

pushq %rdx

movq %rsp, %rdx

addq $15, %rdx

andq $0xFFFFFFFFFFFFFFF0, %rdx

fxsave (%rdx)

syscall in the enclave is just a function call, not a process boundary crossing.

Raise with mike or li if you have additional concerns.


Drag item and Mouse Button up/down with coordinates

Is your feature request related to a problem? Please describe.
Mouse Button click works with coordinates. Mouse Button down/up does not. I have to use Mouse move first. Isn't it a litte complicated/confusing? Wouldn't it be great if Mouse Button up/down would work like Mouse Move -> Mouse button up/down as well as Mouse Button click?
In Addition: A keyword for drag and drop an element. A shortcut for the following steps:

Get coordinates for place a (source)
Get coordinates for place b (destination)
mouse down at source
mouse up at destination

Fixed already.


run in headless mode or open window without grabbing focus?

right now every time the chrome window opens, it grabs focus which is distracting. is there a way to run this in headless mode or open without grabbing focus?

Can you set DockerMode = true on server.py, even if you not run it on Docker, it'll be headless.

great tx, that worked perfectly!

hmm I was wrong. it dsnt seem to be working now.

hmm I was wrong. it dsnt seem to be working now.

what's the problem? can you share screenshots and terminal outputs to show?

here's what I did, edit server.py, add
DOCKER_MODE = true
comment out: DOCKER_MODE = os.getenv("DOCKERMODE", "false").lower() == "true"

run test.py:

the chrome window still appears:

Oh, sorry. I thought you were using server.py. I just committed headless support. Re-clone the repo and you can change isHeadless=True on line 34 in test.py.

just cloned the repo again and added isHeadless=Trueto line 34 of test.py:

still didn't work and it opened a chrome window.

Are you sure you have the latest version of the repo? https://github.com/sarperavci/CloudflareBypassForScraping/commit/729613653e0a2cab989362fcfbd446297646ce2a

ok I deleted and recloned it and reinstalled the requirements, it added some new modules.
now there's this error:

I am not sure you can use the module we use for headless mode on Windows.
Creating your own Docker image as needed might solve your problem.

its possible to run it headless on windows, but you would need to be implemented:
https://stackoverflow.com/questions/43270513/is-there-a-windows-equivalent-to-pyvirtualdisplay

so I tried running:
docker build -t cloudflare-bypass .
docker run -p 8000:8000 cloudflare-bypass
and the docker image is running. but what do I do next? how do I configure test.py to go thru the docker image?

ah nvm, I just needed to use the same syntax as server.py or use curl. tx!


How to break out section_parent attributes with DocConsumer?

Specifying the section_parent attribute for ents in DocConsumer results in a table in which all the attributes of the section_parent are listed in one cell.

Is there a way to just pick out a single attribute of the section_parent in DocConsumer?  For example, accesssing the doc directly, one can write:

I think my answer to this would probably be similar to what I'd said in #68 : it might be best to register your own custom attributes like:
from spacy.tokens import Span
Span.set_extension("section_parent_category", getter=lambda x:x._.section_parent.category)

and then add "section_parent_category" to your DocConsumer attribute names. This lets you extend what we've already set to whatever particular attributes you're interested in and point the DocConsumer to them.


I can't find the time based window

I saw a feature that time-base window in https://github.com/epfldata/squall. But I can't see it in test case, so how can I used it, thanks.

@kingyueyang  there is a preliminary version of time based window semantics now.


Use cats' MonadError instead of providing your own

Hi!
sttp in both major versions has its own MonadError[F] definition and its implementations (doc). Meanwhile, cats already have a definition of MonadError[F, T], which is generalization of sttp's typeclass for T=Throwable doc.
In my code where I have to use both of these type classes for my own type constructors, and I feel like defining instances for both of them is a bit anti-ergonomic. Would it be too bad for sttp to depend on cats-core and its type classes?

Cats dropped support of Scala 2.11 in September, at least that's what I can see in maven repository.

Since we are supporting akka/cats/zio/scalaz, closing the issue as won't fix.


Add sized bool operators

Should the sized bool enums have operators? Is that even possible? bool32x4 has operators.

Done in the rewrite.


LiveData.zip

Implement zip operator for LiveData.
val resultLiveData: LiveData<Pair<A, B>> = liveData1 zip liveData2

val resultLiveData: LiveData<Pair<A, B>> = zip(liveData1, liveData2)

val resultLiveData: LiveData<Triple<A, B, C>> = zip(liveData1, liveData2, liveData3)

val resultLiveData: LiveData<List<X>> = zip(liveData1, ..., liveDataN)

Unlike Observable, LiveData always remembers only the latest emitted value. Thus, the result of zip could not be guaranteed, as there might have already been multiple values emitted before the LiveData has been observed for the first time.


Bug report

Bug report
Describe the bug
Here is a clear and concise description of what the problem is:
A PVR addon is currently unable to use the Recording directory feature if a directory name will contain a forward slash.  The forward slash will be interpreted as a subdirectory delimiter.
For example, consider a PVR that uses the Recording series name as a directory name, such as US ABC series "20/20".  Kodi will interpret this as a request to create two directories, "20" and "20".
Expected Behavior
Here is a clear and concise description of what was expected to happen:
The expected behavior would be to provide a way for the PVR addon to specify a directory name that contains a forward slash, either through encoding or some other means.
Actual Behavior
Please see above; specifying a Recording directory name of "20/20" will yield a directory of "20" with a single subdirectory of "20".
Possible Fix
I incorrectly assumed that it would be OK to optionally allow for URL encoding via (rescinded)  PR https://github.com/xbmc/xbmc/pull/19042.  Review from the PVR maintainer suggested two alternate approaches:

Either we make escape of the path segments of the directory string mandatory or we change the directory string member of PVR_RECORDING to be an array of the path segments.

Neither approach seems reasonable for Kodi 19 Matrix at this time.  The first approach would break the PVR API interface contract, and the second would break PVR API compatibility.  Suggest consideration for Kodi 20 "N" only.
To Reproduce
Steps to reproduce the behavior:

Specify a Recording directory name of simply "20/20" via the PVR API
This will be interpreted as two directories

Debuglog

The debuglog can be found here:
https://paste.kodi.tv/nojopizipu.kodi
NOTE: Will not contain any information relevant to the Issue, provided for report completeness.
Screenshots
Here are some links or screenshots to help explain the problem:

Additional context or screenshots (if appropriate)
Here is some additional context or explanation that might help:

Your Environment
Used Operating system:

[ ] Android

[x] iOS

[ ] tvOS

[ ] Linux

[ ] OSX

[X] Windows

[ ] Windows UWP

Operating system version/name: Windows 10 x64, 20H2 (19042)

Kodi version: 19.0-BETA2 (18.9.821) Git:20210106-4c1c7e7449

note: Once the issue is made we require you to update it with new information or Kodi versions should that be required.
Team Kodi will consider your problem report however, we will not make any promises the problem will be solved.
Originally posted by @djp952 in https://github.com/xbmc/xbmc/issues/19047

Bug report
Describe the bug
Here is a clear and concise description of what the problem is:
A PVR addon is currently unable to use the Recording directory feature if a directory name will contain a forward slash.  The forward slash will be interpreted as a subdirectory delimiter.
For example, consider a PVR that uses the Recording series name as a directory name, such as US ABC series "20/20".  Kodi will interpret this as a request to create two directories, "20" and "20".
Expected Behavior
Here is a clear and concise description of what was expected to happen:
The expected behavior would be to provide a way for the PVR addon to specify a directory name that contains a forward slash, either through encoding or some other means.
Actual Behavior
Please see above; specifying a Recording directory name of "20/20" will yield a directory of "20" with a single subdirectory of "20".
Possible Fix
I incorrectly assumed that it would be OK to optionally allow for URL encoding via (rescinded)  PR https://github.com/xbmc/xbmc/pull/19042.  Review from the PVR maintainer suggested two alternate approaches:

Either we make escape of the path segments of the directory string mandatory or we change the directory string member of PVR_RECORDING to be an array of the path segments.

Neither approach seems reasonable for Kodi 19 Matrix at this time.  The first approach would break the PVR API interface contract, and the second would break PVR API compatibility.  Suggest consideration for Kodi 20 "N" only.
To Reproduce
Steps to reproduce the behavior:

Specify a Recording directory name of simply "20/20" via the PVR API

This will be interpreted as two directories

Debuglog

The debuglog can be found here:
https://paste.kodi.tv/nojopizipu.kodi
NOTE: Will not contain any information relevant to the Issue, provided for report completeness.
Screenshots
Here are some links or screenshots to help explain the problem:

Additional context or screenshots (if appropriate)
Here is some additional context or explanation that might help:

Your Environment
Used Operating system:

[ ] Android

[ ] iOS

[ ] tvOS

[ ] Linux

[ ] OSX

[X] Windows

[ ] Windows UWP

Operating system version/name: Windows 10 x64, 20H2 (19042)

Kodi version: 19.0-BETA2 (18.9.821) Git:20210106-4c1c7e7449

*note: Once the issue is made we require you to update it with new information or Kodi versions should that be required.
Team Kodi will consider your problem report however, we will not make any promises the problem will be solved.*
Originally posted by @djp952 in https://github.com/xbmc/xbmc/issues/19047

Bug report
Describe the bug
Here is a clear and concise description of what the problem is:
A PVR addon is currently unable to use the Recording directory feature if a directory name will contain a forward slash.  The forward slash will be interpreted as a subdirectory delimiter.
For example, consider a PVR that uses the Recording series name as a directory name, such as US ABC series "20/20".  Kodi will interpret this as a request to create two directories, "20" and "20".
Expected Behavior
Here is a clear and concise description of what was expected to happen:
The expected behavior would be to provide a way for the PVR addon to specify a directory name that contains a forward slash, either through encoding or some other means.
Actual Behavior
Please see above; specifying a Recording directory name of "20/20" will yield a directory of "20" with a single subdirectory of "20".
Possible Fix
I incorrectly assumed that it would be OK to optionally allow for URL encoding via (rescinded)  PR https://github.com/xbmc/xbmc/pull/19042.  Review from the PVR maintainer suggested two alternate approaches:

Either we make escape of the path segments of the directory string mandatory or we change the directory string member of PVR_RECORDING to be an array of the path segments.

Neither approach seems reasonable for Kodi 19 Matrix at this time.  The first approach would break the PVR API interface contract, and the second would break PVR API compatibility.  Suggest consideration for Kodi 20 "N" only.
To Reproduce
Steps to reproduce the behavior:

Specify a Recording directory name of simply "20/20" via the PVR API

This will be interpreted as two directories

Debuglog

The debuglog can be found here:
https://paste.kodi.tv/nojopizipu.kodi
NOTE: Will not contain any information relevant to the Issue, provided for report completeness.
Screenshots
Here are some links or screenshots to help explain the problem:

Additional context or screenshots (if appropriate)
Here is some additional context or explanation that might help:

Your Environment
Used Operating system:

[ ] Android

[ ] iOS

[ ] tvOS

[ ] Linux

[ ] OSX

[X] Windows

[ ] Windows UWP

Operating system version/name: Windows 10 x64, 20H2 (19042)

Kodi version: 19.0-BETA2 (18.9.821) Git:20210106-4c1c7e7449

*note: Once the issue is made we require you to update it with new information or Kodi versions should that be required.
Team Kodi will consider your problem report however, we will not make any promises the problem will be solved.*
Originally posted by @djp952 in https://github.com/xbmc/xbmc/issues/19047

This game

279322


CloudError: Endpoint (observeMySession)

Node version: 20.5.0
Sails version (sails): 1.5.7
ORM hook version (sails-hook-orm): 4.0.0
Sockets hook version (sails-hook-sockets): 2.0.0
Organics hook version (sails-hook-organics): 2.0.0
Grunt hook version (sails-hook-grunt): 5.0

First install according to "get-started" and created "Web App"
Signed up with email address and when I try login I am facing this error.
"CloudError: Endpoint (observeMySession) responded with an error (or the request failed)."
Uncaught (in promise) CloudError: Endpoint (observeMySession) responded with an error (or the request failed).
exec http://localhost:1337/dependencies/cloud.js:649
_promise http://localhost:1337/dependencies/cloud.js:612
toPromise http://localhost:1337/dependencies/cloud.js:610
then http://localhost:1337/dependencies/cloud.js:592
cloud.js:649:33

I am also facing same issue. Any solution please?

Hi, As a temporary fix you can try the following.
step 1: Open your-project\assets\js\components\account-notification-banner.component.js
step 2: Replace mounted method with following
mounted: async function() {
  try{
    await Cloud.observeMySession();
    // Listen for updates to the user's session
    Cloud.on('session', (msg)=>{
      if(msg.notificationText) {
        this.notificationText = msg.notificationText;
      } else {
        this.notificationText = '';
      }
    });//œ
  }
  catch(e){
    console.log(`some error : `, e);
  }
}

Reason replacing mounted method is, in the mounted method await Cloud.observeMySession(); throws an error that is not handled, So we are handling that error with try/catch.

I am facing the same.
The temporary solution above works, but we keep without WebSocket capability because 'sails.sockets' is working nomore.
It looks like _csrf is not being sent into window.SAILS_LOCALS, so
I recommend you set false csrf attribute into config/security.js file - for a while.
I mean - FOR A WHILE - due to security issues around lack of CSRF control.

@rizikoblogger @sreehari-nallapaneni @usmanghani599 @tlgtrn Patch otw (see also #7297)

Published as v1.5.8


New integration test framework fails with Galley being nil when running in kube env.

Related to this PR https://github.com/istio/istio/pull/13115. When I ran existing tests, e.g sds_citadel_flow_test.go, the test failed with error galley must not be nil. It ran fine before https://github.com/istio/istio/pull/13115 was merged.
g := galley.NewOrFail(t, ctx, galley.Config{})
	p := pilot.NewOrFail(t, ctx, pilot.Config{
		Galley: g,
	})
	appInst := apps.NewOrFail(t, ctx, apps.Config{Pilot: p})

Yeah the tests fail in prow anyways which is why they were missed. simple fix, just add Galley: g to apps.Config

Yes. I have included the fix in #13353. Will close this issue once that PR has been checked in.


elmPackages.elm-instrument: Init at 0.0.7

Init elm-instrument

This package is not that useful on its own but it's a first logical step for packaging elm-coverage
PR to upstream we're currently using as a patch

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

cc @domenkozar this is part 1/2 of bringing elm-coverage in. I think doing it one by one will result in clearer diff in PRs. Alternatively I can continue on node.js side within this PR.

@GrahamcOfBorg build elmPackages.elm-instrument


Allow to change the type (input/output) of Application Parameters

Currently we have to edit the component, remove the parameter, save, edit again, add the parameter save.

Same for description

@schaubl Can this issue be closed?  I see PRs is merged.

It also can be closed


Automate Contract Mock Generation & Fix Mock Tests

Right now the augur-core python tests have a suite of mock-based unit tests that are set to not run as they are currently broken and fixing them will likely be an onerous process.
Part of the reason this is the case is because the Mock contracts are managed by hand. It should be a relatively simple process for our test suite to manage the generation of these mocks by using the ABI from our contracts.
Once this generation is in place it would be nice to fix or alter the mock tests so they pass and we can turn them back on then in the future perhaps even expand them if we see value in that.

Note: make sure this code is python3-compatible.


build: Update jsdoc fork

This brings our NPM audit vulnerabilities from 10 to 6.

I had overlooked a CI failure (missing deps we used to get transitively), which I think is now corrected.  PTAL!


Add risk rosette

Resolves L2B-984

visual bug in activity tab

breakdown icons explainer is no longer needed

dark mode technology font color does not match the design

there is a new icon for the tab

Do we really want to lose numbering on the list :O It looks very odd without any numbers, it's even hard to realize how many solutions do we list...
I think padding on the right side is missing here:

CC: @kurbanski

The padding was fixed

Have u seen this? Any ideas to improve this screen? @michalsidzej

@krzkaczor Just fixed it. Ready now


Update CNCF Landscape Summary

Update https://landscape.cncf.io/summary entry for Flux, in particular these:
Target Users:
Who is this project for? Who'll be using it? Developers, SRE/DevOps Engineers, Architects?
Tags:
Add tags that describe your project's properties. Please focus on technical features. The goal is for the user to differentiate and compare projects on a high level. Tags will allow them to infer project features, qualities, and properties.
Example: KubeEdge, Akri, OpenYurt, and SuperEdge will likely all share the Edge tag indicating that they relate to the network edge. OpenYurt and SuperEdge may also share the IoT tag, while KubeEdge and Akri won't. Metal3-io’s tags might show it to be the only project dealing with baremetal and provisioning.
Use case:
Focus on the technical problem your project solves. Why would someone need it? What technical pain points does it address? Be brief and limit your description to 500 characters.
Business use:
Comment on your project's business use case. How would it bring value to an organization? Does it reduce risk of some type (e.g., regulatory, reputational), or increase responsiveness to customer demand? Does it increase security in a way that reduces business support costs? What is the business problem your project is trying to solve? Be brief and limit your description to 500 characters.
Release cadence:
How often do you release a new version?
Integrations:
What does it integrate with?
Overview video:
Optional: 5 min product pitch. Same thing as above, but delivered in video format.

Release cadence: Refer to FAQ entry regarding minor releases: ".. current release cadence of at least once per month to continue."

Target users: SREs, DevOps & Platform Engineers, Architects, Developers
Integrations:

Flux: all standard Cloud Native, Git provider and observability tooling
Flagger: Gateway API + standard service meshes and ingress controllers

Tags: OCI, container, security, gitops, Kubernetes, Helm, Observability, Software Supply Chain, Policy, CICD, Multi-Tenancy, API Gateway

Use case: Flux is a tool for keeping Kubernetes clusters in sync with sources of configuration (like Git repositories and OCI artifacts), and automating updates to configuration when there is new code to deploy. Flux is built from the ground up to use Kubernetes' API extension system, and to integrate with Prometheus and other core components of the Kubernetes ecosystem. Flux supports multi-tenancy and support for syncing an arbitrary number of Git repositories, among other long-requested features.

cc @staceypotter @vanessaabankwah

business use: GitOps is the natural evolution of configuration as code. Businesses moving to Flux can deal with infrastructure at scale more easily, and allow their developers to focus on code, not on deployment problems. With its vast ecosystem of Flux integrations and being integrated into cloud offerings everywhere, adopting Flux can be adopted in virtually every setup.

The only bit missing is the 5 min project pitch video.

This is done and updated on https://landscape.cncf.io/summary now.
@vanessaabankwah (and @staceypotter) wanted to look into finding a good Flux project pitch video.

Linking to #91 and closing, the pitch video was mentioned as part of that. We don't have anyone working on this right now. Volunteers needed.


[beta][curriculum] Basic JavaScript: Use the Conditional (Ternary) Operator

Basic JavaScript: Use the Conditional (Ternary) Operator
https://beta.freecodecamp.com/en/challenges/basic-javascript/use-the-conditional-ternary-operator
I tested my solution in replit
https://repl.it/HsKg/0
refreshing the tab or resetting the code didnt help...
Here is the error that appeared in the js console

Hi, your solution is incorrect. Please click the links VarCI-bot posted to ask for help if you need it.

Invalid return of string vs boolean. Closing as not a bug.

Sorry guys forgot to remove this issue, perhaps we can amend the challenge to refer to a boolean, I mistook it and wrote strings instead :)

I'm not sure where to complain about this, so I'll start here. The solution is fairly straightforward, but I don't think it's a good example. If one of my junior devs wrote this line I'd flag it as an anti-pattern for returning raw boolean values instead of returning a boolean expression. I think the question should be changed to something more like "use a ternary operator to return the higher argument".


postbuildcheck: do not suggest invalid cmake

Fixes https://github.com/microsoft/vcpkg/issues/24124

Thanks for the fix!


https://registry.npmjs.org/node_gyp - E404 error with npm install

0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli   '/usr/local/bin/node',
1 verbose cli   '/usr/local/bin/npm',
1 verbose cli   'install',
1 verbose cli   '-g',
1 verbose cli   'node_gyp'
1 verbose cli ]
2 info using<EMAIL_ADDRESS>3 info using<EMAIL_ADDRESS>4 verbose npm-session 8bf6ab7e19c7805f
5 silly install loadCurrentTree
6 silly install readGlobalPackageData
7 http fetch GET 404 https://registry.npmjs.org/node_gyp 1170ms
8 http fetch GET 404 https://registry.npmjs.org/node_gyp 67ms
9 silly fetchPackageMetaData error for node_gyp@latest 404 Not Found - GET https://registry.npmjs.org/node_gyp - Not found
10 timing stage:rollbackFailedOptional Completed in 1ms
11 timing stage:runTopLevelLifecycles Completed in 1259ms
12 verbose stack Error: 404 Not Found - GET https://registry.npmjs.org/node_gyp - Not found
12 verbose stack     at /usr/local/lib/node_modules/npm/node_modules/npm-registry-fetch/check-response.js:104:15
12 verbose stack     at processTicksAndRejections (internal/process/task_queues.js:97:5)
13 verbose statusCode 404
14 verbose pkgid node_gyp@latest
15 verbose cwd /Users/s1b06wv/OneDrive - Walmart Inc/ui_workspace/new-ui/self-service-portal/src
16 verbose Darwin 19.6.0
17 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "node_gyp"
18 verbose node v12.17.0
19 verbose npm  v6.14.4
20 error code E404
21 error 404 Not Found - GET https://registry.npmjs.org/node_gyp - Not found
22 error 404
23 error 404 'node_gyp@latest' is not in the npm registry.
24 error 404 You should bug the author to publish it (or use the name yourself!)
25 error 404 Note that you can also install from a
26 error 404 tarball, folder, http url, or git url.
27 verbose exit [ 1, true ]

This project is node-gyp, i.e. with a hyphen instead of an underscore.


xVMHardDiskDrive/xVMScsiController - New Resources

Adds xVMHardDiskDrive and xVMScsiController resources

Fixes #66
Fixes #31

Adds shared Get-VMHyperV function

Fixes #105

Task list:

[X] Change details added to Unreleased section of CHANGELOG.md?
[X] Added/updated documentation, comment-based help and descriptions in .schema.mof files where appropriate?
[X] Examples appropriately updated / added?
[X] New/changed code adheres to Style Guidelines?
[X] Unit and (optional) Integration tests created/updated where possible?

This change is

Codecov Report

Merging #124 into dev will decrease coverage by 29%.
The diff coverage is 8%.

@@         Coverage Diff          @@
##            dev   #124    +/-   ##
====================================
- Coverage    71%    41%   -30%
====================================
  Files         9     11     +2
  Lines      1032   1154   +122
  Branches     12      8     -4
====================================
- Hits        733    475   -258
- Misses      287    671   +384
+ Partials     12      8     -4

@iainbrighton I'm back from holiday. I'll get to reviewing this hopefully during this week.

@iainbrighton Thank's for all your hard work on this and I'm so sorry I didn't get to reviewing this earlier! Please see my comments.

Reviewed 16 of 18 files at r1, 2 of 2 files at r2.
Review status: all files reviewed at latest revision, 44 unresolved discussions.

README.md, line 197 at r2 (raw file):

 manipulated.
* **`[String]` ControllerType** _(Write)_: Specifies the type of controller to which
 the the hard disk drive is to be set. { *SCSI* | IDE}.

the the. one of these can go :)
Add a space between IDE and }
Please add the sentence "The default value is SCSI." before { SCSI | IDE }
I know it's a bit redundant but it's what is used everywhere now.

README.md, line 207 at r2 (raw file):

 Defaults to 0.
* **`[String]` Ensure** _(Write)_: Specifies if the hard disk drive should exist or
 not. { *Present* | Absent }.

The default value is Present. { Present | Absent }

README.md, line 440 at r2 (raw file):

Manages the SCSI controllers attached to a Hyper-V virtual machine.
When there is only 1 SCSI controller and ControllerNumber 3 is created, all the
 intermediate controllers will also be created.

Not sure why this would be the behavior you want in the current design. Being explicit about the number of the controller would mean to me that if I'm missing one in between, an error would be thrown as the other controllers are not defined.
A thought, if the schema would have a parameter that defines number of scsi controllers instead? That way it makes more sense to me that intermediate controllers would be created.
Update:
After inspecting the code, I can see that the intermediate controllers are not created. Instead an error is thrown as I would have expected.

README.md, line 453 at r2 (raw file):

* **`[String]` VMName** _(Key)_: Specifies the name of the virtual machine whose SCSI
 controller is to be manipulated.
* **`[Uint32]` ControllerNumber** _(Key)_: Specifies the number of the controller to

See previous comment. What if this was replaced with NumberOfControllers?

README.md, line 456 at r2 (raw file):

 be set: { 0 | 1 | 2 | 3 }.
* **`[String]` Ensure** _(Write)_: Specifies if the SCSI controller should exist or
 not. { *Present* | Absent }.

The default value is ....

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 11 at r2 (raw file):

else
{
    #fallback to en-US

Sorry to nag, should be a space between # and comment

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 49 at r2 (raw file):

    Assert-Module -Name 'Hyper-V'

    $hardDiskDrive = Get-VMHardDiskDrive -VMName $VMName -ErrorAction Stop |

Why EA stop? You check for null in the next if. Get-TargetResource shouldn't blow up.

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 50 at r2 (raw file):

    $hardDiskDrive = Get-VMHardDiskDrive -VMName $VMName -ErrorAction Stop |
                        Where-Object { $_.Path -eq $Path }

conditional binding is not allowed. Please add -FilterScript parameter.

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 72 at r2 (raw file):

    }

    return $resource

return keyword doens't effect the logic here so isn't necessary. IMO retun should only be used when it's effecting the logic.
You could just have the hashtable go to output without the variable assignment at all.

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 152 at r2 (raw file):

        }
    }
    return $isCompliant

no need for return. $isCompliant is enough

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 167 at r2 (raw file):

    .PARAMETER ControllerNumber
    Specifies the number of the controller to which the hard disk drive is to be set.
    If not specified, this parameter assumes the value of the first available controller at the

If not specified, it's 0

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 171 at r2 (raw file):

    .PARAMETER ControllerLocation
    Specifies the number of the location on the controller at which the hard disk drive is to be
    set. If not specified, the first available location in the controller specified with the

If not specified, it's 0

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 212 at r2 (raw file):

    Assert-Module -Name 'Hyper-V'

    $hardDiskDrive = Get-VMHardDiskDrive -VMName $VMName | Where-Object { $_.Path -eq $Path }

positional binding

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 225 at r2 (raw file):

            $null = $PSBoundParameters.Remove('Path')
            # As the operation is a move, we must use ToController instead of Controller
            if ($PSBoundParameters.ContainsKey('ControllerType'))

PSBoundParameters is manipulated extensively. Wouldn't it be cleaner to just create a new hashtable?

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 241 at r2 (raw file):

            }
            $null = $hardDiskDrive | Set-VMHardDiskDrive @PSBoundParameters
            return

not a fan of the use of return to terminate here. I would prefer you use else to contain the rest of the code instead.

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 248 at r2 (raw file):

            VMName             = $VMName
            ControllerType     = $ControllerType
            ControllerNumber   = $ControllerNumber

If not specified, it's 0 for controllerNumber and ControllerType

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 256 at r2 (raw file):

            $errorMessage = $localizedData.DiskPresentError -f $ControllerNumber, `
                                                                $ControllerLocation
            New-InvalidOperationError -ErrorId 'ControllerNotEmpty' -ErrorMessage $errorMessage

New-InvalidOperationError will throw a terminating error. No need for the return after it.

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.schema.mof, line 6 at r2 (raw file):

    [Key, Description("Specifies the name of the virtual machine whose hard disk drive is to be manipulated")] String VMName;
    [Key, Description("Specifies the full path to the location of the VHD that represents the hard disk drive")] String Path;
    [Write, Description("Specifies the controller type - IDE/SCSI where the disk is attached"), ValueMap{"IDE","SCSI"}, Values{"IDE","SCSI"}] String ControllerType;

I would mention it defaults to SCSI

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.schema.mof, line 9 at r2 (raw file):

    [Write, Description("Specifies the number of the controller where the disk is attached"), ValueMap{"0","1","2","3"}, Values{"0","1","2","3"}] Uint32 ControllerNumber;
    [Write, Description("Specifies the number of the location on the controller where the disk is attached")] Uint32 ControllerLocation;
    [Write, Description("Specifies if the hard disk drive must be present or absent"), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] String Ensure;

I would mention it defaults to Present

DSCResources/MSFT_xVMHardDiskDrive/en-US/MSFT_xVMHardDiskDrive.strings.psd1, line 3 at r2 (raw file):

ConvertFrom-StringData @'
    DiskFound                    = Found hard disk '{0}' attached to VM '{1}'.
    DiskNotFound                 = Hard disk '{0}' not found attached to VM '{1}'

Missing .

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.psm1, line 11 at r2 (raw file):

else
{
    #fallback to en-US

please add a space between # and fallback

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.psm1, line 47 at r2 (raw file):

        [ValidateSet(0,1,2,3)]
        [System.UInt32]
        $ControllerNumber

See my comment in the README section about NumberOfControllers

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.psm1, line 67 at r2 (raw file):

        VMName           = $Controller.VMName
        ControllerNumber = $Controller.ControllerNumber
        Ensure           = $ensure

The output of Get should contain all keys as defined in the schema

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.psm1, line 70 at r2 (raw file):

    }

    return $resource

no need for return

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.psm1, line 96 at r2 (raw file):

    (
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]

NotNullOrEmpty validator isn't needed as it's the key (i've seen operational issues because of this validator in other resources.

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.psm1, line 101 at r2 (raw file):

        [Parameter(Mandatory = $true)]
        [ValidateSet(0,1,2,3)]

There should be a space between each element

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.psm1, line 127 at r2 (raw file):

    }

    return $isCompliant

no need for return

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.psm1, line 186 at r2 (raw file):

    if ($Ensure -eq 'Present')
    {
        if ($scsiControllerCount -lt $ControllerNumber)

I would prefer this is tested before the VM is shut down

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.psm1, line 196 at r2 (raw file):

            $errorMessage = $localizedData.CannotAddScsiControllerError -f $ControllerNumber
            New-InvalidArgumentError -ErrorId InvalidController -ErrorMessage $errorMessage
            return

no need for return

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.psm1, line 214 at r2 (raw file):

            $errorMessage = $localizedData.CannotRemoveScsiControllerError -f $ControllerNumber
            New-InvalidArgumentError -ErrorId InvalidController -ErrorMessage $errorMessage
            return

no need for return

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.schema.mof, line 6 at r2 (raw file):

    [Key, Description("Specifies the name of the virtual machine whose SCSI controller status is to be controlled")] String VMName;
    [Key, Description("Specifies the number of the SCSI controller whose status is to be controlled"), ValueMap{"0","1","2","3"}, Values{"0","1","2","3"}] Uint32 ControllerNumber;
    [Write, Description("Specifies if the SCSI controller should exist or not"), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] String Ensure;

I would specify the default is Present

Examples/Sample_xVMHardDiskDrive_VMWith4AdditionalDisks.ps1, line 29 at r2 (raw file):

        {
            Ensure = 'Present'
            Name   = 'Hyper-V'

Missing Hyper-V PowerShell

Examples/Sample_xVMHardDiskDrive_VMWith4AdditionalDisks.ps1, line 93 at r2 (raw file):

}

$mofPath = "C:\temp\Sample_xVMHardDiskDrive"

These lines (compile, start, etc) should be removed. Once we opt-in for example tests, these cannot be present

Examples/Sample_xVMHardDiskDrive_VMWithExtraDisk.ps1, line 30 at r2 (raw file):

        {
            Ensure = 'Present'
            Name   = 'Hyper-V'

Missing Hyper-V PowerShell

Examples/Sample_xVMHardDiskDrive_VMWithExtraDisk.ps1, line 68 at r2 (raw file):

            ControllerNumber   = 0
            ControllerLocation = 1
            Ensure             = 'Present'

The default of the resource is SCSI. No SCSI controller is present

Examples/Sample_xVMHardDiskDrive_VMWithExtraDisk.ps1, line 74 at r2 (raw file):

}

$mofPath = "C:\temp\Sample_xVMHardDiskDrive"

please remove these lines

Examples/Sample_xVMScsiController_AddControllers.ps1, line 29 at r2 (raw file):

        {
            Ensure = 'Present'
            Name   = 'Hyper-V'

Missing Hyper-V PowerShell

Examples/Sample_xVMScsiController_AddControllers.ps1, line 65 at r2 (raw file):

}

$mofPath = "C:\temp\Sample_xVMScsiController"

please remove these lines

Tests/Unit/HyperVCommon.tests.ps1, line 230 at r2 (raw file):

    } # describe HyperVCommon\WaitVMIPAddress

    Describe 'HyperVCommon\ConvertTo-TimeSpan' {

Awesome! Thanks for adding all of these :+1:

Tests/Unit/MSFT_xVMHardDiskDrive.Tests.ps1, line 117 at r2 (raw file):

                ControllerNumber   = 0
                ControllerLocation = 0
                Ensure             = 'Present';

Found one :) Please remove the semicolon

Tests/Unit/MSFT_xVMHardDiskDrive.Tests.ps1, line 216 at r2 (raw file):

                }

                { Test-TargetResource @testTargetResourceParams } | Should Throw 'not valid'

Shouldn't this be the exception message?

Tests/Unit/MSFT_xVMHardDiskDrive.Tests.ps1, line 332 at r2 (raw file):

                Path               = $testHardDiskPath
                ControllerLocation = 0
                ControllerNumber   = 0

I would like to see a controller number / location not existing test as well.
I think that scenario isn't handled in the resource currently

Tests/Unit/MSFT_xVMScsiController.Tests.ps1, line 104 at r2 (raw file):

                VMName           = $testVMName
                ControllerNumber = 0
                Ensure           = 'Present';

semicolon

Tests/Unit/MSFT_xVMScsiController.Tests.ps1, line 195 at r2 (raw file):

                }

                $null = Set-TargetResource @setTargetResourceParams

Missing the should or assert mock called?

Comments from Reviewable

Thanks @bgelens - it's been a while! I think I've addressed most of the comments, but there are still a few things left for discussion.

Review status: all files reviewed at latest revision, 44 unresolved discussions.

README.md, line 197 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
the the. one of these can go :)
Add a space between IDE and }
Please add the sentence "The default value is SCSI." before { SCSI | IDE }
I know it's a bit redundant but it's what is used everywhere now.

Done.

README.md, line 207 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
The default value is Present. { Present | Absent }

Done.

README.md, line 440 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
Not sure why this would be the behavior you want in the current design. Being explicit about the number of the controller would mean to me that if I'm missing one in between, an error would be thrown as the other controllers are not defined.
A thought, if the schema would have a parameter that defines number of scsi controllers instead? That way it makes more sense to me that intermediate controllers would be created.
Update:
After inspecting the code, I can see that the intermediate controllers are not created. Instead an error is thrown as I would have expected.

Correct - I have removed this line as it was the old (incorrect) implementation.

README.md, line 453 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
See previous comment. What if this was replaced with NumberOfControllers?

Done.

README.md, line 456 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
The default value is ....

Done.

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 11 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
Sorry to nag, should be a space between # and comment

Done.

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 49 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
Why EA stop? You check for null in the next if. Get-TargetResource shouldn't blow up.

It'll stop if the VM is not found, no error is thrown if the disk doesn't exist :wink:

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 50 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
conditional binding is not allowed. Please add -FilterScript parameter.

Done.

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 72 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
return keyword doens't effect the logic here so isn't necessary. IMO retun should only be used when it's effecting the logic.
You could just have the hashtable go to output without the variable assignment at all.

OK - I've replaced it with Write-Output. I like to see something explicit showing we're returning something - rather than have to work out the hashtable is not assigned to a variable, and is instead returned to the pipeline.

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 152 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
no need for return. $isCompliant is enough

We talk about being explicit one moment and then revert to being implicit for return values?

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 167 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
If not specified, it's 0

Done.

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 171 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
If not specified, it's 0

Done.

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 212 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
positional binding

Done.

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 225 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
PSBoundParameters is manipulated extensively. Wouldn't it be cleaner to just create a new hashtable?

It would actually add an additional if statement. I'm not sure that would make the code any clearer?

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 241 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
not a fan of the use of return to terminate here. I would prefer you use else to contain the rest of the code instead.

Done.

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 248 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
If not specified, it's 0 for controllerNumber and ControllerType

Yes.

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 256 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
New-InvalidOperationError will throw a terminating error. No need for the return after it.

Done.

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.schema.mof, line 6 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
I would mention it defaults to SCSI

Done.

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.schema.mof, line 9 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
I would mention it defaults to Present

Done.

DSCResources/MSFT_xVMHardDiskDrive/en-US/MSFT_xVMHardDiskDrive.strings.psd1, line 3 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
Missing .

Done.

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.psm1, line 11 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
please add a space between # and fallback

Done.

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.psm1, line 47 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
See my comment in the README section about NumberOfControllers

Done.

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.psm1, line 67 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
The output of Get should contain all keys as defined in the schema

What do you want the RestartIfNeeded defaulted to? $false?

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.psm1, line 70 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
no need for return

Replaced with Write-Output

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.psm1, line 96 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
NotNullOrEmpty validator isn't needed as it's the key (i've seen operational issues because of this validator in other resources.

Agreed. Done!

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.psm1, line 101 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
There should be a space between each element

Done.

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.psm1, line 127 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
no need for return

Same comment about implicit/explicit

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.psm1, line 186 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
I would prefer this is tested before the VM is shut down

Done.

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.psm1, line 196 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
no need for return

Done.

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.psm1, line 214 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
no need for return

Done.

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.schema.mof, line 6 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
I would specify the default is Present

Done.

Examples/Sample_xVMHardDiskDrive_VMWith4AdditionalDisks.ps1, line 29 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
Missing Hyper-V PowerShell

Done.

Examples/Sample_xVMHardDiskDrive_VMWith4AdditionalDisks.ps1, line 93 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
These lines (compile, start, etc) should be removed. Once we opt-in for example tests, these cannot be present

Done.

Examples/Sample_xVMHardDiskDrive_VMWithExtraDisk.ps1, line 30 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
Missing Hyper-V PowerShell

Done.

Examples/Sample_xVMHardDiskDrive_VMWithExtraDisk.ps1, line 68 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
The default of the resource is SCSI. No SCSI controller is present

Good catch! Add ControllerType.

Examples/Sample_xVMHardDiskDrive_VMWithExtraDisk.ps1, line 74 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
please remove these lines

Done.

Examples/Sample_xVMScsiController_AddControllers.ps1, line 29 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
Missing Hyper-V PowerShell

Done.

Examples/Sample_xVMScsiController_AddControllers.ps1, line 65 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
please remove these lines

Done.

Tests/Unit/HyperVCommon.tests.ps1, line 230 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
Awesome! Thanks for adding all of these :+1:

You're welcome :smiley:

Tests/Unit/MSFT_xVMHardDiskDrive.Tests.ps1, line 117 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
Found one :) Please remove the semicolon

Haha! Done.

Tests/Unit/MSFT_xVMHardDiskDrive.Tests.ps1, line 216 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
Shouldn't this be the exception message?

It's part of the ControllerNumber '{0}' or ControllerLocation '{1}' are not valid for IDE controller. message. Ideally we would check on the fully qualified error id, but has that been implemented in Pester yet?

Tests/Unit/MSFT_xVMHardDiskDrive.Tests.ps1, line 332 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
I would like to see a controller number / location not existing test as well.
I think that scenario isn't handled in the resource currently

An exception will be thrown by the Set|Add-VMHardDiskDrive cmdlet if the controller does not exist. Are you saying you want to check for missing controllers and throw a "friendly" error?

Tests/Unit/MSFT_xVMScsiController.Tests.ps1, line 104 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
semicolon

Done.

Tests/Unit/MSFT_xVMScsiController.Tests.ps1, line 195 at r2 (raw file):
Previously, bgelens (Ben Gelens) wrote…
Missing the should or assert mock called?

Er. Good point. Done.

Comments from Reviewable

@iainbrighton Unfortunately, I've resigned from the maintainer role.
@BrianFarnhill is listed as a maintainer so hopefully he can pick this up.

@iainbrighton Just a couple of really small things here, after that I'm happy to see this one go through.

Reviewed 5 of 18 files at r1, 1 of 2 files at r2, 12 of 12 files at r3.
Review status: all files reviewed at latest revision, 44 unresolved discussions.

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 72 at r2 (raw file):
Previously, iainbrighton (Iain Brighton) wrote…
OK - I've replaced it with Write-Output. I like to see something explicit showing we're returning something - rather than have to work out the hashtable is not assigned to a variable, and is instead returned to the pipeline.

I've had this disagreement before with other changes to this repo - but I think Write-Output is worse here. Happy to see "return" go back in here and we can run with that.

DSCResources/MSFT_xVMHardDiskDrive/MSFT_xVMHardDiskDrive.psm1, line 152 at r2 (raw file):
Previously, iainbrighton (Iain Brighton) wrote…
We talk about being explicit one moment and then revert to being implicit for return values?

Again happy for this one to stay as it is.

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.psm1, line 67 at r2 (raw file):
Previously, iainbrighton (Iain Brighton) wrote…
What do you want the RestartIfNeeded defaulted to? $false?

Yes please default it to false

DSCResources/MSFT_xVMScsiController/MSFT_xVMScsiController.psm1, line 70 at r2 (raw file):
Previously, iainbrighton (Iain Brighton) wrote…
Replaced with Write-Output

Again please swap this for a return

Tests/Unit/MSFT_xVMHardDiskDrive.Tests.ps1, line 216 at r2 (raw file):
Previously, iainbrighton (Iain Brighton) wrote…
It's part of the ControllerNumber '{0}' or ControllerLocation '{1}' are not valid for IDE controller. message. Ideally we would check on the fully qualified error id, but has that been implemented in Pester yet?

Happy that this is just testing the message in part right now.

Tests/Unit/MSFT_xVMHardDiskDrive.Tests.ps1, line 332 at r2 (raw file):
Previously, iainbrighton (Iain Brighton) wrote…
An exception will be thrown by the Set|Add-VMHardDiskDrive cmdlet if the controller does not exist. Are you saying you want to check for missing controllers and throw a "friendly" error?

The friendly error is a nice to have here, but if that's too much I'm happy for the default error to throw here.

Comments from Reviewable


Add activity feed api

#11  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @MikeBellika and the rest of your teammates on  Graphite


Fix: Add focus on Request body editor

Overview
Fix #1858
Testing Instructions

Open the above Graph Explorer in Edge browser.
Navigate to the Request body edit box using tab key.
Observe the fix.

Using FocusZone is an awesome idea :). I wasn't able to exit the editor with escape key/tab key. Is this the expected behavior?

Yeah. but I noticed it's the same case on fluent editors... so I'm not quite sure what's expected here.


Make it an extension (for mobile)

https://extensionworkshop.com/?utm_source=addons.mozilla.org&utm_medium=referral&utm_content=header-link
The extension will end up in the menu, first level (Firefox Android)
Make it so you can add to several i.e. several sanity.io endpoints (to have several search engines, each picking up their content to index)

Check out content scripts #3

This will be good to try to make when library is structured as a component.

Closing for now.


ActionView::Template::Error: Error: "var(--ts-pr-caret)" is not a number for `max'

After installing via "yarn add tom-select", I'm getting the following error locally and while attempting to push to Heroku.  In reviewing the scss files under node_modules, it appears variables in tom-select.scss file are not connecting.
ActionView::Template::Error: Error: "var(--ts-pr-caret)" is not a number for `max'
Line 102 in tom-select.scss file is:
padding-right:	Max( var(--ts-pr-min), calc( var(--ts-pr-clear-button) + var(--ts-pr-caret)) ) !important;
Above that on lines 80 through 84, are where the vars are defined.  I've been unsuccessful in finding a reason for this...

As I'm continuing to troubleshoot this, I removed tom-select and re-added it.  Now, I'm seeing a new error:
Error:  Can't find stylesheet to import. 171 @import 'items'.
I can verify _items.scss is in tom-select/src/scss/_items.scss

Pushing to Heroku results in
remote:        DEPRECATION WARNING: $weight: Passing a number without unit % (0.8) is deprecated.
remote:
remote:        To preserve current behavior: $weight * 1%
remote:
remote:        More info: https://sass-lang.com/d/function-units
remote:
remote:           ╷
remote:        31 │ $select-color-dropdown-border-top: mix($input-border-color, $input-bg, 0.8) !default;
remote:           │                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
remote:           ╵
remote:            tom-select/dist/scss/tom-select.bootstrap5.scss 31:36  @import
remote:            app/assets/stylesheets/application.bootstrap.scss 9:9  root stylesheet
remote:
remote:        Done in 2.28s.
remote:        rake aborted!
remote:        SassC::SyntaxError: Error: "var(--ts-pr-min)" is not a number for `max'
remote:                on line 10852:18 of stdin, in function `max`
remote:                from line 10852:18 of stdin
remote:        >>   padding-right: max(var(--ts-pr-min), var(--ts-pr-clear-button) + var(--ts-
remote:           -----------------^
remote:        stdin:10852

Error occurs also when using older versions of bootstrap ( for examle 5.2.3 ), to avoid the error in production, you need to upgrade to the latest version
works fine with<EMAIL_ADDRESS>

@martinbarilik I'm using<EMAIL_ADDRESS>and attempting to use<EMAIL_ADDRESS>but still getting this error. How is this working for you?

I was forced to upgrade to<EMAIL_ADDRESS>in order to work it together.

I still get this error with Heroku and tom-select 2.3.1 and bootstrap 5.3.2:
         app/assets/builds/application.js      1.6mb ⚠
         app/assets/builds/application.js.map  2.9mb

       ⚡ Done in 310ms
       rake aborted!
       SassC::SyntaxError: Error: "var(--ts-pr-caret)" is not a number for `max' (SassC::SyntaxError)
               on line 24718:10 of stdin, in function `max`
               from line 24718:10 of stdin
       >>   right: max(var(--ts-pr-caret), 0.75rem);

          ---------^
       stdin:24718
       /tmp/build_d22bb9db/vendor/bundle/ruby/3.2.0/gems/sassc-2.4.0/lib/sassc/engine.rb:50:in `render'

weird, it should not be the case. Have you tried to upgrade sassc module ?

I'm using sassc-rails 2.1.2

Got it to finally work by switching to gem "dartsass-sprockets", "3.0.0"

Happy you got it by yourself. That is exactly what had to be done ;)


Warn on inconsistent Makefile.dapper

If the local Makefile.dapper doesn't match the version stored in the
Shipyard base image, display a warning.
Signed-off-by: Stephen Kitt<EMAIL_ADDRESS>

I’m open to ideas of how to do this differently; for example, we could update the local Makefile.dapper automatically (from the base image). Do people ever need to test local changes to Makefile.dapper?


editorError.border doesn't apply a border

When I set this:
  "workbench.colorCustomizations": {
    "editorError.border": "#ff0000",
  }

I see this:

I was expecting:

Version: 1.78.0-insider (user setup)
Commit: f31dffc7f9b93a1cdef21243ec30dea7d489a615
Date: 2023-03-31T01:47:17.818Z
Electron: 19.1.11
Chromium: 102.0.5005.196
Node.js: 16.14.2
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.22621
Sandboxed: Yes

Looks like we didn't think much when choosing his name.

Should we iust change the description and leave the key name as is then?

It looks like the implemented fix just changes the description and still leaves VSCode with no way of drawing a nice, noticeable box around the errant code.
This doesn't seem like a fix to me — just labelling it "it's not a bug, it's a feature". Ideally, the key name for this feature should be changed to editorError.secondUnderline (or similar) and editorError.border should actually produce a border around the whole code.
This seems to be what the OP wanted, and it's certainly what I want — I'm trying to migrate from RubyMine, and RubyMine can do this, and it's extremely helpful, as the underlines are too easy to miss, especially when the Stylelint plugin seems to only want to highlight the first character of a line and not the whole line.
Please could we have a way of actually drawing a border around the whole of the code?

@unikitty37 I would have liked a border, but that would be a new feature (not sure if there's an issue discussing this). The change just corrects the description to what it actually does, without changing the key which would break themes that already use it.

If we actually added a border, I would guess we would just use the .border key there and add a new double underline one. Kind of a soft breaking change as opposed to a theme color just not getting used all together.


Updating Match_recognize doc

Updating match_recognize doc with current feature state before GA.

@rodrigoaatmicrosoft : Thanks for your contribution! The author(s) have been notified to review your proposed change.


feat: Support to set ignored URLProtocol classes

I have an idea to prevent the duplicate records issue when using with URLProtocol. The issue has been mentioned in: https://github.com/ProxymanApp/atlantis/issues/154

Thanks for the PR, but may I ask whether or not you test it?
I tested and the bug hasn't fixed yet.
CleanShot.2024-11-07.at.13.20.13.mp4
Set a breakpoint, I confirmed that it jumps to the return nil. However, 2 requests are still appeared.
            if checkShouldIgnore(on: request) {
                return nil
            }

Oh, I see. If with my above code, it won't work. But if you modify the request in method startLoading, it will work
override class func canonicalRequest(for request: URLRequest) -> URLRequest {
        return request
    }

  override func startLoading() {
      var request = request
      request.addValue("Test value", forHTTPHeaderField: "Custom-Header")
      URLSession.shared.dataTask(with: request) { data, response, error in
          if let error {
              self.client?.urlProtocol(self, didFailWithError: error)
          } else if let response {
              self.client?.urlProtocol(self, didReceive: response, cacheStoragePolicy: .notAllowed)
              if let data {
                  self.client?.urlProtocol(self, didLoad: data)
              }
          }
          self.client?.urlProtocolDidFinishLoading(self)
      }.resume()
  }

I will recheck my solution. Feel free to discuss with me :D

https://github.com/user-attachments/assets/f7d106dc-2b2b-4b30-a863-5a89baec379f

Hi @NghiaTranUIT , any news?


Appstudio update test-custom-default-branch-vxok

Pipelines as Code configuration proposal
To start the PipelineRun, add a new comment with content /ok-to-test
For more detailed information about running a PipelineRun, please refer to Pipelines as Code documentation Running the PipelineRun
To customize the proposed PipelineRuns after merge, please refer to Build Pipeline customization

Pipelines as Code CI has failed.There was an error creating the PipelineRun: test-simple-build-lqle-on-pull-request-
creating pipelinerun test-simple-build-lqle-on-pull-request- in namespace build-e2e-bpbv-tenant has failed.
Tekton Controller has reported this error: the namespace of the provided object does not match the namespace sent on the request

Pipelines as Code CI has failed.There was an error creating the PipelineRun: test-simple-build-mcmm-on-pull-request-
creating pipelinerun test-simple-build-mcmm-on-pull-request- in namespace build-e2e-bpbv-tenant has failed.
Tekton Controller has reported this error: the namespace of the provided object does not match the namespace sent on the request

Pipelines as Code CI has failed.There was an error creating the PipelineRun: test-simple-build-nyrh-on-pull-request-
creating pipelinerun test-simple-build-nyrh-on-pull-request- in namespace build-e2e-bpbv-tenant has failed.
Tekton Controller has reported this error: the namespace of the provided object does not match the namespace sent on the request

Pipelines as Code CI has failed.There was an error creating the PipelineRun: test-simple-build-nwtb-on-pull-request-
creating pipelinerun test-simple-build-nwtb-on-pull-request- in namespace build-e2e-bpbv-tenant has failed.
Tekton Controller has reported this error: the namespace of the provided object does not match the namespace sent on the request

Pipelines as Code CI has failed.There was an error creating the PipelineRun: test-annotations-mijr-on-pull-request-
creating pipelinerun test-annotations-mijr-on-pull-request- in namespace build-e2e-bpbv-tenant has failed.
Tekton Controller has reported this error: the namespace of the provided object does not match the namespace sent on the request

Pipelines as Code CI has failed.There was an error creating the PipelineRun: test-simple-build-imul-on-pull-request-
creating pipelinerun test-simple-build-imul-on-pull-request- in namespace build-e2e-bpbv-tenant has failed.
Tekton Controller has reported this error: the namespace of the provided object does not match the namespace sent on the request

Pipelines as Code CI has failed.There was an error creating the PipelineRun: test-simple-build-wadk-on-pull-request-
creating pipelinerun test-simple-build-wadk-on-pull-request- in namespace build-e2e-bpbv-tenant has failed.
Tekton Controller has reported this error: the namespace of the provided object does not match the namespace sent on the request


APPS-974 Fix backup size computation

We can use the same logic to get file size for s3 objects, what do you think?
I think, for users it would be more convenient to have it everywhere


Cmd + ` does not switch VSCode windows on Mac using french keyboard layout

VSCode Version: 1.3.1
OS Version: OS X El Capitan 10.11.6

Steps to Reproduce:

open multiple windows of VSCode
press Cmd + `

It does not switch application windows. In every other app it does.

I just tested with VSCode 1.3.1 and OS X 10.11.6 and it is working for me. Sounds like there may be a system related setting causing this.

I have the same issue with the same setup (VSCode 1.3.1, OS X 10.11.6). I don't know if this makes any difference, but I have a French keyboard, which has the ` key just to the left of the Enter key (circled in red below):

When I press Cmd + `, VSCode actually types the ` character in the editor, which isn't "correct" (that is, only the ` key by itself should type the ` character).
Other apps, like TextWrangler and Sublime Text 3 and Apple's TextEdit and Safari correctly switches windows when Cmd + ` is pressed.

I use czech keyboard layout.

Electron issue.

@janmarek @chaskim  we just released a new insiders build with a newer Electron. maybe you could give that build a try to see if it fixes this issue.
You can give our preview releases a try from: http://code.visualstudio.com/Download#insiders

Still typing ` using French layout.
However, under French layout this is behavior for Chrome:

Only happens when you are in a input.

@bpasero
Sorry, I've been away for a while and only just saw the note on the new insiders build with the newer Electron. Yes, just to confirm, I just installed VS Code 1.6.0 and Cmd + ` still doesn't work with my MacBook's french keyboard.
I don't know if this will help, but with the cursor in a .ts, .js or .json file, Cmd + ` types a double grave accent and places the cursor in between the two as if I had typed a double quote or curly bracket:

In a .html or .cs file, Cmd + ` types a single grave accent.
Actually nothing should be typed into an editor window with Cmd + ` since the Cmd key is being used.

@janmarek do you still get this with our current 1.12 release?

Hi. Still getting the same issue here. With the cursor in an editor, cmd + ` still types the ` character rather than switches windows. But this may help: if the focus is in the sidebar, say on a folder or file, cmd + ` correctly switches windows.
El Capitan 10.11.6, VS Code 1.12.1, French keyboard.

With current insiders release we added a new command to switch windows. For example:
{ "key": "ctrl+r", "command": "workbench.action.quickSwitchWindows" },
{ "key": "ctrl+r", "command": "workbench.action.quickOpenNavigateNext", "when": "inQuickOpen" }

You can keep Ctrl pressed when hitting R to cycle through windows and pick the one you want when releasing Ctrl.

Closing as per https://github.com/Microsoft/vscode/issues/10021#issuecomment-307637284


Add Credit Karma as a company who uses Secor

We have been using Secor here at Credit Karma and wanted to add our name to the list of companies.

Welcome, Credit Karma!


Don't check Forge URLs if the game isn't hosted there

Why is this assuming I am on Forge?
forge-vtt.com/api/bazaar/manifest/chat-indicators:1 Failed to load resource: net::ERR_BLOCKED_BY_CLIENT

Simple check on window.location.href will tell you checking Forge links is pointless, and they don't support cross-site requests with their API to use it for anything else.

The reason I'm using the Forge is because it's the only source I can use for getting up to date manifests for modules, which I need to see if a module has an 0.8.x update ready. Foundry itself doesn't provide access to those files with an API, and there's too much variability in how manifest URLs are defined in manifests that I can't reliably use them either.
Strange that it's not working for you, though. I tested it on both a Windows and a Linux machine, and it's worked fine for both. Could you answer a few questions to help me figure out what's going on?

What version of Foundy is this happening on, and what type of computer/server is it installed on?
Is chat accessibility indicators the only module with the issue, or are all of them doing the same thing?
In the compatibility checker window, are the icons stuck in the loading animation, or are they showing something else?

 I thought I had disabled it for Foundry but no, that seems to have been the cause for the errors. Sorry for troubling you.
Here's the requested info anyway:

Foundry 0.7.10, Win10, running via Node 14.17.0. Client via Chrome on same computer.
About 90% of modules have the issue.
When I reported the issue, almost all of them were stuck with the spinning icon, now only one has that (the game system), the rest have error auto-checking manifest.
62

it's the only source I can use for getting up to date manifests for modules

Tho on this, you can't fetch the manifest from the module's manifest URL? It should be the latest.

No worries, glad to hear you got it fixed! And yep, exactly- certain links would work fine, but most were complaining about not have Access-Control-Allow-Origin headers.


use php as default configuration file format

Wasn't sure if this should be on 0.13 or 0.12 as on the one hand it's a BC break, on the other hand, the current default (yml) does not work out of the box on 0.12 due to the making optional of symfony/yaml.
In 0.12, the symfony/yaml extension was made optional, which means it may no longer be available in a user's environment. As such, phinx should not default to using it for init as it may generate a file the user cannot actually use. Instead, we use php as the default as it's guaranteed to always work and be an available parser (as ext_json is equally optional).
Closes #1726

If the defaults stay the same, this sounds BC enough for 0.12

The default for phinx init is changing from yml to php, so the defaults are changing, it's just that the defaults right now is broken out of the box, so this could be considered just a bugfix, even though it's changing behavior.

As this is documented this should be fine as bugfix then.


Added throttling to segment database insertion

cc @jackyko1991

Codecov Report
Attention: Patch coverage is 46.15385% with 7 lines in your changes are missing coverage. Please review.

:exclamation: No coverage uploaded for pull request base (main@392d75a). Click here to learn what that means.

Files
Patch %
Lines

ultrack/core/segmentation/processing.py
41.66%
7 Missing :warning:

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #87   +/-   ##
=======================================
  Coverage        ?   85.44%
=======================================
  Files           ?       71
  Lines           ?     3902
  Branches        ?        0
=======================================
  Hits            ?     3334
  Misses          ?      568
  Partials        ?        0

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

Thank you for the work.
Has this commit aligned with conda installation? Or installation from source is needed?

I haven’t uploaded to pip yet, I’ll do that next week, so you should install from source until then.It will be ultrack 0.4.0 because there was other major additions.On Feb 23, 2024, at 21:03, Ka Long @.***> wrote:
Thank you for the work.
Has this commit aligned with conda installation? Or installation from source is needed?
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you modified the open/close state.Message ID: @.***>


Building fluxengine on MacOS

Building the fluxengine client on MacOS with (ninja) make I get the following error:
... lib/usb.cc:7:10: fatal error: 'libusb.h' file not found
#include <libusb.h>
    	 ^~~~~~~~~~
1 error generated.

After changing lib/usb.cc
//#include <libusb.h>
#include <libusb-1.0/libusb.h>

I get a new (unrelated) warning:
src/fe-fluxtoscp.cc:88:5: warning: array index 3 is past the end of the array (which contains 3 elements) [-Warray-bounds]
fileheader.file_id[3] = 0x18; /* Version 1.8 of the spec */
^                  ~
src/scp.h:6:5: note: array 'file_id' declared here char file_id[3]; // file ID - 'SCP'
^
1 warning generated.

After changing src/fe-fluxtoscp.cc
//fileheader.file_id[3] = 0x18; /* Version 1.8 of the spec */
fileheader.version = 0x18; /* Version 1.8 of the spec */

I get
g++ -Os  -o .obj/bitaccumulator-test-debug .obj/libbitaccumulator-test.a .obj/libbackend.a .obj/libfmt.a
Undefined symbols for architecture x86_64:
  "_compress", referenced from:
      Bytes::compress() const in libbackend.a(bytes.o)
  "_compressBound", referenced from:
      Bytes::compress() const in libbackend.a(bytes.o)
  "_inflate", referenced from:
      Bytes::decompress() const in libbackend.a(bytes.o)
  "_inflateEnd", referenced from:
      Bytes::decompress() const in libbackend.a(bytes.o)
  "_inflateInit_", referenced from:
      Bytes::decompress() const in libbackend.a(bytes.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Any ideas how to fix this?

Re the scp file_id warning: wow. I can't believe I did that. Fixing. (It should actually generate the right data even with the out-of-bounds access, but it still needs to be fixed.)
Re the package errors: the client is known to build on OSX and I can prove it by pointing you at the CI logs: https://travis-ci.org/davidgiven/fluxengine/jobs/624316680
I suspect that you don't have libusb and zlib installed via pkg-config, which means that the right flags haven't been added, hence the need to modify the makefiles manually. Unfortunately OSX has like a million different ways of getting packages so all I can do is to run pkg-config and hope they show up there. The CI system used Homebrew, but anything else which supports pkg-config should work. What is your setup?
Strictly it should be an error if the Makefile spots that the packages aren't there, to prevent confusing build failures like you're seeing.

Thanks for the quick reply. I use Homebrew. After brew install libusb and brew install zlib the (new) error is:
FAILED: .obj/compression-test-debug
g++ -Os  -o .obj/compression-test-debug .obj/libcompression-test.a .obj/libbackend.a .obj/libfmt.a
Undefined symbols for architecture x86_64:
  "_compress", referenced from:
      Bytes::compress() const in libbackend.a(bytes.o)
  "_compressBound", referenced from:
      Bytes::compress() const in libbackend.a(bytes.o)
  "_inflate", referenced from:
  Bytes::decompress() const in libbackend.a(bytes.o)
  "_inflateEnd", referenced from:
      Bytes::decompress() const in libbackend.a(bytes.o)
  "_inflateInit_", referenced from:
      Bytes::decompress() const in libbackend.a(bytes.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Can you update from head of git and try again? There should be some more diagnostics if the packages can't be found. Also, please do pkg-config --list-all and let me know the results?
What setup do you have?

mac:fluxengine tamberg$ pkg-config --list-all
-bash: pkg-config: command not found

Ok, after calling brew install pkg-config everything works fine. Thanks a lot.

Good to know. I'll update the documentation.

Just to confirm: Updated to newest HEAD. Everything builds fine now.


[23.11] nixos/fwupd: mark enableTestRemote as internal

Description of changes
This should have always been internal only. It appears that due to some confusion, some users think that this enables the lvfs-testing remote and is of any use to people who don't actively work on fwupd.
I'd like to at least minimise how many more people add this to their configs before 24.05 where this option is completely gone.
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

I wonder if we should've been backporting fwupd releases to the stable branch actually. We haven't done that at all in the past I think.
But we can merge this PR already and if we decide to backport, we'll just solve the conflict then.

It would probably be handy from a hardware support perspective, but I have no strong opinions either way. Pretty sure most other distros freeze what they ship with, and since major manufacturer support is pretty much there for most, there isn't as much of a downside to end users anymore.


:four_leaf_clover: Proposal: Some Commands Do Not Need the "-f" Parameter

What would you like to add? Why is this needed?
At the moment, we have a global parameter "-f" which is required for commands that need access to the config file.
But not all commands need it, for example:

dtm show
dtm list
dtm develop
etc.

But when we run:
tiexin@mbp ~/work/stream $ ./dtm show --help
Show is used to print some useful information.
Examples:
  dtm show config --plugin=A-PLUGIN-NAME
  dtm show status --plugin=A-PLUGIN-NAME --name=A-PLUGIN-INSTANCE-NAME
  dtm show status -p=A-PLUGIN-NAME -n=A-PLUGIN-INSTANCE-NAME

Usage:
  dtm show [config | status] [flags]

Flags:
  -h, --help            help for show
  -n, --name string     specify name with the plugin instance
  -p, --plugin string   specify name with the plugin

Global Flags:
  -f, --config-file string   config file (default "config.yaml")
      --debug                debug level log
  -d, --plugin-dir string    plugins directory (default ".devstream")
  -y, --yes                  apply/delete directly without confirmation

The "-f" flag still shows up in the help for dtm show subcommand, even though dtm show won't need it.
We can change the "-f" flag to a non-global one so that it only shows up in necessary helps of certain subcommands.

I can do this

I would also like to give it a shot

I can do this

@yclchuxue It‘s a good first issue, let’s leave it to new contributor 😄

shot

I would also like to give it a shot

Hi @shubham-cmyk, let’s leave this good first issue to the new contributor😁

@daniel-hutao but I have already solved it can you verify that #576
I have removed the flag -f from the global and made specifically to the apply.go

#576
@shubham-cmyk Please don't open a pr before claiming the relevant issue.

Note that "show status" might need the "-f" param. Please test it thoroughly before submitting. Thanks!

I'll try this question.

/assign @himku Happy coding!
Please test it thoroughly before submitting it. Thanks!


[Docs] Add Kurtosis eth2-package to Nethermind Private Network docs

This pull request adds a short guide to the Nethermind private networks docs on how to spin up a PoS Ethereum devnet with Kurtosis' eth2-package for folks who need a Nethermind full local node for testing on a representative network. The eth2-package supports Nethermind and all CL clients, alongside a few optional features like mev-boost infra and grafana+prometheus out of the box.
The eth2-package has already been used by Nethermind devs for testing and validating changes ahead of Dencun so adding this to the docs will help others who may need this sort of solution. Tagging @MarekM25 for awareness!
Addresses: https://github.com/NethermindEth/nethermind/issues/6047

Thx for your contribution!


[Autocomplete] For Custom Render option, preventEventDefault Does not work

For Custom Render option, prevent Event Does not work

[ x] The issue is present in the latest release.
[ x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
For the Custom Render option, preventEventDefault Does not work

Expected Behavior 🤔
For the Custom Render option when preventEventDefault is used it should not select the option.

Steps to Reproduce 🕹
Use a custom render option.
add an icon or button the option
on click of that option performs an action.
The select option should not be triggered.

Steps:

Context 🔦

Your Environment 🌎

Tech
Version

Material-UI
v5.?.?

React

Browser

TypeScript

etc.

Please provide a minimal reproduction test case. This would help a lot 👷 .
A live example would be perfect. This codesandbox.io template may be a good starting point. Thank you!


SpiDevice trait on the esp32c3

Right now this is very untested. This does compile and run but currently has not been tested while running interrupts.
And it seems that I need to find a way to clear the previous CS pin before setting the new one (I can see on the oscilloscope that both CS pins are being driven at the same time), there are a few traits that are still unimplemented and this only has support for the esp32c3 right now.

Thank you for your time on this, however this has been superseded by #106 and as such I am closing this PR.


conflicting cachetools versions

this project depends upon:

google-api-core
but that requires :
google-auth<2.0dev,>=0.4.0

however, google-endpoints requires newer cachetools
so with requirements.txt like this:

google-endpoints==4.8.0
firebase-admin

I'm getting this error:
google-auth 1.6.3 has requirement cachetools>=2.0.0, but you'll have cachetools 1.1.6 which is incompatible.
Collecting protobuf>=3.4.0 (from google-api-core[grpc]<2.0.0dev,>=1.7.0; platform_python_implementation != "PyPy"->firebase-admin->-r requirements.txt (line 16))
Using cached https://files.pythonhosted.org/packages/5e/4b/641b4540ff7ae065c1598c73aacf9cba5d59720e14d39a9d260d50896317/protobuf-3.7.0-cp27-cp27m-macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Collecting google-auth<2.0dev,>=0.4.0 (from google-api-core[grpc]<2.0.0dev,>=1.7.0; platform_python_implementation != "PyPy"->firebase-admin->-r requirements.txt (line 16))

Please report at google-endpoints or at google-endpoints-api-management so they can upgrade their dependencies:
https://github.com/cloudendpoints/endpoints-management-python/blob/master/setup.py
Collecting cachetools<2,>=1.0.0 (from google-endpoints-api-management>=1.10.0->google-endpoints==4.8.0->-r requirements.txt (line 1))
  Downloading https://files.pythonhosted.org/packages/2a/d8/a3a54933668a0cda92d67c07747be1292555c8ccc28d61e8edf519ea920f/cachetools-1.1.6-py2.py3-none-any.whl

google-auth depends on v2 of cachetools. It's google-endpoints that is behind.
In either case, this cannot be fixed in this repo. Neither google-endpoints nor cachetools are our direct dependencies.


No form encoding support in 0.4

It looks like the only codec that RequestDataComponent supports in 0.4 is JSONCodec. Are you planning to add support for form posts to RequestData later or are apps expected to roll their own FormData (or similar) component?

Are you planning to add support for form posts to RequestData

Yup.

That’s a good easy one that ought to sit towards the top of our TODO pile.

I think we’d start with hardcoded json+form parsing, and treat configurable parsers/renderers as a later enhancement.

Sounds good to me!

Closed via #430.


Error creating Maven Project in chapter 2.1.3

On linux, with Maven 3.6.4, i can't create the project files with the command provided
mvn archetype:generate \
➥    -DgroupId=com.manning.apisecurityinaction \
➥    -DartifactId=natter-api \
➥    -DarchetypeArtifactId=maven-archetype-quickstart \
➥    -DarchetypeVersion=1.4 -DinteractiveMode=false

produces following output
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/usr/share/maven/lib/guice.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.066 s
[INFO] Finished at: 2021-05-14T18:55:15+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] The goal you specified requires a project to execute but there is no POM in this directory (/home/vincent/dev/natter). Please verify you invoked Maven from the correct directory. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MissingProjectException

It complains that there is no pow, however current step's goal is to create a pom...
Thank you.

Hi, very sorry that I've not seen this before. Not sure why I didn't get a notification when you created this issue.
The Maven command works fine for me with the different versions and OSes I have, unless I leave in the ➥ characters. These are part of the typesetting of the book (and livebook) done by the publisher to indicate that the example continues on a new line. You have to remove those.
(That said, this specific example shouldn't need those continuation markers as there is a real newline in those places, so I'll raise an errata to remove them).


Koofr backend

What is the purpose of this change?
Implements a Koofr backend for rclone.
Was the change discussed in an issue or in the forum before?
Checklist

[X] I have read the contribution guidelines.
[X] I have added tests for all changes in this PR if appropriate.
[X] I have added documentation for the changes if appropriate.

[X] I'm done, this Pull Request is ready for review :-)

Here is the forum post: https://forum.rclone.org/t/new-koofr-backend-testers-needed/9033

thanks.
never mind the linter. some discipline when it comes to commenting code can only do me good. ;)


Add dependency to automake to README

Add a dependency to automake to README file.

Don't need a bug report for this.


[NEW ALGORITHM] Reservoir Sampling Algorithm

Name:
Reservoir Sampling Algorithm
About:
Propose a new algorithm to be added to the repository
Reservoir sampling is an algorithm for randomly selecting a subset of k elements from a stream or large dataset of unknown size n. It ensures that every element has an equal probability of being chosen, even if the dataset is enormous or continuously arriving (like a data stream).

Labels:
new algorithm, gssoc-ext, hacktoberfest, level1

Assignees:

[x] Contributor in GSSoC-ext
[x] Want to work on it

Do not create new issues until your previous one complete, wait until you’re assigned.


Add CI job to generate default Forc manifest and compare against a saved version

Problems
Currently there are two problems:

Examples that are built use a local path for the standard library in order to guarantee they don't break. This mean there are no examples that use the default Forc manifest that uses this repo's master branch for the standard library.
Such an example is needed for the docs and potentially in other places. https://github.com/FuelLabs/sway/blob/a40472f2a67aa4907c29af0d079ab360c8892b4b/docs/src/introduction/forc_project.md?plain=1#L25

Tasks

[ ] Manually generate the default Forc.toml and save it to a directory. examples/ might not be a good directory for this since all examples are built as part of CI currently and modifying that job would be more work.
[ ] Add a CI job that generates the default Forc.toml and compares it against the saved Forc.toml. If they differ, fail.
[ ] Use this saved Forc.toml in the book as linked above.

Yeah this sounds reasonable! If we do want to include this under examples/ it shouldn't be too tricky to filter the example out of the build_all_examples Rust script.


Submission Portal/ DH: samp_name should be required to be unique

Issue:
samp_name (1st column, sample name) validates when the values are not unique. Like the source_mat_id (globally unique id) these should be required to be unique within a submission.
Completion:
Validation rule for samp_name is changed to require it be unique

[ ] Provide Mark with some valid and in-valid examples - Montana
[ ] Implement validation rule changes into the submission portal - Mark
[ ] Present updates to the team - Montana

@turbomam
Is this a schema, sheets and friends, or server issue?

@ssarrafan  & @turbomam can we put this in for sprint 2? Jan 3-13? as part of the submission portal squad deliverable "Align validation with expected values"

I agree that samp_name should be unique, but don't have a direct answer to your schema/sheets and friends/server issue yet. We are currently enforcing uniqueness by applying a identifier: true assertion on slot source_mat_id. Unfortunately only one slot in a class can be the identifier.
@cmungall has encouraged me to use unique_keys to express multi-field uniqueness constraints but I have dragged my feet until now.
I'm not convinced that unique_keys will solve this problem from a pure LinkML perspective, and I'm even less confident that DataHarmonizer would pick up on the unique keys.
This is already illegal:

source_mat_id
samp_name

1
a

1
b

If we set source_mat_id and samp_name to be unique_keys, I think that will actually become legal, because there's two different composite keys. What we really want to require is both slots are required to be individually unique:

source_mat_id
samp_name

1
a

2
b

I will have to investigate some more.
Q from @sujaypatil96: could we make the parent slot from a slot group the identifier or the unique key?

@ssarrafan & @turbomam can we put this in for sprint 2? Jan 3-13? as part of the submission portal squad deliverable "Align validation with expected values"

Sure. I will put it under to do.

@ssarrafan  Assign to me for now. I've added a couple sub tasks to get this complete. Then Mark for actual implementation.

Difficult to accomplish. LinkML only allows for 1 identifier column, and that's the source_mat_id column and also must be unique.
LinkML has unique keys to use, but they aren't checked.
Longer lived issue, backlog.

Removing from sprint, adding backlog label
@mslarae13

samp_name is now considered a unique key. @pkalita-lbl has updated DataHarmonizer to apply the uniqueness constraint, but that has not appeared in a DH release yet.

The GUID (source_mat?) column should no longer be required. It's optional.. add a GUID IF you have a registered GUID. If you do not.. you'll get an NMDC minted ID.
So, we should be able to make sample_name the unique field
@pkalita-lbl  will this interrupt the multiple tabs? That relies on GUID right now, right?

will this interrupt the multiple tabs? That relies on GUID right now, right?

Yes, correct. We'll need to take that into account if we make that change.

When does the NMDC identifier get minted for biosamples?

source_mat_id should be optional
rename globally unique ID back to source material id
multi-tab code point to samp_name

nmdc biosample identifiers minting task is separate.. captured in an issue?
submission portal to mongo connection.

Schema changes are in. Once we release a new version of submission-schema we'll need to bring it into nmdc-server and make the required code changes over there.

Moving to next sprint per @pkalita-lbl

@pkalita-lbl  should this be moved to in review? Or do we need another issue for the next step?

This is still paused waiting for a new submission-schema release.

These changes are now available on data-dev.microbiomedata.org