text:
Disable tekst i input felt

Hei, har kjørt en del brukertester de siste dagene, og bruker blant annet et disabled input-felt. Det står alene, og det er ingen andre input-felter i nærheten.
Det ser veldig klikkbart ut, så folk tror de kan trykke der, selv om det er disabled.

Nina Bakken (Designer Helse område)

God diskusjon på #designsystem på slack. Noen ressurser og argumenter som ble nevnt der:
/Jeg har tidligere bestemt meg for å ikke bruke deaktiverte elementer; jeg har sett altfor mange som ikke skjønner at et element kan deaktiveres, og som bare klikker og klikker uten hell. Videre er ofte kontrastnivået lavere på sånne elementer. Jeg mener det er bedre å vise interaksjonselementet som vanlig, og ved klikk gi en feilmelding om akkurat det som mangler, for å (a) unngå sånn forvirring, og (b) kunne vise til akkurat det svaret som er savnet.
/Når det skaper forvirring og ser klikkbart ut, ville jeg nok gått for at det dukket opp ved valg av radioknappen. @christine.joy.atherton har forøvrig skrevet veldig godt om disablede elementer: https://uxdesign.cc/why-you-shouldnt-include-disabled-interaction-elements-in-your-design-system-76a2d4307faf
/Enig i at deaktiverte elementer er meget uheldige. Vanskelig å skjønne at de er deaktiverte, og det kan bli en veldig frustrerende opplevelse for mange. Spesielt for folk som er stresset eller har andre kognitive utfordringer.
Varierende skjermleserstøtte for dem også: https://tink.uk/screen-reader-support-for-disabled-read-only-form-fields/
Som grunnregel burde vi ikke bruke deaktiverte elementer i det hele tatt, heller vise en feilmelding hvis brukeren prøver å bruke noen hun ikke har lov til (eller skjule elementet hvis det ikke er relevant at det er der).

Her bør vi også oppdatere tekst/veiledning på design.nav.no for at man helst skal unngå å bruke "disabled" input felt, slik som beskrevet for knapper her:
https://design.nav.no/components/knapp

Fullført med navikt/nav-frontend-moduler#753

authors: KenAJoh karinaldw randisolli sergiohaisch

repo: navikt/Designsystemet


text:
Bygg av 20200326095549-4a2489e

Kommenter med /promote  cluster, hvor cluster er et gyldig clusternavn

Cluster
dev-sbs
prod-sbs

/promote dev-sbs

/promote prod-sbs

source: gharchive/issue

authors: AndreasDybdahl janolaveide

repo: navikt/foreldrepengesoknad

license: MIT

license_type: permissive

license_source: github-api


text:
Deploy av branch new-soknad med tag 20220316133834-eddf246

eddf246fba04aa4fe6f90a422576cb2a616ce590

/promote dev-gcp


text:
EY-3155 Sender ved flagg om etterbetaling ved samordning

Oppretter denne i draft da selve SAM-endepunktet ikke er endret ennå, så ikke garantert at navngivningen er riktig ennå.
Testet lokalt i Gjenny med lokal vedtaksvurdering -> behandling i GCP, med spørring både med og uten etterbetaling (hooket inn på hent vedtakssammendrag)

https://github.com/navikt/sam/commit/d6926425e10a8755efd32f4e04839791dc49cedf#diff-7cc53edc68fa64e3282449bb187cd915fcf57c66bfe16f1e34876aac177d0cf2

source: gharchive/pull-request


text:
🛑 ESTAT is down

In f4810f7, ESTAT (https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/dataflow/ESTAT/all/latest) was down:

HTTP code: 0
Response time: 0 ms

Resolved: ESTAT is back up in 571f0e6.

repo: nbbrd/sdmx-upptime


text:
🛑 ISTAT is down

In d6d9a43, ISTAT (https://esploradati.istat.it/SDMXWS/rest/dataflow/all/all/latest) was down:

HTTP code: 0
Response time: 0 ms

Resolved: ISTAT is back up in 10587c0 after 23 minutes.


text:
🛑 IMF is down

In 2605c4f, IMF (http://dataservices.imf.org/REST/SDMX_XML.svc/Dataflow) was down:

HTTP code: 0
Response time: 0 ms

Resolved: IMF is back up in c87c9b2 after 27 minutes.


text:
🛑 SIMEL is down

In 852bbb8, SIMEL (https://disseminatesimel.mtps.gob.sv/rest/dataflow/all/all/latest) was down:

HTTP code: 0
Response time: 0 ms

Resolved: SIMEL is back up in 1fe6f1e after 4 hours, 47 minutes.


text:
🛑 ESTAT is down

In 46c34ac, ESTAT (http://ec.europa.eu/eurostat/SDMX/diss-web/rest/dataflow/ESTAT/all/latest/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: ESTAT is back up in eec74a0.


text:
🛑 ESTAT is down

In c3aa929, ESTAT (https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/dataflow/ESTAT/all/latest) was down:

HTTP code: 0
Response time: 0 ms

Resolved: ESTAT is back up in 3675ac9 after 5 minutes.


text:
🛑 ESTAT is down

In df3c650, ESTAT (https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/dataflow/ESTAT/all/latest) was down:

HTTP code: 0
Response time: 0 ms

Resolved: ESTAT is back up in 380e016 after 6 minutes.


text:
🛑 ISTAT is down

In 2f63ee0, ISTAT (https://esploradati.istat.it/SDMXWS/rest/dataflow/all/all/latest) was down:

HTTP code: 0
Response time: 0 ms

Resolved: ISTAT is back up in 92b783b after 5 minutes.


text:
🛑 ISTAT is down

In 704ab85, ISTAT (https://esploradati.istat.it/SDMXWS/rest/dataflow/all/all/latest) was down:

HTTP code: 0
Response time: 0 ms

Resolved: ISTAT is back up in 6bd99f4 after 13 minutes.


text:
🛑 ESTAT is down

In 2899802, ESTAT (https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/dataflow/ESTAT/all/latest) was down:

HTTP code: 0
Response time: 0 ms

Resolved: ESTAT is back up in bcffc41 after 30 minutes.


text:
🛑 ESTAT is down

In 10de163, ESTAT (https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/dataflow/ESTAT/all/latest) was down:

HTTP code: 0
Response time: 0 ms

Resolved: ESTAT is back up in 7c88812 after 6 minutes.


text:
🛑 NBB is down

In cc6c006, NBB (https://stat.nbb.be/restsdmx/sdmx.ashx/GetDataStructure/ALL) was down:

HTTP code: 429
Response time: 925 ms

Resolved: NBB is back up in cad4049.


text:
🛑 NBB is down

In b401655, NBB (https://stat.nbb.be/restsdmx/sdmx.ashx/GetDataStructure/ALL) was down:

HTTP code: 429
Response time: 576 ms

Resolved: NBB is back up in ca78664 after 10 minutes.


text:
🛑 ESTAT is down

In fc36986, ESTAT (https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/dataflow/ESTAT/all/latest) was down:

HTTP code: 0
Response time: 0 ms

Resolved: ESTAT is back up in a488d6f.


text:
🛑 SIMEL is down

In 7c9b6ed, SIMEL (https://disseminatesimel.mtps.gob.sv/rest/dataflow/all/all/latest) was down:

HTTP code: 0
Response time: 0 ms

Resolved: SIMEL is back up in c15a4c4.


text:
🛑 ESTAT is down

In 782c1c4, ESTAT (https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/dataflow/ESTAT/all/latest) was down:

HTTP code: 0
Response time: 0 ms

Resolved: ESTAT is back up in 3ff8270.


text:
incoming message queue, alreadyHaveEvent check, msg.send catch

Add incoming messages to processing queue and process them on setInterval, so we don't block UI processing
Optional alreadyHaveEvent param to relayInit so you can skip JSON.parse and event callback, if you already have the event in memory
Catch errors in ws.send(msg)
Resolve untilOpen on ws.open

This is so weird, I was looking into adding this exactly this moment, after you told me these tricks more than a week ago.

authors: fiatjaf mmalmi

repo: nbd-wtf/nostr-tools

license: Unlicense


text:
Fix setting public property with private setter #102

Use GetSetMethod() to discriminate between properties that "can" be written (e.g. public property) and properties that "should" be written (e.g. public property with public getter)

@jaymclain There are a few other locations where CanWrite is used. Should those also be updated?

Fixes #102

If my description in the linked issue didn't describe why it was important, and what it fixes, please see the specific example I added to #102.

authors: Doug-Murphy jaymclain

repo: nbuilder/nbuilder

license: mit

license_source: bigquery


text:
Default number of cv_folds is changed to 5

Changed default cv_folds number in params for table data and in some tests

Hello @andreygetmanov! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file test/unit/validation/test_table_cv.py:

Line 109:92: E226 missing whitespace around arithmetic operator
Line 133:61: E226 missing whitespace around arithmetic operator

In the file test/unit/validation/test_time_series_cv.py:

Line 6:1: F401 'sklearn.metrics.mean_absolute_error' imported but unused
Line 88:5: F841 local variable 'tuned' is assigned to but never used
Line 129:43: E226 missing whitespace around arithmetic operator
Line 155:61: E226 missing whitespace around arithmetic operator

Посмотри хотя бы в дебаге на всякий случай, что там теперь действительно 5 фолдов. А то мало ли

repo: nccr-itmo/FEDOT


text:
Errant fields in CDS Sequencing template

Two attributes (cDNA Length and cDNA Offset) that were accidentally included in this initial version of the template. These are optional attributes and can be ignored by users currently, but we should remove these in the future. Likely due to a clash or issue with the DAG, as commented in https://github.com/ncihtan/data-models/issues/396

I think this was fixed here . Is there further work to be done on this?

Cross check with https://github.com/ncihtan/data-models/issues/436

Cross check with https://github.com/ncihtan/data-models/issues/436

To the best of my knowledge, don't think this issue co-occurs wtih 436. When I check the configs for the cds genomics metadata scripts it does not contain anything referencing CITE-seq and generally, CITE-seq was only implemented very recently.
Since that issue + PR is separate I think they can be moved forward independently from this one. @adamjtaylor

@PozhidayevaDarya @adamjtaylor I just generated a Multiplexed CITE-seq Level 1 manifest using dca staging and still see cDNA length and cDNA offset, is this still expected? I think I saw and fixed a similar issue in #417
Do we know where specifically these DAG loops are?

24-7 close out: Okay if this rolls into 24-8 sprint.

Check is these cDNA attributes are still appearing:

multiplex cite-seq L1
CDS seq template

Still seeing cDNA length and cDNA offset here

Check whether these are still in the CDS seq template. If they are, document this, and take no action, but be sure to communicate to contributors that they can ignore these two attributes.
Action: with every release, have latest blank templates auto-generated and push to a folder in GH @aclayton555 backlog a ticket for this.

Confirmed: these two attributes are still in the CDS seq template

repo: ncihtan/data-models


text:
API Page / Documentation Missing and/or Inaccurate

On this page: https://github.com/ncuillery/angular-breadcrumb/wiki/API-Reference
This documentation states one thing, and it just doesn't look like compilable javascript. I added it to my code and it doesn't work. I've tried the documented way as well as similar (non-syntax erroring) ways to handle this to no avail.  Any help on how to actually write this out would be great.
There is a statement: Both declarations (string or function) accept url params. The syntax is the same as the UI-router uiSref directive :
$stateProvider.state('product.detail', {
  url: '/{productId}',
  views: [...],
  ncyBreadcrumb: {
    parent: 'category.list({cat: 'product'})'
  }
})

Maybe you are disturbed by the [...]: Of course it's not compilable javascript, it's an ellipsis for the views definition.
You must include the real views definition here (or a couple controller / view). See the UI-Router doc for details.

Okay. I guess you caught me not being specific enough. I'm actually talking about the specific line:
parent: 'category.list({cat: 'product'})'

I'm not disturbed at all. I like your library, but the documentation is off. And personally, the views has nothing to do with ncyBreadcrumb at all, unless I'm mistaken.

My bad !
I didn't see the mistake with the single quote.
I fix it,
Thanks

authors: jancel ncuillery

repo: ncuillery/angular-breadcrumb


text:
Many files are copied / deleted / re-uploaded, when they already exist

RClone version: v1.38
Command: rclone sync
Remote: S3

I have a folder which is synced with S3 using timestamp comparisons (no checksums). I just ran rclone sync and noticed it was trying to sync photos that haven't changed since 2014. The local timestamp on DSC_0415.JPG is August 2014, but the output shows:
2017/12/18 07:58:37 INFO  : original/2014-07/DSC_0415.JPG: Copied (server side copy)
2017/12/18 07:58:37 INFO  : original/2014-07/DSC_0415.JPG: Deleted
Transferring:
* original/2014-07/DSC_0415.JPG: 100% done, 9.026 MBytes/s, ETA: 0s

It looks like the RClone is doing a server-side copy to the --backup-dir, followed by deleting the file from the remote S3 bucket, followed by re-uploading the file.

The only reason I can think of is that since the last sync I renamed the root folder locally, so had to run aws s3 mv --recursive. This means all files on S3 have a new timestamp greater than the local timestamp. When I run with --dry-run Rclone seems to either

want to update the modification time on s3 (as expected)

2017/12/18 10:01:46 DEBUG : large/2015-06/2015-06-15 18.42.55.jpg: Modification times differ by 20881h27m10s: 2015-07-30 11:55:28 +0000 UTC, 2017-12-16 13:22:38 +0000 UTC
2017/12/18 10:01:46 NOTICE: large/2015-06/2015-06-15 18.42.55.jpg: Not updating modification time as --dry-run
2017/12/18 10:01:46 DEBUG : large/2015-06/2015-06-15 18.42.55.jpg: Unchanged skipping

want to backup / delete / re-upload the file

2017/12/18 09:02:46 NOTICE: original/2014-07/DSC_0772.JPG: Not moving as --dry-run
2017/12/18 09:02:46 NOTICE: original/2014-07/DSC_0772.JPG: Not copying as --dry-run

In the case above, the file (DSC_0772.JPG) does exist in the target S3 bucket. I downloaded it and compared it to the local file, and they are binary-equal (cmp -l). I don't understand why it doesn't update the timestamp like it does with the others.
Do you know how I can troubleshoot this? It sounds similar to #1431 except I don't use Google Drive, and I think that issue was fixed in 1.38. Thanks!

Did aws s3 mv --recursive preserve the metadata, in particulare the mtime that rclone uses for storing the modification time?
Can you send a log with -vv using the latest beta demonstrating the problem please?
Thanks

Thanks for the quick reply, I will check tonight and let you know.

This is very stale. Closing out. If you still have a question, please post on the forums.

authors: animosity22 ncw rprieto

repo: ncw/rclone


text:
Deploy Error While Building Sanity started to happen 3 days ago

Here are the deployment logs:
18:26:42.680 | [4/4] Building fresh packages...
18:26:45.597 | success Saved lockfile.
18:26:45.602 | Done in 82.03s.
18:26:45.676 | Done in 1m 23.6s
18:26:45.689 | Detected Next.js version: 12.3.0
18:26:45.698 | Running "pnpm run build"
18:26:46.318 |
18:26:46.318 | > hull@2.6.0 build /vercel/path0
18:26:46.318 | > echo 'Building Sanity to public/studio…' && cd studio && npx sanity build ../public/studio -y && cd .. && next build
18:26:46.319 |
18:26:46.325 | Building Sanity to public/studio…
18:26:48.903 | - Clearing output folder
18:26:48.907 | ✔ Clearing output folder (8ms)
18:26:48.908 | - Building Sanity
18:27:19.810 | ✖ Building Sanity
18:27:19.811 |
18:27:19.811 | Error: Errors while building:
18:27:19.811 | ./node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js
18:27:19.811 | Module parse failed: Unexpected token (307:11)
18:27:19.811 | You may need an appropriate loader to handle this file type.
18:27:19.812 | \|   }
18:27:19.812 | \|
18:27:19.812 | \|   return { ...rect,
18:27:19.812 | \|     x: rect.x - scroll.scrollLeft + offsets.x,
18:27:19.812 | \|     y: rect.y - scroll.scrollTop + offsets.y
18:27:19.812 | @ ./node_modules/react-select/dist/react-select.esm.js 24:0-26
18:27:19.812 | @ ./node_modules/sanity-plugin-media/dist/components/SearchFacetTags/index.js
18:27:19.813 | @ ./node_modules/sanity-plugin-media/dist/components/Controls/index.js
18:27:19.813 | @ ./node_modules/sanity-plugin-media/dist/components/Browser/index.js
18:27:19.813 | @ ./node_modules/sanity-plugin-media/dist/app.js
18:27:19.813 | @ ./node_modules/sanity-plugin-media/dist/index.js
18:27:19.813 | @ ./node_modules/sanity-plugin-media/dist?sanityPart=all%3Apart%3A%40sanity%2Fbase%2Ftool
18:27:19.813 | @ ./node_modules/@sanity/default-layout/lib/util/getRegisteredTools.js
18:27:19.813 | @ ./node_modules/@sanity/default-layout/lib/router.js
18:27:19.813 | @ ./node_modules/@sanity/default-layout/lib/Root.js?sanityPart=part%3A%40sanity%2Fbase%2Froot
18:27:19.813 | @ ./node_modules/@sanity/base/lib/components/SanityRoot.js?sanityPart=part%3A%40sanity%2Fbase%2Fsanity-root
18:27:19.814 | @ ./node_modules/@sanity/server/lib/browser/entry.js
18:27:19.814 | @ multi ./node_modules/@sanity/server/lib/browser/entry.js
18:27:19.814 | at buildStaticAssets (~/path0/studio/node_modules/@sanity/core/lib/actions/build/buildStaticAssets.js:103:13)
18:27:19.869 | ELIFECYCLE  Command failed with exit code 1.
18:27:19.891 | Error: Command "pnpm run build" exited with 1

It seems that the error may be caused by some dependencies' update, as there is no error 3 days ago, and no error in my local building progress.
How can we solve this problem? Thank you in advance!

I'm experiencing the same issue  👀

Same here, can't get it working from the Vercel one click either

This sounds like an issue with either the sanity studio packages, or the sanity-plugin-media plugin. Can you try upgrading the versions and see if you're able to build and deploy?

Thanks! I’ll try a manual install and upgrade the packages like you said. My issue was with the automatic deploys on vercel only, the sanity one click worked just fine.

I have had success going to the studio folder and running
yarn add  sanity-plugin-media@1.4.13

I believe I hit the same issue (deploying to Netlify though). I solved it by adding a webpack.sanity.js file in the studio folder, with the following config:
module.exports = function (config, options) {
    config.module.rules[0].exclude =
      /(node_modules|bower_components)\/(?!@floating-ui)/;
    return config;
  };

I've had success going to the studio folder and running yarn add sanity-plugin-media@1.4.13

Thanks @kasperbirch1, @ndimatteo and @anendlesssupply, it works. So the bug seems to be brought by  its new version sanity-plugin-media@1.4.14 (2022-11-22).

Closing for the same reason as this: https://github.com/ndimatteo/HULL/issues/114#issuecomment-1366973543

authors: anendlesssupply jwoa kasperbirch1 kuleyu ndimatteo

repo: ndimatteo/HULL


text:
DEC-924: Bugfix Safari const

Why: A show stopping bug is preventing JS functionality from executing on Safari. The browser is reporting a 'const' error, which is preventing React and jQuery from initializing.
How: Replaced all const with var.

👍

👍

authors: jgondron jonhartzler rfox2

repo: ndlib/honeycomb


text:
Showcase editor improvements

Added dynamic search to showcase editor items
Added nametags to items
Updated material-ui 13.0->13.4 which required react 14.7->14.8

this may require everyone to run bundle exec rake tmp:clear for client up update correctly

Coverage remained the same at 95.712% when pulling 2038ef8eb3e91a2c349b3770f3608aff21cf75e5 on showcaseEditorImprovements into 79033b436e058b514289800d1ff6cf372ccc7dcc on DEC-1287.

Coverage remained the same at 95.712% when pulling 791a774b221f43db71dc41adea758a4c8fda8b40 on showcaseEditorImprovements into 79033b436e058b514289800d1ff6cf372ccc7dcc on DEC-1287.

Coverage remained the same at 95.712% when pulling 9f864a0d6402a6ff5bcd07281b69797dde05bce0 on showcaseEditorImprovements into 278d130952012643d969610bb43bf63a41943b5f on master.

Coverage remained the same at 95.712% when pulling ebc90e669ffc93b829cc8f82d41ca33bf9673fe7 on showcaseEditorImprovements into 278d130952012643d969610bb43bf63a41943b5f on master.

authors: coveralls hbeachey


text:
dApp login hotfixes

[x] Occasionally, "Proceed" button in the dApp login window is still looking disabled when there are no validation errors, but the login logic works anyway
[x] The multicall login feature should be disabled when selected DAO doesn't have a multicall instance

⚠ Do not merge before #158 is merged

repo: near-multicall/ui


text:
Wallet javascript error prevents it from rendering

Problem
After creating and funding an account with NEAR and using it for few hours - it stopped working. In Chrome console it throws an error and screen is just a white blank.
Reproduced on Chrome, Edge, Firefox, Chrome iOS. Both on incognito and regular mode
Clearing cache, cookies, changing browser or device does not help.
Expected Behavior
Wallet should render normally
Steps to reproduce

Go to wallet.near.org
Recover account
Go to wallet
See wallet blink for a second, then goes to white screen.

Error log:
Chrome:
src.3fe9fd3b.js:3425 TypeError: Cannot read properties of null (reading 'access_key')
    at w (src.3fe9fd3b.js:3303:4139)
    at E (src.3fe9fd3b.js:3303:4032)
    at ua (src.3fe9fd3b.js:27:58593)
    at Ro (src.3fe9fd3b.js:27:104856)
    at Lu (src.3fe9fd3b.js:27:97578)
    at Ru (src.3fe9fd3b.js:27:97503)
    at Cu (src.3fe9fd3b.js:27:94435)
    at src.3fe9fd3b.js:27:45986
    at exports.unstable_runWithPriority (src.3fe9fd3b.js:23:3996)
    at ri (src.3fe9fd3b.js:27:45696)
    at oi (src.3fe9fd3b.js:27:45932)
    at ai (src.3fe9fd3b.js:27:45867)
    at _u (src.3fe9fd3b.js:27:94819)
    at Object.notify (src.3fe9fd3b.js:80:230)
    at Object.notifyNestedSubs (src.3fe9fd3b.js:80:825)
    at i (src.3fe9fd3b.js:80:659)
    at w (src.3fe9fd3b.js:136:2576)
    at src.3fe9fd3b.js:3528:948
    at src.3fe9fd3b.js:946:151
    at src.3fe9fd3b.js:167:980
    at dispatch (src.3fe9fd3b.js:136:5210)
    at src.3fe9fd3b.js:3279:892

Edge:

TypeError: t is null
    w ActivityBox.js:175
    E ActivityBox.js:169
    React 6
    unstable_runWithPriority scheduler.production.min.js:19
    React 4
    Redux 6
    u middleware.js:26
    Redux 2

Same behavior in edge, chrome, brave.
Below console error :
TypeError: Cannot read properties of null (reading 'deposit')
at I (ActivityBox.js:193:70)
at E (ActivityBox.js:170:15)
at ua (react-dom.production.min.js:153:1)
at Ro (react-dom.production.min.js:261:1)
at Lu (react-dom.production.min.js:246:1)
at Ru (react-dom.production.min.js:246:1)
at Cu (react-dom.production.min.js:239:1)
at react-dom.production.min.js:123:1
at exports.unstable_runWithPriority (scheduler.production.min.js:19:1)
at ri (react-dom.production.min.js:122:1)
at oi (react-dom.production.min.js:123:1)
at ai (react-dom.production.min.js:122:1)
at _u (react-dom.production.min.js:240:1)
at Object.notify (Subscription.js:15:7)
at Object.notifyNestedSubs (Subscription.js:85:15)
at i (Subscription.js:90:20)
at w (redux.js:296:32)
at index.js:18:16
at index.js:20:16
at middleware.js:26:18
at dispatch (redux.js:659:28)
at index.js:31:15
My deposit is not null!

looks live issue has been resolved

authors: dimaswift philazer

repo: near/near-wallet


text:
fix: add conditional claim all on withdraw

Only claim all tokens on withdrawal if the validator is a staking farm validator.
Closes #2548

haven't tested this yet on the prod side but 🎉  thanks all for speedy response!

authors: esaminu zcstarr


text:
[DOC] - Dev environment setup instructions are outdated

Preliminary Checks

[X] This issue is not a question, feature request, RFC, or anything other than a bug report. Please post those things in GitHub Discussions: https://github.com/nebari-dev/nebari/discussions

Summary
On https://www.nebari.dev/docs/community/code-contributions#create-a-virtual-environment, it says "Create a new environment using environment-dev.yaml", but the nebari repo doesn't have an environment-dev.yaml anymore.
Steps to Resolve this Issue
We should update to pip install -e .[dev]

Resolved by #305

authors: Adam-D-Lewis pavithraes

repo: nebari-dev/nebari-docs


text:
Make the extension ready for a first release

This PR contains some fixes in order to prepare the extension to be ready for the first release on RubyGems.
Let me know WDYT if you have concerns about a specific commit or want to add something.

Probably, it will be better also to update all cop descriptions because most of them contain some TODO stuff, and others contain wrong examples.

repo: nebulab/rubocop-solidus


text:
"didn't jump to function exit" with simple list comprehension in return statement

Describe the bug
The attached zip file has three files. The .coveragerc file with settings, the .coverage file with the sqlite db with line info and the source file coverage_target.py. There also a generated htmlcov folder which shows the bug.
Zip file -> coverage_bug_1.zip
All files were generated with coverage==5.5 while running pytest with pytest-cov==2.11.1.
The .coverage file was generated using python 2.7.
When generating the html report with python 2.7 it shows as expected 100% coverage.
When generating the html report with python 3.7 it shows 89% due to the "didn't jump to function exit". This is the bug.
Why mixing python 2 and 3 ? Because in my project we run unit tests against different versions of python to test the different compatibility code and then merge coverage results.
To Reproduce

Unpack the zip file in your project folder
Run python3 -mcoverage html
Inspect the html report for coverage_target.py.

Expected behavior

Unpack the zip file in your project folder
Run python2 -mcoverage html
Inspect the html report for coverage_target.py <- no message about "didn't jump to function exit"

Additional context
Add any other context about the problem here.

Thanks for the report.
In general, you will get strange results if you measure (create the .coverage file) on one version of Python, and then create the report on another.  But you say:

we run unit tests against different versions of python to test the different compatibility code and then merge coverage results.
So I wouldn't expect that you are measuring on one version and then reporting on another.

Can you provide a runnable example?

authors: joaoe nedbat

repo: nedbat/coveragepy


text:
fix wrong import statement

@neelance I could be wrong but I think that you meant to do this...
go-imports is awesome but sometimes it's wrong 😃
fixes #44

Yes, thanks a lot! No idea how that happened.

Both packages have a func named Errorf (see here and here), and goimports prefers shorter import paths when picking between one of many possible matches.

authors: neelance nicksrandall shurcooL

repo: neelance/graphql-go


text:
solve some cases for Leetcode #239

It would be safer to check for the size of window being equal or more than k
test case, k = 1, input = [1,-1]
expected output: [1,-1]
With current implementation, output is: [1]

File(s) Modified: 0239-sliding-window-maximum.py
Language(s) Used: _python
Submission URL: https://leetcode.com/problems/[problem-name]/submissions/xxxxxxxxx/

Important
Please make sure the file name is lowercase and a duplicate file does not already exist before merging.

@neetcode-gh and team, can we please have this reviewed
Thanks
cc @sujal-goswami

repo: neetcode-gh/leetcode


text:
Support for Webpack 4?

Are there any plans to adapt this plugin for Webpack 4? I could try my hand at a pull request if you're too busy. Currently using this plugin with Webpack 4 renders the following error:
ERROR in   TypeError: callback is not a function

      - index.js:65 HtmlWebpackPugPlugin.preProcessHtml
        [homepage]/[html-webpack-pug-plugin]/index.js:65:3

      - index.js:14
        [homepage]/[html-webpack-pug-plugin]/index.js:14:12

      - new Promise

      - Hook.js:35 AsyncSeriesWaterfallHook.lazyCompileHook [as _promise]
        [homepage]/[tapable]/lib/Hook.js:35:21

      - index.js:645
        [homepage]/[html-webpack-plugin]/index.js:645:47

      - index.js:173 Promise.resolve.then.then.then.then.then.then.html
        [homepage]/[html-webpack-plugin]/index.js:173:18

      - next_tick.js:160 process._tickCallback
        internal/process/next_tick.js:160:7

Went ahead and made a PR: https://github.com/negibouze/html-webpack-pug-plugin/pull/16

@Nickersoft Thank you for your Report & PR.

@Nickersoft
I released a new version(v0.3.0).
Thank you for your cooperation :)

authors: Nickersoft negibouze

repo: negibouze/html-webpack-pug-plugin


text:
implemented widget toggle

Please, check the full compatibility of my implementation with the theme. It is working for me on a project I am working on. Plus this will hide the horizonal line if the widgets are hidden

Thank you for wanting to contribute but I don't see the point. Why not delete the file skills.md ?

Hi. This feature was design to be used in a CMS like forestry or net life Cms, where you can simply turn on or off widgets with a switch. If you don't find this relevant or not in line with your project, don't worry. Thanks fo your work

Hi, that's actually a great idea. I think i'm going to merge it. Thank you.

authors: mijorus negrel

repo: negrel/hugo-theme-pico


text:
Support for choosing a scope that is not the one specified with the SPN

I'd like to give my SPN access to my root MG, but still choose a different MG or sub to create the blueprint in. Otherwise, I will need to create a unique SPN for each scope where I want to create/manage a blueprint.
The 1.0 version of the extension had support for this, which I think worked well.

@ajf214 I've worked in experiences for alternate child subscriptions. It's not perfecth. If you have any suggestions I would be happy to update.
Create
If the task is scoped to a management group, to create the blueprint at a child subscription, select the 'Create Blueprint at child subscription' box and add the subscription ID.

Assign
This task will search both the Management Group and target Subscription for a Blueprint with a name match. If a Blueprint is found at both the Management Group and Subscription, the Subscription is used.
I had hoped that if this task is scoped to a subscription, that the subscription ID could be derived from the service connection and that target subscription argument could be hidden. However, this is not possible with the current pipeline task SDK.

I am closing the issue, feel free to re-open with updated requests etc..


text:
Can docker set the order of start up?

@nein09
So, if I follow, these lines
https://github.com/nein09/polder-federated-search/blob/e8a8ef9c06f338dc10272d4e0b4e0224853f1ccc/docker/docker-compose.yaml#L3-L14
This will start up Gleaner with the -setup call to ensure its requested top level bucket exists.
However, if Minio is not yet started, there may be no object store to talk to yet?   Assuming it is the one you are using.
Is there a way to sequence how containers start in Docker?

ha!  I didn't even see the depends on!   Thanks.  I didn't know about that one!

oh yeah! I just found out about that today. It looks handy.
There's a tradeoff there, where you can't use extends if you have 'depends on', which is why the docker-compose file repeats itself. But the 'depends on' looked worth it.


text:
Considering accessors versus properties on models.

I would like to move most properties on models across to use accessor methods instead of properties. This will probably also involve making most fields private and creating getters for them.
The reason for this is that it allows me to hide whether an operation is using a cached value on the model or whether it is performing a cache lookup behind the method interface. As well as improving consistency elsewhere, it will ensure that introspecting a model instance does not perform a lot of slow operations based on the execution of properties that make cache calls internally.
This would either cover changing just cache calls, or changing all field accessions:
event.channel.id -> event.get_channel().get_id()
This will require at least a partial rewrite of most model-bound tests.
I am still 50-50 as to whether I want to go ahead with this, since it will make stuff more verbose for people switching from other frameworks, and may be considered to be messy, but at the same time the inconsistency between "what is a field and what is a method" which may be messy currently due to Discords :tm: design should be reduced/removed.
Using accessors in Python isn't considered an antipattern per-se either. Many modules follow that approach.
Links to https://discordapp.com/channels/574921006817476608/577602779410071575/749746748615950539

Do you have any idea how this would work with builder cache objects? And would we maybe have a method that returns a dict of the raw values or something like that and is on all models?

Do you have any idea how this would work with builder cache objects? And would we maybe have a method that returns a dict of the raw values or something like that and is on all models?

You'd probably have to look at private fields and remove the underscore directly for the constructor to work around this.

Do you have any idea how this would work with builder cache objects? And would we maybe have a method that returns a dict of the raw values or something like that and is on all models?

You'd probably have to look at private fields and remove the underscore directly for the constructor to work around this.

If you're fine with looking at private fields then nothing will have to change

Do you have any idea how this would work with builder cache objects? And would we maybe have a method that returns a dict of the raw values or something like that and is on all models?

You'd probably have to look at private fields and remove the underscore directly for the constructor to work around this.

If you're fine with looking at private fields then it shouldn't be too hard to convert the data class over then

It is internal to the library. As long as we do not encourage users to do this, we shouldn't have a problem.
Fields are exposed on the assumption we are responsible developers, tests should highlight bad stuff :^)

I feel like the cons outweight the pros quite a bit in this case. Python is a syntatically simple language in general, and the ease of use is one of its key features, and certainly one that attracts a lot of people. Making the library super verbose by making everything a call to a get_foo() method will substantially reduce the simplicity and pain-less aspect of this library, which I'm afraid will make people gravitate towards solutions like discord.py more in the future. Even though Hikari is, in my opinion, miles better than discord.py due to its fully typed, documented and tested nature, I'm under the impression that it would level out, or even make Hikari less desireable, as its nice pros would be muffled by the high verbosity and "ugliness" of code using it.
I see how this is a quite complicated decision however. Having these calls would simplify stuff and make everything more consistent... You say it's not an anti-pattern per-se and that many modules use it, but I in all honesty, I fail to recall any. Could you point me some?
Thanks :b:iscord

You say it's not an anti-pattern per-se and that many modules use it, but I in all honesty, I fail to recall any. Could you point me some?

Pretty much all standard lib modules like asyncio do this

Might close this for the time being and reopen it if I still feel it is relevant.

@FasterSpeeding @davfsa please.

As I said through Discord on the day this was opened (should have done it through here) I dont really mind one or another. Its true that properties might be a more "pythonish" approach.
I think its fine to have get_x in a lot of cases (eg, get_channel or get_guild). But for simple or inmutable arguments that wont change (eg id) I think its fine to have them as properties.

I think its fine to have get_x in a lot of cases (eg, get_channel or get_guild). But for simple or inmutable arguments that wont change (eg id) I think its fine to have them as properties.

How would you suggest handling events and inheritance hierarchy in this case?
Consider GuildEvent which has a guild property.
Both GuildAvailable and GuildUnavailable provide this attribute in different ways. The former is always aware of the field directly as it is part of the low-level event payload, whereas the latter has to do a cache call for this (calls the GuildEvent default property).
Should these be properties, getter methods, or just remove this from the base class altogether and provide .guild on an available event and .get_guild() on an unavailable event, in your opinion?

Should these be properties, getter methods, or just remove this from the base class altogether and provide .guild on an available event and .get_guild() on an unavailable event, in your opinion?

In this case I would use get_guild() for both.
I probably did not explain myself correctly before. I meant if its something that we can assure will always be there (eg id) and we dont have to make any calls for it in any variant of the object, then its a property, else, a get_x. That sound better?

@davfsa suggestions on what that involves?

For now I think we have avoided the issue, so will close.
Will reopen if/when this is needed.

authors: FasterSpeeding Tmpod davfsa nekokatt

repo: nekokatt/hikari


text:
Kerasの環境を構築

Kerasの環境を構築する。
1. Dockerで構築するならDockerfileは用意してあるため、そちらを読み込む
以下は、よく使うコマンド
docker build -t keras/keras:1.0 .
docker ps -a
docker rm psID
docker images
docker rmi imID
docker run --name keras -it psID /bin/bash

docker run -v [ホストディレクトリの絶対パス]:[コンテナの絶対パス] [イメージ名] [コマンド]
docker run -it -v /your/path:/tmp/ b4 /bin/bash

2. Ubuntu上に構築するなら以下を行う

バックエンドでtensorflowもしくはTheanoで動作するため、どちらかを用意する
python 2系、3系に注意して、python,pip,python-devなどtensorflowに必要なpy関係を用意する
tensorflowの公式サイトにpipでインストールする方法があるのでそちらを参照。依存関係ライブラリは要チェック
pip install kerasの実行

#18

https://github.com/transcranial/keras-js
こんなんあるみたい。

thank

authors: TakahiroYamamoto nekonyanneko


text:
Remove unusing pycrypto dependency (#63)

Fix #63
Remove pycrypto from depedencies since there is no place using it.

Codecov Report

Merging #78 into master will increase coverage by 0.12%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #78      +/-   ##
==========================================
+ Coverage   77.68%   77.81%   +0.12%
==========================================
  Files          17       17
  Lines        1564     1564
==========================================
+ Hits         1215     1217       +2
+ Misses        349      347       -2

Impacted Files
Coverage Δ

nekoyume/models.py
75.32% <0%> (+0.28%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4865809...84cfb02. Read the comment docs.

authors: codecov-io longfin

repo: nekoyume/nekoyume


text:
update Lock Contract Tutorial

There are two pages for Lock Contract examples:
1,  Smart Contract -> Smart Contract Example -> Smart Contract Example - Lock (Lock Contract)
2,  Smart Contract -> Smart Contract Example -> Smart Contract Example - Lock Contract Tutorial
And those two pages show different code for lock contract, can we please combine them and use one working example ?

Fixed in #853

repo: neo-project/docs


text:
Fine-grained security: Test & replicate a failed write scenario, handle error appropriately

Be aware that weird permissions errors are possible where you will fail to write from the Kafka Connect worker when the permissions are bad. Do that at the validation level so the plugin will not created.
Give error message via regular channels to the user saying that permissions are insufficient to do the sink that they need.

Scenario:

User creates a neo4j user called “kafka-sink”.  Gives it read-only privileges on database “foo”.
User tells the connect worker to sink Kafka messages -> foo.
Connect worker totally fails, because kafka-sink user can’t write.
Result:  Standard error handling techniques we already have in place, with a clear message that the bolt username/password used to configure the worker doesn’t have sufficient privileges to work.

Use the DLQ -- this isn’t a fatal error.   Just need a really clear message on what to do / how to fix.

Issue is mostly addressed right now on the main branch but this is closeable once release is made.


text:
Can't disable authorization

Steps to reproduce

Just running any 4.4.x version with the NEO4J_AUTH env var set as none; e.g.
docker run -d --publish=7474:7474 --publish=7687:7687 --env=NEO4J_AUTH='none' --name neo4j neo4j:4.4.9

Expected behaviour

The container starts without authentication.

Actual behaviour

The container does not starts, and logs the following error:

none is invalid
Invalid value for NEO4J_AUTH: 'none'

Neo4j image tag being used, eg neo4j:latest, neo4j:enterprise-3.5 etc

Any 4.4.x community image appears to be affected, but I personally tested with latest, 4.4.9, 4.4.8 & 4.4.7

The output of the docker version command

Client: Docker Engine - Community
 Cloud integration: v1.0.24
 Version:           20.10.17
 API version:       1.41
 Go version:        go1.17.11
 Git commit:        100c701
 Built:             Mon Jun  6 23:03:17 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Desktop
 Engine:
  Version:          20.10.17
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.11
  Git commit:       a89b842
  Built:            Mon Jun  6 23:01:23 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.6
  GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc:
  Version:          1.1.2
  GitCommit:        v1.1.2-0-ga916309
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Operating system: (for example Windows 95/Ubuntu 16.04)

Ubuntu 20.04 on WSL 2 on Windows 10

Maybe this is related to the change of the base docker image?
PS: Also, the 4.4.9 image is actually running the 4.4.8 version of Neo4j

When I pasted your command into a terminal it added some weird extra characters:
docker run -it --rm \
--publish=7474:7474 \
--publish=7687:7687 \
--env=NEO4J_AUTH='none<200b>' neo4j:4.4.8

and gave the same error message you reported. The extra characters didn't show up in a text editor.
When I re-wrote the 'none' it worked as expected. You can even set it as --env=NEO4J_AUTH=none to avoid the single quotes.
I think this might be some weird whitespace or character encoding that's crept into your code and is causing problems (maybe through copy and pasting from different sources?).  If you just re-type the --env=NEO4J_AUTH=none by hand it should work.
Also thanks for reporting 4.4.9 community being the wrong version. It looks like I made a typo in the release, I've submitted a PR to docker to fix it.

authors: BalmungSan jennyowen


text:
Fix nanosecond normalisation

This PR fixes the following aspects of nanosecond handling;

It no more prints nanoseconds part if it is 0 on each temporal type.
It normalises second part based on its sign and nanosecond value while creating the ISO 8601 compatible string representation.

The Duration class restricts nanosecond field to be between 0 and 999.999.999 and differs from the js driver in that respect. What do you think @lutovich & @zhenlineo?

@zhenlineo missing sign issue should now be addressed.


text:
Http driver config 6.1.x

Fixes #272
This pull introduces/changes:

adds an :http_adaptor option to CypherSession::Adaptors::HTTP.new for Faraday adaptor

Pings:
@cheerfulstoic
@subvertallchris

Coverage increased (+11.8%) to 93.449% when pulling 0586a5681751bb576299ea8320c3deaf14e06beb on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage increased (+11.8%) to 93.449% when pulling a5d63ffc521c6ae32a6232ae4c35a0ff504e3800 on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage increased (+11.8%) to 93.449% when pulling 62ea2566030d25f401ce057015df58940936f8bd on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage increased (+11.8%) to 93.449% when pulling 62ea2566030d25f401ce057015df58940936f8bd on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage increased (+11.8%) to 93.449% when pulling 62ea2566030d25f401ce057015df58940936f8bd on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage decreased (-0.03%) to 81.599% when pulling 75ff92ebc7c6f87dc836794dc507e661c9ccb3ef on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage decreased (-0.04%) to 81.595% when pulling c5e49533d824c9428cab5d05a530564fc69c14fa on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage decreased (-0.04%) to 81.595% when pulling c5e49533d824c9428cab5d05a530564fc69c14fa on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage decreased (-0.04%) to 81.595% when pulling 16815fc144c250168e16ccba2fa5d93b1370c913 on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage decreased (-0.04%) to 81.595% when pulling 4a2e8784a630275d35397833d184580e657013f7 on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage decreased (-0.04%) to 81.595% when pulling 4a2e8784a630275d35397833d184580e657013f7 on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage decreased (-0.04%) to 81.595% when pulling 4a2e8784a630275d35397833d184580e657013f7 on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage decreased (-0.04%) to 81.595% when pulling 4a2e8784a630275d35397833d184580e657013f7 on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage increased (+0.005%) to 81.636% when pulling c077648aee114c3e65f0c20a8c60f5f05e38a202 on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage increased (+0.005%) to 81.636% when pulling c077648aee114c3e65f0c20a8c60f5f05e38a202 on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage increased (+0.005%) to 81.636% when pulling c077648aee114c3e65f0c20a8c60f5f05e38a202 on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage increased (+0.03%) to 81.665% when pulling 92e2816c5aa4880d4aa1f05d2559d1029d908fc3 on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage increased (+11.8%) to 93.382% when pulling c40f8e273d80a715d9ac9e5414fc8e6cab92fe74 on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage increased (+11.8%) to 93.382% when pulling 9f0debce4bf6ea680f4629d7bbd515ff8ec67a6a on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage increased (+11.8%) to 93.389% when pulling 5c5aa6b02386d5b75f452a608559b67883c671ad on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage increased (+11.8%) to 93.389% when pulling 5c5aa6b02386d5b75f452a608559b67883c671ad on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage increased (+11.8%) to 93.389% when pulling 5c5aa6b02386d5b75f452a608559b67883c671ad on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage increased (+11.8%) to 93.389% when pulling 5c5aa6b02386d5b75f452a608559b67883c671ad on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage increased (+11.8%) to 93.389% when pulling 5c5aa6b02386d5b75f452a608559b67883c671ad on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage increased (+11.8%) to 93.389% when pulling 5c5aa6b02386d5b75f452a608559b67883c671ad on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage increased (+11.8%) to 93.389% when pulling 5c5aa6b02386d5b75f452a608559b67883c671ad on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage increased (+11.8%) to 93.389% when pulling 5c5aa6b02386d5b75f452a608559b67883c671ad on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

Coverage increased (+11.8%) to 93.389% when pulling 5c5aa6b02386d5b75f452a608559b67883c671ad on brucek:http_driver_config_6.1.x into 0da875890d8ac1b1aae6147139b89c60f2a1a38b on neo4jrb:6.1.x.

I'm not sure if you're on 7.0.x yet, but I just released 7.0.8 which allows you to configure faraday's adaptor with a faraday_configurator option.  See the documentation here:
http://neo4jrb.readthedocs.io/en/8.0.x/Setup.html#configuring-faraday
That's the Rails configuration, obviously, but it all ends up as the faraday_configurator option passed into the HTTP adaptor

authors: brucek cheerfulstoic coveralls


text:
Added timer action and simiplified mp-400 urdf to enable reliable multirobot simulation

Simulating multiple robots (more than 3) was highly unreliable as spawning multiple nav stacks and robots caused a high CPU spike causing gazebo crashes and missed spawns.
To resolve this - the following changes were made:

Add "TimeAction" to the launch file with a configurable delay between the launches - this launches the navstack and spawn actions with a set time delay in between enabling reliable launch of multiple robots  (tested with 15 robots on neo_track1)
Simplified collision mesh to reduce CPU computation

Wow!! Thanks very much for the update Vineet. I'd definitely pull this in, once I'm back from the vacation. I need to test it too.
Btw, just want to let you know Gazebo 11 is coming to EoL soon. Probably, you might want to take a look at the migration that we are doing for the same. Check out the fortress migration branch.
if you are looking to do some open source contribution in that regards, you can always contact me.

authors: VineetTambe padhupradheep


text:
Create ProcessLauncher for z/OS using Zowe

Create an implemenation of ProcessLauncher to submit jobs to z/OS JES using Zowe APIs. Developers will use this method when they are working off-platform with Zowe, connected to a z/OS system, and they want to run the generated test programs on-platform.

Zowe CLI project on Github
Sample code for using Zowe Batch Jobs package to submit a job
Video of CLI job submission

Help is wanted because this task requires access to a zSeries system that has Zowe backend components installed.

repo: neopragma/cobol-check


text:
fix(health): fix problem of always showing warning

It seems that my last change was not reflected in #1461. Sorry, the first #configs was wrong. It seems to be a table without an array part, so it needs to be not next(configs).

let's just check vim.tbl_count == 0

Thanks!

repo: neovim/nvim-lspconfig


text:
Method search has an interface problem

Hi, I face a problem while using the node.search method.

This works but it's not great:

node.search(SearchType.Tag, "...")

It works but mypy is warning me about the fact that SearchType doesn't have a Tag attribute, which is tru as everything is lowercased in the python Enum.

This fails but should work according to the search method type hints:

node.search("tag", "...")
# OR
node.search("Tag", "...")

This fails as the string can't be converted to a SearchType (TypeError: argument 'by': 'str' object cannot be converted to 'SearchType')
I think the problem comes from the way the SearchType Enum is defined in the rxml.pyi file.
According to this Single Enum section of the pyo3 documentation the python SerachType class should be like this:
class SearchType:
    Tag: 'SearchType'  # These are class attributes
    Attr: 'SearchType'
    Text: 'SearchType'

    def __eq__(self, other: object) -> bool: ...
    def __int__(self) -> int: ...

And the Node search method should look like this:
def search(self, by: SearchType, value: str, depth: int | None = None) -> list[Node]: ...

sry, i've really written the pyi wrongly, the implementation does use uppercase on the first letter(as you can see here), i will fix it

same for the search method definition, i've written it wrong, fixed on the 2.1.2 release

actually, by default python(and pyo3) enum are integers, so, i'm changing the def to int on the pyi, releasing as 2.1.3

authors: chainyo nephi-dev

repo: nephi-dev/rxml


text:
How can I slove this problem when I run ns-process-data {video,images,polycam,record3d} --data {DATA_PATH} --output-dir {PROCESSED_DATA_DIR}

It is normal since colmap use random initialization for every run. But in my experience, Please use colmap 3.8 for getting more chance higher colmap matched.

I sometimes get better results by using colmap gui instead of ns-process-data.
Try installing colmap by sudo apt-get install colmap, open colmap gui by typing colmap gui and process your images there.

I sometimes get better results by using colmap gui instead of ns-process-data. Try installing colmap by sudo apt-get install colmap, open colmap gui by typing colmap gui and process your images there.

What is the command to import Colmap GUI models for into nerf studio? I assume they must be processed into nerf studio format, even if you use COLMAP gui?

authors: HeaIn ZhenWusi abrahamezzeddine ichsan2895

repo: nerfstudio-project/nerfstudio


text:
Wrong Result in Depth Map Extraction

I've been trying to extract the depth map from a NeRF, specifically from the dataset downloaded by running the line: 'ns-download-data nerfstudio --capture-name=poster" and training it with the Nerfacto model. After reading different issues, I've tried 2 different methods:
The first one involved adding within render.py
(https://github.com/nerfstudio-project/nerfstudio/blob/c599d0f3a1580d4276f4f064fb9cb926eb3b1a71/nerfstudio/scripts/render.py#L156C1-L198C51)
Starting from line 157, after the 'if is_depth' check, the call to a function that would store the output_image into a numpy array.
I extracted this from the following issue: (https://github.com/nerfstudio-project/nerfstudio/issues/2147)
This method resulted in the following image, which as you can see, does not provide sufficient information to extract the depth data for each pixel.

The second method involved modifying render.py again, but this time on line 145, that is, before 'render_image = []', adding the following:

This second method resulted in new information that does not resemble what I need:

I extracted this from the following issue: (https://github.com/nerfstudio-project/nerfstudio/issues/1388)
I'm not exactly sure what the problem is causing the incorrect extraction of depth map information from my NeRF. I would be grateful for any suggestions to solve this issue.
Thanks.

Does depth look reasonable in the output render of the viewer? also if you render a pointcloud of the scene does that look reasonable? pointcloud rendering uses depth under the hood to deproject points.
It looks like what might be happening is the floor/walls have fuzzy geometry, which can happen in NeRF when there are highly reflective and texture-less surfaces (eg the floor).

Sorry for replying so late. I've been exploring various approaches to achieve a satisfactory outcome. I believe the issue was related to depth accumulation. After removing that parameter, I obtained the following:

It's more accurate but it has a really low definition, maybe This could be due to the artifacts surrounding the NeRF which are restricting my range. Are there any solutions to minimize the interaction of artifacts within the depth map range?

authors: ferphy kerrj


text:
No Values

I'm not receiving any values in the Eve app... API key and Home ID are correct. What am I doing wrong?

I have the exact same issue.
But I don't know if it's a problem with this plugin or the API generally.
When I open the API Explorer (https://developer.tibber.com/explorer) and run the query for consumption, I receive:
"consumption": null
Can you confirm this on the API Explorer?

same here and how I get the home id ?

authors: Ma-Str NeoM77 ddbkva

repo: neskvern/homebridge-tibber


text:
Matern 3/2 multi-dimensional kernel

Hey all,
After a quick chat with @nespinoza on slack, I decided to go ahead and put up an implementation for this kernel in juliet. The usage should be pretty much the same as for the multi-dimensional squared-exponential kernel, with the only difference being specifying a GP_malpha<n> hyperparameter instead of GP_alpha<n>.
The test data I used (from Magellan/IMACS and reduced with tepspec) are included in the repo, and should have the external parameters, light curve, and priors files for both this kernel and the squared exponential test case. Below are the corresponding plots, which were made in this notebook.

If this looks ok to people, I would be more than happy to start adding documentation and/or other edits as needed!

Oh, also just a heads up that compared to the sqexp case, the matern-3/2 kernel looks to be reaaally slow when used to precompute the covariance matrix as the number of data points get larger.
A quick 1D test on my computer is showing it taking ~700 times longer after only 3000 data points in time =\
import george
import time

t, f, ferr = juliet.get_TESS_data('https://archive.stsci.edu/hlsps/tess-data-alerts/'+\
                                 'hlsp_tess-data-alerts_tess_phot_00403224672-'+\
                                 's01_tess_v1_lc.fits')

def time_GP(the_kernel, X, first_n_points):
    jitter_term = george.modeling.ConstantModel(1.)
    GP = george.GP(
        the_kernel,
        mean=0.0,
        fit_mean=False,
        white_noise=jitter_term,
        fit_white_noise=True,
        solver=george.HODLRSolver,
    )

    start_time = time.perf_counter()
    GP.compute(X[:first_n_points])
    return time.perf_counter() - start_time

m32 = 1.*george.kernels.Matern32Kernel(
    np.ones(1),
    ndim=1,
    axes=range(1),
)

sqexp = 1.*george.kernels.ExpSquaredKernel(
    np.ones(1),
    ndim=1,
    axes=range(1),
)

N = 3_000
print(time_GP(the_kernel=sqexp, X=t, first_n_points=N))
print(time_GP(the_kernel=m32, X=t, first_n_points=N))

0.02646647500000654
14.069735004999998

Hi @icweaver --- I tested this and works beautifully; thanks a bunch for performing this PR!

Glad it's working ok! I figured it would be a good mirror to GPTransmissionSpectra, haha

authors: icweaver nespinoza

repo: nespinoza/juliet


text:
Linux version does not open files without extension

I'm using the latest nightly build, tested it on several distributions. The Linux version does not display files in explorer if they do not have an extension. For example, you cannot select the globalgamemanagers file, it simply does not exist. If you specify the extension, the file appears immediately. There is no such problem in the Windows version.

This is a bug in the Avalonia file picker.

I forgot to mention, but I believe dragging files into the window should work on linux.

This is another bug discovered, dragging file does not work on Linux

I misremembered. It's not a bug, just not implemented: https://github.com/AvaloniaUI/Avalonia/issues/6085

As for the original issue, it might be solved by turning all of the *.* filters into *, but I still believe this should behave the same on both OSes.

I build it with a modified filter and now it works as it should https://github.com/xboxones1/UABEA/commit/8cd9027acb1a50d11a2b397594ec9de48e6b824f

Thanks, it works now


text:
New - User - Folder

Here the changes in regard of "User scope":

A user scope has been added everywhere: devices/drivers/workspace. You can switch to that in every tree - view under "View/Places/[User|System]". The "user scope" is being set as default "place" in all tree-views. Also the "Files" tab is pointing to "User Workspace"

IDE uses by default $Home\Documents\Control-Freak which auto-creates these subfolders : devices/drivers/workspace.

If a folder dropped onto Control-Freak.exe, or IDE has been started with --userDirectory=other folder: this folder will be used as "user scope".

Currently no additional actions have been added in regard of "leaving" a user directory. That means, as soon you open such folder: its starting all enabled devices there. I am dealing with this later.

so with the new changes, "devices" are not identified as unique by:

host/port/protocol
device data location
driver data location

the system uses a md5 hash for the properties and if that differs, the device server creates a new connection to the device, otherwise its reusing the connection.

repo: net-commander/windows-dist


text:
Common.Logging.Portable portability ?

I let the Microsoft .NET Portability Analyzer Visual Studio add-on (https://visualstudiogallery.msdn.microsoft.com/1177943e-cfb7-4822-a8a6-e56c7905292b) analyze the Common.Logging.Portable 3.1.0 implementation. Could you please take a look regarding the few (especially Windows 8.1) incompatibility issues ?
Thanks in advance.

Hmm...I wasn't aware of this tool, but am thankful for your pointing it out to me.  I'll take a look at the issues raised in the reports and see if there are viable work-arounds for them that we can implement (hopefully without introducing breaking changes).
TBH, for some of these reflection-specific issues (e.g., Type.GetMethod(...), Type.GetConstructor(...)) there may not in fact be Windows 8.1/Windows Phone 8.1 equivalents since the reflection subsystem in WinRT is intentionally limited to reduce the threat/attack surface to which an app might expose itself.
I'll investigate each of these and report back my findings as soon as possible.

Just looping back with a quick update after an initial investigation...

There are no issues identified by the utility in the Common.Logging.Core PCL
There are issues found in the Common.Logging.Portable PCL that relate primarily to the Reflection APIs and secondarily to a small amount of exception-logging metadata that interacts with the Stack API and the Threading API

At first glance it appears as if most (all?) of the necessary APIs have an equivalent in WinRT for Win/WinPhone 8.x (https://msdn.microsoft.com/en-us/library/windows/apps/hh535795.aspx) so on the surface its possible to resolve the issues.
However, it also appears as if switching the reflection code to use the WinRT-compatible reflection APIs would require removing support for .NET 4.0 from Common.Logging.Portable and having that library target NET 4.5 instead (since the necessary APIs for proper reflection in WinRT aren't available until .NET 4.5, the version of the BCL against which the WinRT profile is defined).
I cannot be certain without further investigation/exdperimentation, but my initial thinking is that this would likely break Common.Logging.Silverlight, since this has a dependency on Common.Logging.Portable and its targeting SL5.  Once Common.Logging.Portable moves to support only .NET 4.5 and higher, I don't believe that SL5-based projects can any longer reference it.
That said, it may be that its more important that Common.Logging.Portable support WinRT 8.x (and the upcoming WinRT 10) than that it continue to support Silverlight and 'legacy' WindowsPhone apps, so even if this forces a choice between the two, pretty clearly the right choice is to come down on the side of the future WinRT support rather than the legacy Silverlight support moving forward.
I'll perform some additional investigation/experimentation over the next several days and advise my results.

Just by way of an update on this, its proving more complex that initially expected but its still something that we very much plan to address.  Its likely that this will result in a new Common.Logging.dll that is specific to WinRT support (sim. the way that there is today a sep. Common.Logging.dll for e.g., Silverlight support).
Our expectation is to have this addressed/resolved (and released to NuGet) by mid-month (July).

Fixed in https://github.com/net-commons/common-logging/releases/tag/3.3.0.GA.

authors: abrasat sbohlen

repo: net-commons/common-logging


text:
Cannot program smaller subnet than /24 at a l3-out

Hi,
if have programmed a l3-out with SVI. It works with a /24, but when I configure a /29 it gives the following error:
Error: l3ext::Member IPs should be of same subnet.
with module.tenant["DEMO-IT-DC"].module.aci_l3out_interface_profile_manual["ZD-001-FW-IT-DC/ZD-001-FW-IT-DC-NP/fwl1001a"].aci_rest_managed.l3extMember_A["topology/pod-1/protpaths-1603-1605/pathep-[vpc-fwl1001a]"],
on .terraform/modules/tenant.aci_l3out_interface_profile_manual/main.tf line 247, in resource "aci_rest_managed" "l3extMember_A":
│  247: resource "aci_rest_managed" "l3extMember_A" {
This is the working configuration:
interface_profiles:
bfd_policy: bfd-default
ospf:
ospf_interface_profile_name: fwl_ospf_profile
auth_type: md5
auth_key: cisco
auth_key_id: 1
policy: FWL001
interfaces:
- channel: vpc-fwl001
node_id: 1603
node2_id: 1605
svi: true
vlan: 401
ip_a: 10.93.1.1/24
ip_b: 10.93.1.2/24
mtu: 9000

Please also share the non-working config. If you wrap the yaml content in a markdown code block (https://www.markdownguide.org/extended-syntax/#fenced-code-blocks) it is easier to read.

authors: RemcoVroman danischm

repo: netascode/terraform-aci-nac-tenant


text:
Client failed to connect to Self-Hosted NetBird server: failed while getting Management Service public key

Describe the problem
I have a NetBird instance running locally behind Nginx Proxy Manager, with the IdP being Authentik. (Also behind NPM), the dashboard logs in fine through Authentik, and is able to operate just fine. But getting any client to work is near impossible because of the error. The ports that are needed for the server to communicate with clients have been forwarded and tested to work fine. NPM should be forwarding everything for it to work (Otherwise, the dashboard wouldn't load).
I tried using this solution, but I still encountered the same error. The error shows up regardless.
To Reproduce
Steps to reproduce the behavior:

Host NetBird locally
Connect the NetBird instance to Authentik
Configure Nginx Proxy Manager to work with both NetBird and Authentik
Install and Launch any NetBird client (I used Windows)
Enter the Management and Admin URL (From the Dashboard)
Press "Connect" in the right-click menu on the NetBird icon in taskbar
See error pop up in this screen:

Expected behavior
All clients were expected to work when connecting to the Self-Hosted NetBird Server, using the server URL provided in the dashboard.
Are you using NetBird Cloud?
No, Self-Hosted. And not in the cloud either.
NetBird version
netbird version 0.34.1
NetBird status -dA output:
Daemon status: LoginFailed

Run UP command to log in with SSO (interactive login):

 netbird up

If you are running a self-hosted version and no SSO provider has been configured in your Management Server,
you can use a setup-key:

 netbird up --management-url <YOUR_MANAGEMENT_URL> --setup-key <YOUR_SETUP_KEY>

More info: https://docs.netbird.io/how-to/register-machines-using-setup-keys

Additional context
Here is some of the configuration of the NetBird server, be aware that some details have been modified to ensure privacy.
Management.json
{
    "Stuns": [
        {
            "Proto": "udp",
            "URI": "stun:(domain here):3478",
            "Username": "",
            "Password": ""
        }
    ],
    "TURNConfig": {
        "TimeBasedCredentials": false,
        "CredentialsTTL": "12h0m0s",
        "Secret": "secret",
        "Turns": [
            {
                "Proto": "udp",
                "URI": "turn:(domain here):3478",
                "Username": "self",
                "Password": "ugQ9xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
            }
        ]
    },
    "Relay": {
        "Addresses": [
            "rel://(domain here):33080"
        ],
        "CredentialsTTL": "24h0m0s",
        "Secret": "BYbXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    },
    "Signal": {
        "Proto": "https",
        "URI": "(domain here):10000",
        "Username": "",
        "Password": ""
    },
    "Datadir": "/var/lib/netbird/",
    "DataStoreEncryptionKey": "6Rarxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "HttpConfig": {
        "LetsEncryptDomain": "",
        "CertFile": "",
        "CertKey": "",
        "AuthAudience": "kNJuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "AuthIssuer": "https://(domain here)/application/o/netbird/",
        "AuthUserIDClaim": "",
        "AuthKeysLocation": "https://(domain here)/application/o/netbird/jwks/",
        "OIDCConfigEndpoint": "https://(domain here)/application/o/netbird/.well-known/openid-configuration",
        "IdpSignKeyRefreshEnabled": false,
        "ExtraAuthAudience": ""
    },
    "IdpManagerConfig": {
        "ManagerType": "authentik",
        "ClientConfig": {
            "Issuer": "https://(domain here)/application/o/netbird",
            "TokenEndpoint": "https://(domain here)/application/o/token/",
            "ClientID": "kNJuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "ClientSecret": "",
            "GrantType": "client_credentials"
        },
        "ExtraConfig": {
            "Password": "6TFxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "Username": "Netbird"
        },
        "Auth0ClientCredentials": null,
        "AzureClientCredentials": null,
        "KeycloakClientCredentials": null,
        "ZitadelClientCredentials": null
    },
    "DeviceAuthorizationFlow": {
        "Provider": "hosted",
        "ProviderConfig": {
            "ClientID": "kNJuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "ClientSecret": "",
            "Domain": "(domain here",
            "Audience": "kNJuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "TokenEndpoint": "https://(domain here)/application/o/token/",
            "DeviceAuthEndpoint": "https://(domain here)/if/flow/default-device-code-flow/",
            "AuthorizationEndpoint": "",
            "Scope": "openid",
            "UseIDToken": false,
            "RedirectURLs": null
        }
    },
    "PKCEAuthorizationFlow": {
        "ProviderConfig": {
            "ClientID": "kNJuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "ClientSecret": "",
            "Domain": "",
            "Audience": "kNJuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "TokenEndpoint": "https://(domain here)/application/o/token/",
            "DeviceAuthEndpoint": "",
            "AuthorizationEndpoint": "https://(domain here)/application/o/authorize/",
            "Scope": "openid profile email offline_access api",
            "UseIDToken": false,
            "RedirectURLs": [
                "http://localhost:53000"
            ]
        }
    },
    "StoreConfig": {
        "Engine": "sqlite"
    },
    "ReverseProxy": {
        "TrustedHTTPProxies": [],
        "TrustedHTTPProxiesCount": 0,
        "TrustedPeers": [
            "0.0.0.0/0"
        ]
    }
}

docker-compose.yml
version: "3"
services:
  #UI dashboard
  dashboard:
    image: netbirdio/dashboard:latest
    restart: unless-stopped
    ports:
      - 80:80
      - 443:443
    environment:
      # Endpoints
      - NETBIRD_MGMT_API_ENDPOINT=https://(domain here)
      - NETBIRD_MGMT_GRPC_API_ENDPOINT=https://(domain here)
      # OIDC
      - AUTH_AUDIENCE=kNJuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      - AUTH_CLIENT_ID=kNJuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      - AUTH_CLIENT_SECRET=
      - AUTH_AUTHORITY=https://(domain here)/application/o/netbird/
      - USE_AUTH0=false
      - AUTH_SUPPORTED_SCOPES=openid profile email offline_access api
      - AUTH_REDIRECT_URI=
      - AUTH_SILENT_REDIRECT_URI=
      - NETBIRD_TOKEN_SOURCE=accessToken
      # SSL
      - NGINX_SSL_PORT=443
      # Letsencrypt
      - LETSENCRYPT_DOMAIN=
      - LETSENCRYPT_EMAIL=
    volumes:
      - netbird-letsencrypt:/etc/letsencrypt/
    logging:
      driver: "json-file"
      options:
        max-size: "500m"
        max-file: "2"
  # Signal
  signal:
    image: netbirdio/signal:latest
    restart: unless-stopped
    volumes:
      - netbird-signal:/var/lib/netbird
    ports:
      - 10000:8080
  #      # port and command for Let's Encrypt validation
  #      - 443:443
  #    command: ["--letsencrypt-domain", "", "--log-file", "console"]
    logging:
      driver: "json-file"
      options:
        max-size: "500m"
        max-file: "2"
  # Relay
  relay:
    image: netbirdio/relay:latest
    restart: unless-stopped
    environment:
    - NB_LOG_LEVEL=info
    - NB_LISTEN_ADDRESS=(domain here):33080
    - NB_EXPOSED_ADDRESS=(domain here):33080
    # todo: change to a secure secret
    - NB_AUTH_SECRET=BYbXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    ports:
      - 33080:33080
    logging:
      driver: "json-file"
      options:
        max-size: "500m"
        max-file: "2"

  # Management
  management:
    image: netbirdio/management:latest
    restart: unless-stopped
    depends_on:
      - dashboard
    volumes:
      - netbird-mgmt:/var/lib/netbird
      - netbird-letsencrypt:/etc/letsencrypt:ro
      - ./management.json:/etc/netbird/management.json
    ports:
      - 33073:443 #API port
  #    # command for Let's Encrypt validation without dashboard container
  #    command: ["--letsencrypt-domain", "", "--log-file", "console"]
    command: [
      "--port", "443",
      "--log-file", "console",
      "--log-level", "info",
      "--disable-anonymous-metrics=false",
      "--single-account-mode-domain=netbird.truenasg.net",
      "--dns-domain=netbird.selfhosted"
      ]
    logging:
      driver: "json-file"
      options:
        max-size: "500m"
        max-file: "2"
    environment:
      - NETBIRD_STORE_ENGINE_POSTGRES_DSN=

  # Coturn
  coturn:
    image: coturn/coturn:latest
    restart: unless-stopped
    #domainname: (domain here) # only needed when TLS is enabled
    volumes:
      - ./turnserver.conf:/etc/turnserver.conf:ro
    #      - ./privkey.pem:/etc/coturn/private/privkey.pem:ro
    #      - ./cert.pem:/etc/coturn/certs/cert.pem:ro
    network_mode: host
    command:
      - -c /etc/turnserver.conf
    logging:
      driver: "json-file"
      options:
        max-size: "500m"
        max-file: "2"
volumes:
  netbird-mgmt:
  netbird-signal:
  netbird-letsencrypt:

setup.env (Copied example file and modified it)

## example file, you can copy this file to setup.env and update its values
##

# Image tags
# you can force specific tags for each component; will be set to latest if empty
NETBIRD_DASHBOARD_TAG=""
NETBIRD_SIGNAL_TAG=""
NETBIRD_MANAGEMENT_TAG=""
COTURN_TAG=""
NETBIRD_RELAY_TAG=""

# Dashboard domain. e.g. app.mydomain.com
NETBIRD_DOMAIN="(domain here)"

# TURN server domain. e.g. turn.mydomain.com
# if not specified it will assume NETBIRD_DOMAIN
NETBIRD_TURN_DOMAIN="(domain here)t"

# TURN server public IP address
# required for a connection involving peers in
# the same network as the server and external peers
# usually matches the IP for the domain set in NETBIRD_TURN_DOMAIN
NETBIRD_TURN_EXTERNAL_IP="(IP here)"

# -------------------------------------------
# OIDC
#  e.g., https://example.eu.auth0.com/.well-known/openid-configuration
# -------------------------------------------
NETBIRD_AUTH_OIDC_CONFIGURATION_ENDPOINT="https://(domain here)/application/o/netbird/.well-known/openid-configuration"
# The default setting is to transmit the audience to the IDP during authorization. However,
# if your IDP does not have this capability, you can turn this off by setting it to false.
#NETBIRD_DASH_AUTH_USE_AUDIENCE=false
NETBIRD_AUTH_AUDIENCE="kNJuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# e.g. netbird-client
NETBIRD_AUTH_CLIENT_ID="kNJuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# indicates the scopes that will be requested to the IDP
NETBIRD_AUTH_SUPPORTED_SCOPES="openid profile email offline_access api"
# NETBIRD_AUTH_CLIENT_SECRET is required only by Google workspace.
# NETBIRD_AUTH_CLIENT_SECRET=""
# if you want to use a custom claim for the user ID instead of 'sub', set it here
# NETBIRD_AUTH_USER_ID_CLAIM=""
# indicates whether to use Auth0 or not: true or false
NETBIRD_USE_AUTH0="false"
# if your IDP provider doesn't support fragmented URIs, configure custom
# redirect and silent redirect URIs, these will be concatenated into your NETBIRD_DOMAIN domain.
# NETBIRD_AUTH_REDIRECT_URI="/peers"
# NETBIRD_AUTH_SILENT_REDIRECT_URI="/add-peers"
# Updates the preference to use id tokens instead of access token on dashboard
# Okta and Gitlab IDPs can benefit from this
# NETBIRD_TOKEN_SOURCE="idToken"
# -------------------------------------------
# OIDC Device Authorization Flow
# -------------------------------------------
NETBIRD_AUTH_DEVICE_AUTH_PROVIDER="authentik"
NETBIRD_AUTH_DEVICE_AUTH_CLIENT_ID="kNJuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# Some IDPs requires different audience, scopes and to use id token for device authorization flow
# you can customize here:
NETBIRD_AUTH_DEVICE_AUTH_AUDIENCE="kNJuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
NETBIRD_AUTH_DEVICE_AUTH_SCOPE="openid"
NETBIRD_AUTH_DEVICE_AUTH_USE_ID_TOKEN=false
# -------------------------------------------
# OIDC PKCE Authorization Flow
# -------------------------------------------
# Comma separated port numbers. if already in use, PKCE flow will choose an available port from the list as an alternative
# eg. 53000,54000
NETBIRD_AUTH_PKCE_REDIRECT_URL_PORTS="53000"
# -------------------------------------------
# IDP Management
# -------------------------------------------
# eg. zitadel, auth0, azure, keycloak
NETBIRD_MGMT_IDP="authentik"
# Some IDPs requires different client id and client secret for management api
NETBIRD_IDP_MGMT_CLIENT_SECRET="kNJuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# Required when setting up with Keycloak "https://<YOUR_KEYCLOAK_HOST_AND_PORT>/admin/realms/netbird"
# NETBIRD_IDP_MGMT_EXTRA_ADMIN_ENDPOINT=
# With some IDPs may be needed enabling automatic refresh of signing keys on expire
# NETBIRD_MGMT_IDP_SIGNKEY_REFRESH=false
# NETBIRD_IDP_MGMT_EXTRA_ variables. See https://docs.netbird.io/selfhosted/identity-providers for more information about your IDP of choice.
# -------------------------------------------
# Letsencrypt
# -------------------------------------------
# Disable letsencrypt
#  if disabled, cannot use HTTPS anymore and requires setting up a reverse-proxy to do it instead
NETBIRD_DISABLE_LETSENCRYPT=true
# e.g. hello@mydomain.com
NETBIRD_LETSENCRYPT_EMAIL=""
# -------------------------------------------
# Extra settings
# -------------------------------------------
# Disable anonymous metrics collection, see more information at https://netbird.io/docs/FAQ/metrics-collection
NETBIRD_DISABLE_ANONYMOUS_METRICS=false
# DNS DOMAIN configures the domain name used for peer resolution. By default it is netbird.selfhosted
NETBIRD_MGMT_DNS_DOMAIN=netbird.selfhosted

# -------------------------------------------
# Relay settings
# -------------------------------------------
# Relay server domain. e.g. relay.mydomain.com
# if not specified it will assume NETBIRD_DOMAIN
NETBIRD_RELAY_DOMAIN="(domain here)"

# Relay server connection port. If none is supplied
# it will default to 33080
NETBIRD_RELAY_PORT=""
NETBIRD_IDP_MGMT_EXTRA_USERNAME="Netbird"
NETBIRD_IDP_MGMT_EXTRA_PASSWORD="6TFSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

I can provide further Information when requested, I hope all of this helps.

@GeorgeDaGreatt  Did you find the solution? I'm also getting the same issue.

I'm glad to see that I'm not the only one with this error. But sadly, no.

authors: GeorgeDaGreatt creeram

repo: netbirdio/netbird


text:
feat(core): memoize the normalize function

Addresses #120
Benchmarks with non-memoized normalize
canonical non-memoized x 17,854 ops/sec ±0.68% (93 runs sampled)
isOfKind non-memoized x 5,970 ops/sec ±0.22% (93 runs sampled)

Benchmarks with memoized normalize
canonical memoized x 79,263 ops/sec ±0.98% (89 runs sampled)
isOfKind memoized x 6,786 ops/sec ±0.87% (88 runs sampled)

improvement of 343% in the canonical test
improvement of 13% in the isOfKind test

Pull Request Test Coverage Report for Build 373

3 of 3 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 80.638%

Totals

Change from base Build 366:
0.2%

Covered Lines:
1025

Relevant Lines:
1224

💛  - Coveralls

Benchmarks before optimizations
canonical non-memoized x 168,937 ops/sec ±0.29% (95 runs sampled)
isOfKind non-memoized x 60,486 ops/sec ±0.27% (93 runs sampled)
kindOf non-memoized x 424,707 ops/sec ±0.37% (94 runs sampled)

Benchmarks after optimizations
canonical memoized x 798,412 ops/sec ±0.40% (92 runs sampled)
isOfKind memoized x 102,094 ops/sec ±0.27% (96 runs sampled)
kindOf memoized x 689,314 ops/sec ±0.40% (94 runs sampled)

✔ improvement of 372% in the canonical test
✔ improvement of 68% in the isOfKind test
✔ improvement of 62% in the kindOf test

authors: bevkoski coveralls

repo: netceteragroup/skele


text:
调用手动登录接口, 没有回调, logcat输出service Timeout

2019-03-09 14:30:26.897 20204-20253/art.shuoshuo.app.nim_example D/[ui]main_conn: 1/doTimeout: count#0
2019-03-09 14:30:26.900 20204-20253/art.shuoshuo.app.nim_example D/[ui]main_conn: 1/doConnect: tag#main_conn count#1
2019-03-09 14:30:26.902 20204-20253/art.shuoshuo.app.nim_example W/[ui]main_conn: 1/doConnect: unbind & stop service#Intent { cmp=art.shuoshuo.app.nim_example/com.netease.nimlib.service.NimService (has extras) }
2019-03-09 14:30:26.910 20204-20253/art.shuoshuo.app.nim_example I/[ui]main_conn: 1/doConnect: start & bind service#Intent { cmp=art.shuoshuo.app.nim_example/com.netease.nimlib.service.NimService (has extras) }
2019-03-09 14:30:26.945 20204-20253/art.shuoshuo.app.nim_example D/[ui]aux_conn: 1/doTimeout: count#0

我也是，没加uikit之前，用SDK的登录是可以的。加入sdk之后，在application中，也在主进程初始化了，然后登录返回状态一直就是408，Timeout. 再调用UIKit的登录也是一样

我也是呀 你们解决了吗

我处理了，要不uikit里面的basesdk 去掉 用 api 'com.netease.nimlib:basesdk:6.5.5' 这种方式在uikit中重新引用 就可以

authors: gitxiaojin leejay001 momohimi


text:
[Camellia-redis-proxy] Redis cluster: CROSSSLOT Keys in request don't hash to the same slot

Bug: [Camellia-redis-proxy] Redis cluster: CROSSSLOT Keys in request don't hash to the same slot
1. Issue

I try to use the Redisson to connect to the camellia redis proxy and test LockExamples, but always get an error:

[main] INFO org.redisson.Version - Redisson 3.10.6
[redisson-netty-1-26] INFO org.redisson.connection.pool.MasterPubSubConnectionPool - 1 connections initialized for 10.50.69.8/10.50.69.8:6381
[redisson-netty-1-3] INFO org.redisson.connection.pool.MasterConnectionPool - 32 connections initialized for 10.50.69.8/10.50.69.8:6381
>>>>>> start thread
Exception in thread "Thread-0" org.redisson.client.RedisException: CROSSSLOT Keys in request don't hash to the same slot. channel: [id: 0x0559429c, L:/10.79.xx.xx:51149 - R:10.50.xx.xx/10.50.xx.xx:6381] command: (EVAL), params: [if (redis.call('hexists', KEYS[1], ARGV[3]) == 0) then return nil;end; local counter = redis.call('h..., 2, lock, redisson_lock__channel:{lock}, 0, 30000, f46f747b-a31b-4d38-bb7a-9acb9b96a4e4:46]
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:351)
	at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:199)
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:139)
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:114)
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:502)
	at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:278)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:677)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:612)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:529)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:491)
	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:829)

2. Setup/Configurations

Camellia version 1.1.9
Redis resource is a cluster redis
(*) Using converterPlugin with implementation is DefaultTenancyNamespaceKeyConverter
converter.key.className=com.netease.nim.camellia.redis.proxy.plugin.converter.DefaultTenancyNamespaceKeyConverter
Use this example: redisson/LockExamples.java

My test class:

public class LockExamples {

    public static void main(String[] args) throws InterruptedException {
        Config config = new Config();

        // rediss - defines to use SSL for Redis connection
        config.useSingleServer()
                .setAddress("redis://127.0.0.1:6380") // this is camellia-redis-proxy
                .setClientName("camellia_13_tass") // tenant to a cluster redis
                .setTimeout(100000);
        RedissonClient redisson = Redisson.create(config);

        RLock lock = redisson.getLock("lock");
        lock.lock(2, TimeUnit.SECONDS);

        Thread t = new Thread(() -> {
            System.out.println(">>>>>> start thread");
            RLock lock1 = redisson.getLock("lock");
            lock1.lock();
            lock1.unlock();
            System.out.println(">>>>>> done");
        });

        t.start();
        t.join();

        redisson.shutdown();
    }

}

3. Trace/Debug

The redisson will put 2 keys into redis: lock and redisson_lock__channel:{lock}
If correct, both of those keys should be in the same slot, but in reality, they are not. Leads to exception: org.redisson.client.RedisException: CROSSSLOT Keys in request don't hash to the same slot.
I debug the camellia-redis-proxy and discover that:

after the convert key plugin: 2 keys above will be:

lock -> 13|tass|lock
and redisson_lock__channel:{lock} -> 13|tass|redisson_lock__channel:{lock}

this leads to the above 2 keys no longer are the same slot

At this line, after converting key, 2 keys are not the same slot
-> the result of int slot = RedisClusterCRC16Utils.checkSlot(keys);  is -1 -> throw exception here:
https://github.com/netease-im/camellia/blob/814316b0ca1c7f34d240e258e8f0ae2d92f4b46a/camellia-redis-proxy/src/main/java/com/netease/nim/camellia/redis/proxy/upstream/cluster/AsyncCamelliaRedisClusterClient.java#L212-L218

4. Solutions

I'm not sure, but maybe the order of plugins is the problem
pls help me check this issue, @caojiajun

thank you.

pls help me check this issue, @caojiajun thank you.

redission, rename lock to {lock}

I have no good way to solve this problem

redission, rename lock to {lock}

lock and redisson_lock__channel:{lock} are 2 keys generated by the redission, also we cannot modify that

try a simple lock implements?
https://github.com/netease-im/camellia/blob/master/docs/redis-template/toolkit.md

try a simple lock implements?
https://github.com/netease-im/camellia/blob/master/docs/redis-template/toolkit.md

my existing applications use the redission to connect to redis and many other people too, so we can't force them to do so
this is exactly a bug, so I think we need the plan to fix that

root cause: The handle converter plugin and the sharding function in the core module of the camellia-redis-proxy are to blame for this problem, which does not just occur with Redisson. That might cause further potential bugs.

Update:  I have an idea:

In this case, ex:

lock -> 13|tass|lock
redisson_lock__channel:{lock} -> 13|tass|redisson_lock__channel:{lock}

we will pre-handle before pushing into the redis cluster:

if a key has any hashtag -  curly braces ({, }) ==> keep original:  13|tass|redisson_lock__channel:{lock}
otherwise, we put curly braces ({, }) into the key following by rule of the ConverterPlugin: 13|tass|lock  --> 13|tass|{lock}

Let me know what you think of this.

hmm, whenever we get keys we have to put them into curly braces if it is not present?
10.50.69.105:6380> mget {lock}  redisson_lock__channel:{lock}
10.50.69.105:6380>  ... ...

it doesn't seem very good.

ah, can we handle it from Converter Plugin - DefaultTenancyNamespaceKeyConverter?

it seems not very good.

just draft
DefaultTenancyNamespaceKeyConverter could be like this:
public class DefaultTenancyNamespaceKeyConverter implements KeyConverter {

    private static final String SEPARATOR_STRING = "|";
    private static final byte[] OPEN_CURLY_BRACE = Utils.stringToBytes("{");
    private static final byte[] CLOSE_CURLY_BRACE = Utils.stringToBytes("}");

    @Override
    public byte[] convert(CommandContext commandContext, RedisCommand redisCommand, byte[] originalKey) {
        if (commandContext.getBid() == null || commandContext.getBgroup() == null || commandContext.getBid() <= 0) {
            return originalKey;
        }
        byte[] prefix = Utils.stringToBytes(commandContext.getBid() + SEPARATOR_STRING + commandContext.getBgroup() + SEPARATOR_STRING);
        byte[] keyAfterAppendHashTag;
        if (!isOriginalKeyContainHashTag(originalKey)) {
            keyAfterAppendHashTag = new byte[originalKey.length + OPEN_CURLY_BRACE.length + CLOSE_CURLY_BRACE.length];
            System.arraycopy(OPEN_CURLY_BRACE, 0, keyAfterAppendHashTag, 0, OPEN_CURLY_BRACE.length);
            System.arraycopy(originalKey, 0, keyAfterAppendHashTag, OPEN_CURLY_BRACE.length, originalKey.length);
            System.arraycopy(CLOSE_CURLY_BRACE, 0, keyAfterAppendHashTag, OPEN_CURLY_BRACE.length + originalKey.length, CLOSE_CURLY_BRACE.length);
        } else {
            keyAfterAppendHashTag = originalKey;
        }

        byte[] convertedKey = new byte[keyAfterAppendHashTag.length + prefix.length];
        System.arraycopy(prefix, 0, convertedKey, 0, prefix.length);
        System.arraycopy(keyAfterAppendHashTag, 0, convertedKey, prefix.length, keyAfterAppendHashTag.length);
        return convertedKey;
    }

    @Override
    public byte[] reverseConvert(CommandContext commandContext, RedisCommand redisCommand, byte[] convertedKey) {
        if (commandContext.getBid() == null || commandContext.getBgroup() == null || commandContext.getBid() <= 0) {
            return convertedKey;
        }
        byte[] prefix = Utils.stringToBytes(commandContext.getBid() + SEPARATOR_STRING + commandContext.getBgroup() + SEPARATOR_STRING);
        if (convertedKey.length < prefix.length) {
            return convertedKey;
        }
        boolean prefixMatch = true;
        for (int i = 0; i < prefix.length; i++) {
            if (prefix[i] != convertedKey[i]) {
                prefixMatch = false;
                break;
            }
        }
        if (!prefixMatch) {
            return convertedKey;
        }
        byte[] originalKey = new byte[convertedKey.length - prefix.length];
        System.arraycopy(convertedKey, prefix.length, originalKey, 0, originalKey.length);

        if (isOriginalKeyAsHashTag(originalKey)) {
            // remove hash tag
            byte[] keyHasBeenRemoveCurlyBraces = new byte[originalKey.length - OPEN_CURLY_BRACE.length - CLOSE_CURLY_BRACE.length];
            System.arraycopy(originalKey, OPEN_CURLY_BRACE.length, keyHasBeenRemoveCurlyBraces, 0, keyHasBeenRemoveCurlyBraces.length);
            return keyHasBeenRemoveCurlyBraces;
        }
        return originalKey;

    }

    /**
     * @param key key
     * @return true if original key is a hashtag
     */
    private boolean isOriginalKeyAsHashTag(byte[] key) {
        return return key.length >= 2 && key[0] == '{' && key[key.length - 1] == '}';
    }

    /**
     * Check if original key contains curly braces
     *
     * @param key key
     * @return true if original key contains curly braces
     */
    private boolean isOriginalKeyContainHashTag(byte[] key) {
        for (byte b : key) {
            if (b == '{') {
                return true;
            }
        }
        return false;
    }
}

just draft DefaultTenancyNamespaceKeyConverter could be like this:

This solution has only one issue: the key lock and the {lock} will be the same key = 13|tass|{lock}.

maybe we should use different cluster rather than one cluster with different key-prefix

maybe we should use different cluster rather than one cluster with different key-prefix

The main reason we want to use camellia-redis-proxy as redis-proxy is the sharing of a redis resource/ multi-tenancy feature
without it, -50% of feature points
:"((

just draft DefaultTenancyNamespaceKeyConverter could be like this:

This solution has only one issue: the key lock and the {lock} will be the same key = 13|tass|{lock}.
Of course, the lock and the redisson_lock__channel:{lock} will be hashed to the same slot.

if acceptable, you can try it.

You appear to see some issues with this.
let's talk to me, bro

I means, the CustomKeyConverter like that is suitable for your case, but not others, this is reasonable.

I was able to fix this problem more effectively - a better solution while still handling the converter plugin.
I need to test more test cases then I will create PR tomorrow.
: D

repo: netease-im/camellia


text:
Openapi filter

Description
This change filters the OpenApi so that the graphQL schema generates from it results much more slender.

/rebase

/merge

repo: netgroup-polito/CrownLabs


text:
Fix another bug introduced in #671

Description
This PR fixes a bug introduced in #671, which caused the keycloak client to be never initialized.

/deploy-staging

/merge


text:
Functions To Function Proxying Results in Different Path With Netlify Dev vs Netlify Cloud

- Do you want to request a feature or report a bug?
bug
- What is the current behavior?
Netlify Dev and Netlify Production deployments handle the _redirects proxying differently.
- If the current behavior is a bug, please provide the steps to reproduce.
I have a _redirects file with the below route which makes my Netlify Functions available at /api/{function_name}.
/api/* /.netlify/functions/:splat 200

I also have a function setup (code below) which returns its calling path (event.path).
exports.handler = async function(event, context) {
  return {
    statusCode: 200,
    body: event.path
  };
};

If I access /api/test on my deployment (running in the Netlify cloud) I get the response /api/test which is what I would expect. Whether when using Netlify Dev I get the response /.netlify/functions/test.
- What is the expected behavior?
Netlify Dev should act the same as the Netlify cloud and parse the same url. This means Netlify Dev should result in the event.path being set to /api/test when /api/test is requested.
- Local Environment Information
Paste the results of netlify status --verbose here
I don't see relevance but if it is required I can add it.

nice catch!

Was this ever fixed? I'm calling a function from another function and have an ugly workaround in place for local dev / deployment.

authors: nonissue oscartbeaumont sw-yx

repo: netlify/cli