White line around notification banner title

Description of the issue
The new notification banner component's title has a thin white line around it. I've had a quick look and couldn't see any obvious causes but I haven't studied it at any length.
Steps to reproduce the issue
Windows/Chrome

Android/Chrome

Actual vs expected behaviour
Assuming the white line shouldn't be there...
Environment (where applicable)

Operating system: Windows 10
Browser: Chrome
Browser version:  86.0.4240.198
GOV.UK Frontend Version: 3.10.0

And:

Operating system: Android 10 (Google Pixel XL)
Browser: Chrome
Browser version:  86.0.4240.198
GOV.UK Frontend Version: 3.10.0

Aha. It's a UI scaling issue. If I drag Chrome across to my "standard" resolution screen the issue goes away. But when it's on my 4k main screen (With everything scaled to 150%) then the issue arises.
So it sounds like this is a bug in Blink in this scenario, and not an actual issue with govuk-frontend. As mentioned though, it's happening on my Android phone too so this isn't just a niche issue for Windows users with 4K screens.
Not entirely sure how best to tackle it though - might need to just build the component differently? Like maybe set the background of the entire component to blue and then just set the content area to white. Like this:
https://codepen.io/andymantell/pen/yLaBvwM


x/tools/gopls: Error loading workspace folders (expected 1, got 0)

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

$ go version
go version go1.15.7 linux/amd64

Does this issue reproduce with the latest release?
Yes

$ gopls version
golang.org/x/tools/gopls v0.6.5
<EMAIL_ADDRESS>h1:kLt9rD/dWtVdvc8LmdcxagDFih6zxYXREpKSYYZu5KE=

What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/christian/.cache/go-build"
GOENV="/home/christian/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/christian/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/christian/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/lib/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/christian/sandbox/chaudum/golang/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build961008458=/tmp/go-build -gno-record-gcc-switches"

What did you do?

I installed gopls via go get, and configured it via nvim-lspconfig:
  lspconfig.gopls.setup{
    cmd = {
      '/home/christian/go/bin/gopls',
      '-v',
      '-rpc.trace',
      '-logfile=/home/christian/gopls.log',
    };
    settings = {
      gopls = {
        -- experimentalWorkspaceModule = true
        -- expandWorkspaceToModule = true,
        analyses = {
          unusedparams = true,
        },
        staticcheck = true,
        codelenses = {
          gc_details = true,
        }
      },
    }

What did you expect to see?
gopls works without errors.
What did you see instead?
Neovim prints an error when opening the file test.go and language server does not do anything.
LSP[gopls] Error loading workspace folders (expected 1, got 0)
failed to load view for file:///home/christian/sandbox/chaudum/golang: failed to get workspace configuration from client (file:///home/christian/sandbox/chaudum/golang): MethodNotFound

gopls logs
cat gopls.log Output
$ cat gopls.log
$ cat gopls.log
[Trace - 11:11:58.190 AM] Sending request 'initialize - (1)'.
Params: {"rootUri": "file:///home/christian/sandbox/chaudum/golang", "initializationOptions": {}, "workspaceFolders": [{"uri": "file:///home/christian/sandbox/chaudum/golang", "name": "/home/christian/sandbox/chaudum/golang"}], "rootPath": "/home/christian/sandbox/chaudum/golang", "processId": 3179162, "trace": "off", "capabilities": {"window": {"workDoneProgress": true}, "workspace": {"workspaceFolders": true, "configuration": true, "symbol": {"symbolKind": {"valueSet": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}, "dynamicRegistration": false, "hierarchicalWorkspaceSymbolSupport": true}, "applyEdit": true}, "callHierarchy": {"dynamicRegistration": false}, "textDocument": {"implementation": {"linkSupport": true}, "documentSymbol": {"symbolKind": {"valueSet": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}, "dynamicRegistration": false, "hierarchicalDocumentSymbolSupport": true}, "references": {"dynamicRegistration": false}, "signatureHelp": {"signatureInformation": {"documentationFormat": ["markdown", "plaintext"]}, "dynamicRegistration": false}, "rename": {"prepareSupport": true, "dynamicRegistration": false}, "definition": {"linkSupport": true}, "completion": {"completionItem": {"snippetSupport": false, "commitCharactersSupport": false, "preselectSupport": false, "deprecatedSupport": false, "documentationFormat": ["markdown", "plaintext"]}, "contextSupport": false, "dynamicRegistration": false, "completionItemKind": {"valueSet": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]}}, "codeAction": {"codeActionLiteralSupport": {"codeActionKind": {"valueSet": ["", "Empty", "QuickFix", "Refactor", "RefactorExtract", "RefactorInline", "RefactorRewrite", "Source", "SourceOrganizeImports", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports"]}}, "dynamicRegistration": false}, "documentHighlight": {"dynamicRegistration": false}, "hover": {"dynamicRegistration": false, "contentFormat": ["markdown", "plaintext"]}, "synchronization": {"didSave": true, "willSaveWaitUntil": false, "willSave": false, "dynamicRegistration": false}, "declaration": {"linkSupport": true}, "typeDefinition": {"linkSupport": true}}}}
[Trace - 11:11:58.191 AM] Received response 'initialize - (1)' in 0ms.
Result: {"capabilities":{"textDocumentSync":{"openClose":true,"change":2,"save":{}},"completionProvider":{"triggerCharacters":["."]},"hoverProvider":true,"signatureHelpProvider":{"triggerCharacters":["(",","]},"definitionProvider":true,"typeDefinitionProvider":true,"implementationProvider":true,"referencesProvider":true,"documentHighlightProvider":true,"documentSymbolProvider":true,"codeActionProvider":{"codeActionKinds":["quickfix","refactor.extract","refactor.rewrite","source.fixAll","source.organizeImports"]},"codeLensProvider":{},"documentLinkProvider":{},"workspaceSymbolProvider":true,"documentFormattingProvider":true,"documentOnTypeFormattingProvider":{"firstTriggerCharacter":""},"renameProvider":{"prepareProvider":true},"foldingRangeProvider":true,"executeCommandProvider":{"commands":["gopls.generate","gopls.fill_struct","gopls.regenerate_cgo","gopls.test","gopls.tidy","gopls.update_go_sum","gopls.undeclared_name","gopls.go_get_package","gopls.check_upgrades","gopls.add_dependency","gopls.upgrade_dependency","gopls.remove_dependency","gopls.vendor","gopls.extract_variable","gopls.extract_function","gopls.gc_details","gopls.generate_gopls_mod"]},"callHierarchyProvider":true,"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":"workspace/didChangeWorkspaceFolders"}}},"serverInfo":{"name":"gopls","version":"{"path":"golang.org/x/tools/gopls","version":"v0.6.5","sum":"h1:kLt9rD/dWtVdvc8LmdcxagDFih6zxYXREpKSYYZu5KE=","deps":[{"path":"github.com/BurntSushi/toml","version":"v0.3.1","sum":"h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ="},{"path":"github.com/google/go-cmp","version":"v0.5.4","sum":"h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M="},{"path":"github.com/sergi/go-diff","version":"v1.1.0","sum":"h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0="},{"path":"golang.org/x/mod","version":"v0.4.0","sum":"h1:8pl+sMODzuvGJkmj2W4kZihvVb5mKm8pB/X44PIQHv8="},{"path":"golang.org/x/sync","version":"v0.0.0-20201020160332-67f06af15bc9","sum":"h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck="},{"path":"golang.org/x/sys","version":"v0.0.0-20210119212857-b64e53b001e4","sum":"h1:myAQVi0cGEoqQVR5POX+8RR2mrocKqNN1hmeMqhX27k="},{"path":"golang.org/x/tools","version":"v0.1.1-0.20210201201750-4d4ee958a9b7","sum":"h1:/wdPW261t381NDQd8TBo63/FyvACfLICwtH8wMRoHJQ="},{"path":"golang.org/x/xerrors","version":"v0.0.0-20200804184101-5ec99f83aff1","sum":"h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE="},{"path":"honnef.co/go/tools","version":"v0.0.1-2020.1.6","sum":"h1:W18jzjh8mfPez+AwGLxmOImucz/IFjpNlrKVnaj2YVc="},{"path":"mvdan.cc/gofumpt","version":"v0.1.0","sum":"h1:hsVv+Y9UsZ/mFZTxJZuHVI6shSQCtzZ11h1JEFPAZLw="},{"path":"mvdan.cc/xurls/v2","version":"v2.2.0","sum":"h1:NSZPykBXJFCetGZykLAxaL6SIpvbVy/UFEniIfHAa8A="}]}"}}
[Trace - 11:11:58.191 AM] Sending notification 'initialized'.
Params: {}
[Trace - 11:11:58.191 AM] Sending notification 'workspace/didChangeConfiguration'.
Params: {"settings": {"gopls": {"expandWorkspaceToModule": false, "staticcheck": true, "analyses": {"unusedparams": true}, "codelenses": {"gc_details": true}, "experimentalWorkspaceModule": false}}}
[Trace - 11:11:58.192 AM] Sending notification 'textDocument/didOpen'.
Params: {"textDocument": {"uri": "file:///home/christian/sandbox/chaudum/golang/test.go", "version": 0, "languageId": "go", "text": "package main\n\nimport {\n    "fmt"\n}\n\nfunc main() {\n    fmt.Println("Hello gopls!")\n}\n"}}
[Trace - 11:11:58.192 AM] Received request 'window/workDoneProgress/create - (1)'.
Params: {"token":"5577006791947779410"}
[Error - Sent] 11:11:58.192 AM #1 MethodNotFound
[Trace - 11:11:58.192 AM] Received request 'workspace/configuration - (2)'.
Params: {"items":[{"scopeUri":"file:///home/christian/sandbox/chaudum/golang","section":"gopls"}]}
[Trace - 11:11:58.192 AM] Received notification 'window/logMessage'.
Params: {"type":1,"message":"2021/02/05 11:11:58 starting work for Setting up workspace: MethodNotFound\n"}
[Error - Sent] 11:11:58.192 AM #2 MethodNotFound
[Trace - 11:11:58.192 AM] Received notification 'window/showMessage'.
Params: {"type":1,"message":"Error loading workspace folders (expected 1, got 0)\nfailed to load view for file:///home/christian/sandbox/chaudum/golang: failed to get workspace configuration from client (file:///home/christian/sandbox/chaudum/golang): MethodNotFound\n"}
[Trace - 11:11:58.193 AM] Received request 'workspace/configuration - (3)'.
Params: {"items":[{"section":"gopls"}]}
[Error - Sent] 11:11:59.737 AM #3 MethodNotFound
[Trace - 11:11:59.738 AM] Received request 'window/workDoneProgress/create - (4)'.
Params: {"token":"8674665223082153551"}
[Error - Sent] 11:11:59.740 AM #4 MethodNotFound
[Trace - 11:11:59.740 AM] Received notification 'window/logMessage'.
Params: {"type":1,"message":"2021/02/05 11:11:59 starting work for Setting up workspace: MethodNotFound\n"}
[Trace - 11:11:59.740 AM] Received request 'workspace/configuration - (5)'.
Params: {"items":[{"scopeUri":"file:///home/christian/sandbox/chaudum/golang","section":"gopls"}]}
[Error - Sent] 11:11:59.743 AM #5 MethodNotFound
[Trace - 11:11:59.743 AM] Received notification 'window/showMessage'.
Params: {"type":1,"message":"Error loading workspace folders (expected 1, got 0)\nfailed to load view for file:///home/christian/sandbox/chaudum/golang: failed to get workspace configuration from client (file:///home/christian/sandbox/chaudum/golang): MethodNotFound\n"}
[Trace - 11:12:04.995 AM] Sending notification 'textDocument/didSave'.
Params: {"textDocument": {"uri": "file:///home/christian/sandbox/chaudum/golang/test.go"}}
[Trace - 11:12:04.995 AM] Sending request 'shutdown - (2)'.
Params:
[Trace - 11:12:04.996 AM] Received response 'shutdown - (2)' in 0ms.
Result: null
[Trace - 11:12:04.996 AM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2021/02/05 11:12:04 Shutdown session\n\tshutdown_session=1\n"}
[Trace - 11:12:04.997 AM] Sending notification 'exit'.
Params:

It looks like this Vim client may not support the workspace/configuration request, which is surprising because it's been a part of the protocol for a long time. I think it makes more sense to report this problem to the Vim client, as I don't think this is a gopls bug.

Hi @stamblerre Thanks for the quick reply. Installing the latest Neovim nightly did really solve the problem (probably because of https://github.com/neovim/neovim/commit/48caf1df8581a9a9da9072f901411b918333952d).


feature request: ability to run commands in .nvmrc

I would like the ability to automatically do things immediately following nvm use for instance
export NODE_PATH=$(npm root -g)

Why? NODE_PATH should never ever be used anyways; it's severely deprecated.
Do you have another use case?

Hmm, how do you recommend enabling require to pull in a globally installed package (eg using the api of npm-remote-ls)?
I'll have to contemplate other use cases....

I don’t; that’s not supposed to be possible, and is a category error. Things you require are dependencies, and thus must be listed in package.json.

You can of course also use npm link, but having a normal dep is much better.

I fear we are venturing into the realm of philosophical differences now, but I certainly wouldn't make an analysis tool a dependency, and probably wouldn't even make it a dev dependency.

The entire industry would make it a dev dependency.
Either way, NODE-PATH is severely deprecated and should never be used. If you need to require something, it must be local.
It doesn’t sound like there’s a non-harmful use case here, so I’ll close it.


Fix bug in addons/graphql in reIndentQuery

Issue:
Creating a multi line graphiql query causes storybook to error out in version 3. This is because it tries to run join on a string rather than an array.
What I did
Move the bracket so join is always appended to an array rather than a string.
How to test
Try creating a story with a multi-line graphiql query and loading it.

Thank you @jamsea ! I don't know a lot of users of this addon, if you're using it please let us know how, and what you'd like to see improved?

@ndelangen thanks for merging. We're using GraphQL for our new projects at the NFL and we're using this add on for internal documentation. We're already using story book as internal documentation for all of our react components so being able to integrate GraphQL examples in the same system was a life saver.
The only thing I wasn't able to figure out was adding an example GraphQL variable. Is there a way to do that currently or is that a new feature that would need to be developed?

Well I know it's using https://github.com/graphql/graphiql and supports it, but maybe it needs an update?

@jamsea do you happen to have any public storybooks from NFL you can share? i'm documenting examples here (placeholder, will be redesigned): https://storybook.js.org/examples/


make error

Hi
i run:
make -C infer
and happen error:
make: *** No targets specified and no makefile found.  Stop.
My pc is mac os 10.11.1 and xcode7.

please help me.

The way to build infer has changed; now you need to run
./autogen.sh
./configure
make

@jvillard
why not update doc?
i download from https://github.com/facebook/infer/releases/tag/v0.4.0, and build successfully!

hi,
make -C infer
make: *** No targets specified and no makefile found.  Stop.
then run:
./autogen.sh
git repository detected, updating submodule... done
generating acinclude.m4... done
generating ./configure script..../autogen.sh: line 29: autoreconf: command not found
./configure
zsh: no such file or directory: ./configure
My pc is mac os 10.10.5 and xcode7.2

@Hellengo you can use brew install infer to install infer on mac os.
If you want to compile infer yourself, you need to upgrade your version of ocaml. Assuming you use opam:
opam switch 4.02.3
eval $(opam config env)
opam pin add --yes --no-action infer .
opam install --deps-only infer
./build-infer.sh

@jvillard  thx，use brew install infer solve my problem, cool


Snapshot Testing Guide

Create a standalone snapshot testing guide, based on the excellent release blog post.

Can you say more explicitly what jest -u does? Like just that you run jest with -u and it updates all the snapshots to their current behavior. (Is that correct? Hm.)
Should this guide go after the "testing react apps" and "testing react native apps" guides?

This looks just fantastic, @hramos. A separate guide for this makes it stand out so much more.
A couple of suggestions (can be done individually):

Shall we document that snapshots can be used with any serializable value? Common examples are snapshotting CLI output (see integration_tests/__tests__) or API responses.
Snapshots must not include platform specific or other non-deterministic data. We could explain that if you are trying to snapshot a component that uses Date.now it can be mocked by doing something like Date.now = jest.fn(() => 13232342)  to make the value consistent.

I also think instead of linking to the blog post only, we should maybe also link to this blog post: http://benmccormick.org/2016/09/19/testing-with-jest-snapshots-first-impressions/ – it's really good and gives people a sense for when they should use it.

Yeah, I really like the idea of documenting that this can be used with any serializable value. It's great that we have an actual example of this in action in integration_tests.
Separating this into its own guide allows us to be verbose. I'll add the above, as well as notes on dealing with platforms and so on, and dedicate more space to --update-snapshots.

Current coverage is 89.23% (diff: 100%)

Merging #2406 into new-docs will not change coverage

@@           new-docs      #2406   diff @@
==========================================
  Files            39         39
  Lines          1486       1486
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits           1326       1326
  Misses          160        160
  Partials          0          0

Powered by Codecov. Last update d83e876...e0f7122

Just checked: jest -u will update all failed snapshots to their current behavior. So, this should only be used when we know each and every failed snapshot test is due to an intentional change.

Updated with feedback. I feel like the "additional uses" section can be expanded further in a subsequent PR - I simply linked to the actual integration test that demonstrates capturing the CLI's output - but I want to move on to updating other docs before coming back to this.

Going to merge this in to start tidying everything up. If there's any additional feedback let me know and I can address in a new PR.


Change behavior when exception occurs in onNext

Right now if there is an exception in the onNext handler, it is possible that errors and exceptions get swallowed inside the library (or a promise from some other library).
The plan is to catch these and send them down the onError handler so that the user can see the problem.
Also, a default onError handler should be added that will log an error with the error information. This will help if users do not set the onError handler.

Here is a discussion about RxJS, which suffers from the same issue:
https://github.com/ReactiveX/rxjs/issues/2813


type parameter can not infer the shared underlying type (unsure if bug or feature request)

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

$ go version
go version go1.18 darwin/arm64

Does this issue reproduce with the latest release?
Yes
What did you do?
https://go.dev/play/p/TR_hVFrldXH
What did you expect to see?
I expect the compiler to infer that A and B have the same underlying type.
This expectation comes from being able to pass an A{}, and a map[string]int{} and having the underlying type correctly inferred, and from being able to specify the underlying type manually to overcome the failed inference.
What did you see instead?
I get a compile error type B of B{} does not match inferred type A for M

m1, m2 M means you want the same type for both.
func Equal2[K, V comparable](m1, m2 map[K]V) bool {
	return true
}

Unlike many projects, the Go project does not use GitHub Issues for general discussion or asking questions. GitHub Issues are used for tracking bugs and proposals only.
For questions please refer to https://github.com/golang/go/wiki/Questions


IndexError: list index out of range

Hi,
Thank you so much for providing such a nice pipeline! I'm now running the code in Google Colab. AE_run.py and SNF.py were successfully done but GCN_run.py has failed with the following error message.
Traceback (most recent call last):
  File "/content/MoGCN/GCN_run.py", line 207, in <module>
    name = file.split('\\')[1]
IndexError: list index out of range

My current directory is "/content/MoGCN/". Is there any solution?
Best,
Rio

@shibataryohei Same error, did you solve it?

@Mohamedema Not yet. I've also sent an email to the author but not received a response. We should contact to the corresponding author.

It means the list after splitting does not have index "1". You can print the “file”in line 207 and check the path separator. Since this is a Windows project, the path separator used is ''. Changing the separator of line 207 to ‘/’ may be effective.

It means the list after splitting does not have index "1". You can print the “file”in line 207 and check the path separator. Since this is a Windows project, the path separator used is ''. Changing the separator of line 207 to ‘/’ may be effective.

It means the list after splitting does not have index "1". You can print the “file”in line 207 and check the path separator. Since this is a Windows project, the path separator used is '\'. Changing the separator of line 207 to ‘/’ may be effective.

@Lifoof
Thx for replying. After replacing '\' --> ’/’ in line 207, I got new error messages as below.
File "/content/MoGCN/GCN_run.py", line 208, in <module>
    epoch_nb = int(name.split('.')[0])
ValueError: invalid literal for int() with base 10: 'GCN'

Based on my understanding, the code in lines 204–211 should be revised into the following.
            #reserve the best model, delete other models
            files = glob.glob('model/GCN/*.pkl')
            for file in files:
                name = file.split('/')[2]
                epoch_nb = int(name.split('.')[0])
                #print(file, name, epoch_nb)
                if epoch_nb != best_epoch:
                    os.remove(file)

Then, GCN_run.py has seemed to run successfully. Could you please verify if the results obtained are truly correct?
Thank you,
Ryohei

I think the modifications you made are correct.
This part of the code is designed to predict the samples in test_sample.csv. To obtain the "prediction data" for all samples, maybe you can try to modify the parameters(such as ‘idx’) of predict() in line 216. The above is my idea, and I have not tried it myself yet.

@Lifoof Thank you so much! I'll try that way!


Clicking OneDrive tab puts marker on Local Drive

Describe the bug
When clicking on the OneDrive location on the sidebar, it opens OneDrive in the file viewer but the blue marker that indicated which folder is open on the sidebar goes onto Local Drive (C:). When clicking on the OneDrive location again, the marker correctly goes to OneDrive.
To Reproduce
Steps to reproduce the behaviour:

Select a random folder
Click on OneDrive
See that the open location appears to be Local Drive (C:) but OneDrive folders are showing
Click on OneDrive again
See that the open location correctly appears to be OneDrive

Expected behaviour
When clicking on the OneDrive icon the first time, the marker goes to OneDrive.
Screenshots
https://screenrec.com/share/s7ijSTL4Yz
Screen recording ^
Desktop

OS Version: Windows 10 2004 19041.172
App version: v0.7.5

Additional context
This problem always occurs while using the app

Sometimes event two markers appear on the sidebar. It occurs randomly when navigating between tabs, at least I didn't find a certain way to reproduce this.

This issue has been resolved with #816.


CodeMirror update needed (incorrect handling of JS spread syntax in object literals)

Description
As it turns out issue #13590 was not properly fixed by codemirror/CodeMirror#4785. A fix for that fix was created thanks to codemirror/CodeMirror#5036 and released in CodeMirror 0.31.0.
Opening this issue to make sure CodeMirror is updated before 1.13 is released and to help anyone who also has this problem.
Versions
Brackets 1.12 build 1.12.0-17621

Thanks for the heads up @opl- !

@opl- Thanks for highlighting. I have added this task to the 1.13 release plan activities.


bzz-link: add support for ens subdomains

@agazso refresh my memory please. If I remember correctly we did not support ENS subdomains because it is not possible to get wildercard sub-subdomain certificate for HTTPS? Or there was something related to that, is that relevant here?

@agazso refresh my memory please. If I remember correctly we did not support ENS subdomains because it is not possible to get wildercard sub-subdomain certificate for HTTPS? Or there was something related to that, is that relevant here?

Sorry to barge in. If you know the first level domain name then you can get a working certificate for subdomains.
Lets I want to host my site on swarm i setup my own bzz link service to swarm ie. Web2.org    so my swarm site would be  accessible via ens_name.web2.org   and because i know this i can get a *.ens_name.web2.org cert for the subdomains

Sorry to barge in. If you know the first level domain name then you can get a working certificate for subdomains. Lets I want to host my site on swarm i setup my own bzz link service to swarm ie. Web2.org so my swarm site would be accessible via ens_name.web2.org and because i know this i can get a *.ens_name.web2.org cert for the subdomains

No sorry needed 😉 So if I understand your use-case correctly, you would want to host ENS subdomains for fixed ENS name right? What do you expect to happen if a user would enter some other ENS name like other_ens_name.web2.org? Would you have directed to the gateway-proxy only the DNS subdomain entry for ens_name and with that ensuring that only the desired ENS name is used?

@AuHau yes. My use case is hosting a private setup not a public bzz.link you are used to :). And yes therefore other_ens_name wouldnt even be resolved

closing in favor of cleaner: https://github.com/ethersphere/gateway-proxy/pull/328


licensing related  stuff

Hi,
while packaging fantasma for Debian,
I stumbled over two minor licensing related things.

The glyphs file does not have fsType [1] set,
what makes fontmake default to setting it to "edit only"
when generating the otf/ttf, what contradicts with the license choice
of GPL-3 + font exception
and makes our rather picky linting tool complaining :)
Attached a patch [2] to set the value to "installable embedding".

[1] https://docs.microsoft.com/en-us/typography/opentype/spec/os2#fstype
[2] (https://github.com/froyotam/Fantasma/files/7964601/0001-Explicitly-setting-fsType-value-to-0-installable-emb.txt)

The fonts exception to GPL-3 was added after release 1.0 -
would it be possible to make another release
that includes the font exception?

Hello,
I am considering changing the license to CC0. Would that work for you?
Best,
Froyo
On Sat, Jan 29, 2022 at 12:37 PM urbec-guest @.***>
wrote:

Hi,
while packaging fantasma for Debian,
I stumbled over two minor licensing related things.

The glyphs file does not have fsType [1] set,
what makes fontmake default to setting it to "edit only"
when generating the otf/ttf, what contradicts with the license choice
of GPL-3 + font exception
and makes our rather picky linting tool complaining :)
Attached a patch [2] to set the value to "installable embedding".

[1] https://docs.microsoft.com/en-us/typography/opentype/spec/os2#fstype
[2] (
https://github.com/froyotam/Fantasma/files/7964601/0001-Explicitly-setting-fsType-value-to-0-installable-emb.txt
)

The fonts exception to GPL-3 was added after release 1.0 -
would it be possible to make another release
that includes the font exception?

—
Reply to this email directly, view it on GitHub
https://github.com/froyotam/Fantasma/issues/1, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOBDNVK66AWPK633R6445SDUYRF2NANCNFSM5NDJW3WQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

--
Froyo Tam
froyotam.info
818.671.8925

Hello, I am considering changing the license to CC0.
Would that work for you? Best, Froyo

As GPL-3+FE would have already worked well
and CC0 is even far more permissive, yes that would work indeed :)
(though I assume it would not affect the posters as for those their Authors would need to agree to the change, but I did not put those into the package anyway)
If you would consider making a release with either the new license
(or the font exception if you decide to stay with GPL)
I would just wait for that one.
Thanks for your reply :)

Just had a convo with the people who made the posters as well,
They are all fine with me changing the license to CC0.
Once I change the license.txt, what other steps would I need to take?
Best,
Froyo
On Sat, Jan 29, 2022 at 1:14 PM urbec-guest @.***>
wrote:

Hello, I am considering changing the license to CC0.
Would that work for you? Best, Froyo
As GPL-3+FE would have already worked well
and CC0 is even far more permissive, yes that would work indeed :)
(though I assume it would not affect the posters as for those their
Authors would need to agree to the change, but I did not put those into the
package anyway)
If you would consider making a release with either the new license
(or the font exception if you decide to stay with GPL)
I would just wait for that one.
Thanks for your reply :)
—
Reply to this email directly, view it on GitHub
https://github.com/froyotam/Fantasma/issues/1#issuecomment-1024987547,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOBDNVLFJX4CYPN3NW625W3UYRKDFANCNFSM5NDJW3WQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you commented.Message ID:
@.***>

--
Froyo Tam
froyotam.info
818.671.8925

Once I change the license.txt, what other steps would I need to take?
Basically just add a second release tag to git (the current one is 1.0
so probably 2.0 or 1.1)
(The patch I attached basically just makes it explicit, that nothing about embedding is forbidden, though of course it's just an offer :))

Just updated the release to 1.1.
https://github.com/froyotam/Fantasma/tree/1.1
Let me know if there's anything else I would need to do!
Best,
Froyo
On Sat, Jan 29, 2022 at 1:38 PM urbec-guest @.***>
wrote:

Once I change the license.txt, what other steps would I need to take?
Basically just add a second release tag to git (the current one is 1.0
so probably 2.0 or 1.1)
(The patch I attached basically just makes it explicit, that nothing about
embedding is forbidden, though of course it's just an offer :))
—
Reply to this email directly, view it on GitHub
https://github.com/froyotam/Fantasma/issues/1#issuecomment-1024991172,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOBDNVIH3JR4XG546AJ7RR3UYRM7FANCNFSM5NDJW3WQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you commented.Message ID:
@.***>

--
Froyo Tam
froyotam.info
818.671.8925

Let me know if there's anything else I would need to do!
No, all is fine.

Thanks :)

Awesome!
Glad the licensing issue is resolved. Marking the issue as closed.
Best,
Froyo
On Sat, Jan 29, 2022 at 2:16 PM urbec-guest @.***>
wrote:

Let me know if there's anything else I would need to do!
No, all is fine.
Thanks :)
—
Reply to this email directly, view it on GitHub
https://github.com/froyotam/Fantasma/issues/1#issuecomment-1024996775,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOBDNVIAGXZDNJCEPTWR5QLUYRRKDANCNFSM5NDJW3WQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you commented.Message ID:
@.***>

--
Froyo Tam
froyotam.info
818.671.8925


Coveralls coverage badge

We :heart: testable code, so adding coveralls will make it easier to track our code quality.

[x] Write tests for code written in #1
[x] Add JaCoCo support
[x] Add Coveralls plugin
[x] Integrate in Travis
[x] Add the badge to readme

Enable for PRs in the repo [Coveralls is not listed as a service]

There seems to be an issue in lemurheavy/coveralls-public#522 because of which our repo's stats aren't being taken up by coveralls. Even if we merge #9 we should wait until this issue is resolved before we close this issue.


Is there anyway to build this example in visual studio 2015?

Hello guys, I have two questions.
First of all, is there anyway to build this example in visual studio 2015? I downloaded the example and find build folder and executed sln files. However there is only vs2005 and vs2010 so I'm curious if there is a vs2015 version for this example.
Secondly, if there is no way to compile and build in vs2015, I'm going to uninstall vs2015 and install vs2010. I would like to know detailed manual for compiling / building examples in vs2010. (Like setting linking or something)
Give me a hand guys!

I create a new project with vs2017 and move code from here to there . Finally I success XD

Thx man, I really appreciate XD
2017-08-13 21:26 GMT+09:00 xiangwei71<EMAIL_ADDRESS>
I create a new project with vs2017 and move code from here to there .
Finally I success XD
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/idmillington/cyclone-physics/issues/44#issuecomment-322039104,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AXfRwCvL6edB_aLOpF41e-w3nRFIjl3nks5sXutvgaJpZM4MiCUD
.

I create a new project with vs2017 and move code from here to there . Finally I success XD

can you upload to github?  appreciated!

I create a new project with vs2017 and move code from here to there . Finally I success XD

can you upload to github? appreciated!

I'd love to . But I already do not know how I could do it. ><


Allow TMS-served tiles to be displayed on the map

This PR makes it possible to display map layers that are furnished by a remote service with a TMS-like web interface.  With this change, any data-handling back end that implements a simple protocol may display map data in the GeoNotebook web interface.
[Note: What we are calling "TMS" may not adhere strictly to the definition of a TMS server.  We'd like to name this interface in a way that is consistent with the community's conventions, such that we don't create confusion further down the line.  We'll take recommendations regarding the proper nomenclature to use.]
The interface for the TMS server assumes a standard power-of-two pyramid established over the global extent using a WebMercator projection.  At zoom level n, there are 2^n partitions of the extent along each axis, indexed from 0 to 2^n-1, with the cartesian product of the two axes' partitions giving the space of (x, y) keys for which a tile may exist.  [Note: At the moment, we index using the Google/Bing/OSM convention where (0, 0) corresponds to the extreme northwest tile.  If necessary, one could accommodate a flag to indicate that the tiles are being served in accordance with the TMS standard of an origin in the extreme southwest.]
To add a TMS-provided layer, one needs to provide an object that adheres to the following simple interface:
class TMS:
    def bind(self, host, port=None):
        # binds a service to a host at a specified port (random port if port=None)
        # subsequent calls to bind should fail until unbind is called
    def unbind(self):
        # stops the tile server from listening for further requests
        # subsequent calls to bind to a new host/port may restart the service
    @property
    def host(self):
        # the name of the host listening for tile requests
    @property
    def port(self):
        # returns the port number the service is listening to requests on
    @property
    def url_pattern(self):
        # returns a string template of the URL tile requests can be made on
        # the special tokens {z}, {x}, and {y} should be used as placeholders
        # for the zoom level and x and y coordinates, respectively

Objects that are duck-typed with this interface (provide these methods/properties) may be wrapped in a TMSRasterData (from geonotebook.wrappers) and passed to M.add_layer as per usual. The TMS server will be bound to a port at the time of creation; removing a TMS-backed layer will unbind the service.  [Note: I have not implemented special handling of the standard styling options (e.g., opacity) and have no expectation that they will have any effect.  A subsequent PR could address this.]

@jpolchlo Thanks! I'll start looking at this today/tomorrow

As far as testing is concerned, we have been using locationtech-labs/geopyspark to produce TMS servers.  We can work together to build a test notebook if you need.

@jpolchlo this is great and thank you for the contribution.

@jpolchlo still trying to wrap my head around this a little do you have an example of the kind of object that TMSRasterData is supposed to wrap?   Specifically it seems like the primary motivation for the bind/unbind functionality is handling randomly assigned port values?
If you could give me a better sense of what goes on inside the unbind function that TMSRasterData I think it would help me understand a little better.  If i'm not mistaken needing to call unbind() is what motivates the introduction of disgorge and the _server_state variable passing through kernel.py/layer.py?

Yes, disgorge and _server_state are there to support clean shutdown of the TMS servers—not specifically to handle the random port assignment, though.  Conceivably, the vis server could pass through a port assignment.  It also seemed like a reasonable way to introduce state to the vis servers, in case that is useful in the future.  I half expect that there's something I didn't consider in the system design that makes this dangerous.
The TMS object that I'm working with defines unbind() as in https://github.com/locationtech-labs/geopyspark/blob/master/geopyspark/geotrellis/tms.py#L176-L184, which calls out to https://github.com/locationtech-labs/geopyspark/blob/master/geopyspark-backend/geotrellis/src/main/scala/geopyspark/geotrellis/tms/Server.scala#L44-L48 (which in turn calls to the Scala code in that directory).  It is entirely intended to shut down the server, free ports, and generally clean up after itself.  In this case, there are processes in the background doing request aggregation so that we make fewer calls out to Spark that need to be terminated.

This is a great idea; I hadn't noticed the option of creating a new reader type, but it's fairly clear that it's the right thing to do.  It may also resolve some of the questions below regarding bind and the TMS API.  If we were to use RasterData('http://localhost:<port>/.../{z}/{x}/{y}.png') (though the argument for a tms schema is readily apparent), then it removes the responsibility from the reader class to start up the TMS endpoint, as it obviously needs to exist before that call can be made.  In this case, using GeoPySpark constructs, adding a TMS layer will take the following form
tms = TMS.build(...)
tms.bind()
M.add_layer(RasterData(tms.url_pattern), display_option_1, display_option_2)

while removing it will just require M.remove_layer to be followed by tms.unbind().
The problem with such a solution is that TMS objects can be lost easily in this manner, and the ports continue to run backed by data with references that can never be released.  It's easy to suggest that the user needs to take ultimate responsibility, but in an interactive environment with rapid iteration, it should be expected that, unless it's rolled into the reader, these objects will be mishandled. That's the motivation for the ingest/disgorge pairing managing the bind/unbind process.  So, for sake of ease of use, and in the interest of reducing the bookkeeping burden from the user, figuring out how to make RasterData(tms) into valid syntax is worthwhile.  If we must rely on a string argument so that the schema can be extracted and routed through the entry point mechanism, then some significant ease of use will be lost.  It already seems as if VRTs get some special treatment inside the Ktile vis server, so figuring out how special display objects can generalize would be worthwhile.  I'd love to get your thoughts on this.
I think in either case, documentation of the reader interface would be of use.
And, yes, it seems that if I move over to using the appropriate reader structure, then we will remove the need for state to be carried, and that change can be reverted.


NASA is working on a similar extension (S3A+)

At the ESIP2022 meeting, I learned that NASA is developing a new S3 Jupyterlab Extension with the following features

S3A+ or S3 Actions Plus is a Jupyterlab extension that allow you to use a ui on your Notebook to:

Show a list of available datasets in your notebook )for now we only support datasets in AWS buckets)
Connect to any S3 bucket or key that you have access to (By connect I mean adding them to the list of buckets that you can browse and do S3A+ actions)
Browse and connect to Public DataSets (We support AWS Public Datasets currently)
Right click on buckets or dataset and mount them to your file-system on the notebook with Goofy's
Right click on a dataset and add an event driven action (event likes new file upload to the dataset, file deleted, etc. For instance turn a zarr dataset into a COG whenever a new zarr is uploaded)
We are are realizing the first version of this Jlab extension soon and are hoping to make it Open Source ASAP

Tagging @rezuma for potential collaboration points with this project.

@rabernat We built a complete new extension that fits better with our requirements
The goal is to make it open source, soon, hopefully before the end of January 23
The first version would allow you to:

Browse and upload/download files and "folders" from buckets that are accessible from the server where the Notebook is running. For example. Buckets on the same AWS account where the notebook is, buckets from other AWS accounts (Cross account access)
It would also be possible to access public datasets from the different cloud providers AWS, GCP and Azure
There would be a favourites tab where you can add most frequently access datasets
....
You can see a video example here
https://www.youtube.com/watch?v=Lo7P5wvcOeg

We welcome feedback and are willing to demo this jlab extensions and others that are part of the Open Science Studio platform (API Baker, AI PLatform Support, NLP for each notebooks, etc)
Open Science Studio platform and all its extensions will be open source too.
You can reach me at<EMAIL_ADDRESS>

hello @rabernat @rezuma looking forward for this release. Good luck with it. :)

@octavd @rabernat We made the extension open source
bexplorer (to interact with AWS S3 buckets, public datasets and cross account buckets, in the future we hope to add support for Azure Blob and Google bucket)
https://github.com/Navteca/jupyterlab-bxplorer
We also made open source Pasarela, a server side extension that allow to launch a notebook from any external web app.
It creates an API on the Jhub server, and you can pass a full notebook to be opened or just some specific code that will get open in the first cell.
https://github.com/Navteca/oss-pasarela


The WhoAmI() request returns a html document containing a generic error message, and the event viewer had the following logs, seems like it fails to authenticate.
Also, i needed to provide my username in a domain\username format, otherwise it keeps giving 401: Unauthorized.. Although I know this is something to do with Windows Server 2012 R2, this doesn't happen on Windows Server 2012.
Fault bucket , type 0
Event Name: CRMmanaged2
Response: Not available
Cab Id: 0

Problem signature:
P1: <IP_ADDRESS>9
P2: w3wp
P3: Microsoft.Crm.Application.Pages
P4: UriFormatException
P5: UpdateRedirectingEventArgsNonPathBasedUrlWithoutLiveId
P6: 1D
P7:
P8:
P9:
P10:

Exception information:
    Exception type: UriFormatException
    Exception message: Invalid URI: The hostname could not be parsed.
   at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)
   at System.UriBuilder..ctor(String uri)
   at Microsoft.Crm.Authentication.Claims.CrmFederatedAuthenticationModule.UpdateRedirectingEventArgsNonPathBasedUrlWithoutLiveId(RedirectLocation redirectLocation, RedirectingToIdentityProviderEventArgs e)
   at Microsoft.Crm.Authentication.Claims.CrmFederatedAuthenticationModule.SendToIdentityProvider(RedirectLocation redirectLocation)
   at Microsoft.Crm.Authentication.Claims.CrmFederatedAuthenticationModule.RedirectToIdentityProvider(String uniqueId, String returnUrl, Boolean persist)
   at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Request information:
    Request URL: https://orgname.domain.com:444/api/data/v8.1/WhoAmI()
    Request path: /api/data/v8.1/WhoAmI()
    User host address: xxx.xxx.xxx.xxx
    User:
    Is authenticated: False
    Authentication Type:
    Thread account name: DOMAIN\CRMSERVICE

Thread information:
    Thread ID: 229
    Thread account name: DOMAIN\CRMSERVICE
    Is impersonating: True

Just want to make sure: Are you referring to the WPF application or the JS code generated by this application?
If it is the application:
If it isn't too much trouble, can I ask you to try one of the samples under Web API Samples (C#)? These use the same authentication helpers. If you get the same error I can work with the author of those helpers to fix it.

Hello Jim,
Before all, I'm sorry for the mistake, just realized I've opened the issue in the wrong repository, this belongs to CRMWebAPILoginControl.
I've tried to run the Web API Basic Operations Sample (C#) with the same connection information, but kept getting 401: Unauthorized responses.
I've simply tried to access https://orgname.domain.com:444/api/data/v8.1/WhoAmI() using a browser, and kept getting 401 challenges, even though i provided the right credentials. However, once i've logged in to the CRM application, browsing to the 'https://orgname.domain.com:444/api/data/v8.1/WhoAmI()' URL started working.
I went to the documentation to check if there is something specific to do for authenticating to an Internet-facing on-premises deployment; turns out i need to implement OAuth and have my application registered in the Azure Active Directory Authentication Library.

With Microsoft Dynamics CRM Online or internet facing deployments
When you use the Web API for CRM Online or an on-premises Internet-facing deployment (IFD) you must use OAuth as described in Connect to Microsoft Dynamics CRM web services using OAuth.

Before you can use OAuth authentication to connect with the CRM web services, your application must first be registered with Microsoft Azure Active Directory. Azure Active Directory is used to verify that your application is permitted access to the business data stored in a CRM tenant.

Therefore I'm closing this issue, thank you very much for pointing me back to the samples.

Thanks. I need to update the docs to call out that you must register the app for IFD deployments as well as for CRM Online.


Copyable handles are probably unsound

The fact that you can close a handle and then keep using it (since e.g. RegCloseKey takes self by value, but HANDLE impls Copy so you can keep using the value afterwards anyway) seems unsound. Immediate reuse generally results in the invalid handle error being reported, but if you wait and reuse it later after other code has run, the handle value might match a newly opened handle. That new handle would definitely point at the wrong thing (e.g. a registry key handle opened for one key, when reused, would now modify a totally different key), and might even be the wrong type (e.g. a registry key handle might now refer to a file instead). This seems like it should probably be considered to violate memory safety.

Making the handles non-Copy wouldn't fix this issue either. An user could close a handle and still keep it indefinitely, then call a function with this handle later – pontentially causing the behavior you described. That's a rather hard problem to solve.
One solution I can think of is to make the function calls operate by reference (instead of by value), and "closing" functions would then set the handle to null. Subsequent calls would then return an ERROR_INVALID_HANDLE, which could be properly caught as ordinary errors.
What do you think?

What would be most intuitive to me is that the handles are non-Copy, non-Clone, do not have an explicit close function, and automatically close on drop. Is there a reason that wouldn’t work?
The iterator used for enumerating values would have to borrow the handle, I assume. That seems sensible to me, to ensure the handle outlives the iterator.

This would be the perfect solution – in fact, my very first implementation tried to follow this concept. The problem is that sometimes you should not close the handles.
From the top of my head:

basically all HWND functions, like CreateWindowEx and GetParent;

the messy GDI objects, whose handles are sometimes returned again by SelectObject;

the HIMAGELIST, which is created and, if passed to a ListView with LVS_SHAREIMAGELISTS style, should not be deleted (the ListView takes ownership of it).

After facing many weird situations, I eventually gave up the idea.
However...
Rethinking this solution, I could simply segregate the handles types. Some of them would be returned wrapped in to a smart pointer implementing Deref, and they would implement Drop to call the close functions, thus removing the manual close altogether. This would work like a glove for cases like HKEY and HFILE.
The problem with this approach is that I would have two "categories" of handles, which would be potentially confusing.
Another idea is having high-level structs, like File does over HFILE, to properly work on the resource cleanup. In this specific case, a high-level Registry struct.

Hm, yes, there is some complexity there. Some handles are pretty simple, but others not so much.
For the HGDIOBJ case, I thought of two ideas.
Option 1
SelectObject takes an HGDIOBJ by value and std::mem::forgets it. It then takes the return value of the raw function call, i.e. the previously selected value, wraps it in a new handle wrapper, and returns it. This is pretty easy to understand, but it is somewhat limited: you can’t keep an HGDIOBJ in a read-only place (e.g. a struct to which you have only a shared reference) and still be able to select it into a DC, and it also means you can’t select the same object into two DCs at the same time.
Option 2
Instead of SelectObject, you could do a scope-bound thing. So the DC type would have something like a with_selected method, which would be used something like this:
let my_brush = …;
let my_dc = …;
// At this time, the default brush is selected.
my_dc.with_selected(&my_brush, || {
  // Inside this lambda, my_brush is selected.
  // It is taken by shared reference, so it can still be reused elsewhere, but it cannot be destroyed.
});
// When the lambda completes, the original default brush is re-selected to the DC before `with_selected` returns.
// `my_brush` has now been unlocked and is safe to destroy.

I’ve seen this kind of pattern elsewhere, though I’m not sure how ergonomic it would be in this case. It also forces an extra SelectObject call to restore the original brush; I’m not sure whether that will have a performance impact or not, and I’m not that familiar with GDI so I’m not actually even sure whether you might need to do that anyway before destroying the DC.

Option 1 has the limitations you point out.
Option 2 has the problem to be completely alien to the Win32 API – if creating a whole new layer is the answer, then I'd rather implement a whole new struct over HGDIOBJ, leaving it alone.
The idea of setting the handle to null in "closing" functions still seems to be the most attractive to me, so far. It would prevent accidental handle reuse, which is the original problem you pointed out, and you are 100% right about this.

That’s fair. Although, for a HANDLE, what null value would you use? NULL or INVALID_HANDLE_VALUE?

Actually, would that even help? You’d still have to make the handles non-Copy, non-Clone, otherwise one handle would be nulled out, but all the others wouldn’t. And even then, AFAICT it wouldn’t stop someone from deleting a GDI object that was currently selected, would it? Is it actually possible to do this safely, or do the handles themselves need to be unsafe and then the higher-level wrappers be safe?

I believe INVALID_HANDLE_VALUE would be clearer for the given intent.
Yes, the handles would still have to be non-Copy and non-Clone.
It has been a long time since I wrote my last GDI program, but as far as I remember, deleting a GDI object which is in use simply will revert the resource to its stock one, not causing any other harms. I'll have to test this. The high-level wrapper will certainly prevent this, though.


Add a feature toggle to enable private communities

This makes it possible to use mamute for private communities. Setting
the new feature toggle "feature.login.required" to "true" means that
users have to sign in before they can see questions.

Huum, if I understood your code correctly, you did a whitelisting implementation (everything is private but the methods annotated with @Public), right?
That's not the way we've been doing things in Mamute until now, I think it would be better if we follow a blacklisting implementation, what do you think? My afraid is that someone adds a new controller or method that should be public, forgets to add the annotation and never discover the bug because the feature toggle is disabled.

Hello @csokol,
I also thought about using a blacklist for this, but in my opinion it makes things much more complicated:
Let's say we want to make sure that the ListController is only visible after

users have logged in
and the "private community" feature is enabled

Simply adding @CustomBrutauthRules(LoggedRule.class) (like QuestionController.questionForm() uses it) doesn't work because that would make logging in always required, regardless of whether our feature is enabled or not.
Now we could go ahead and write a separate auth rule to overcome this.
However, with the new rule we would have to add it everywhere (except for those controllers which are already annotated with @CustomBrutauthRules(LoggedRule.class)).
Whenever someone writes a new controller that should be public must not do anything. But someone writing a new controller that should be private must remember to add the new auth rule to his controller.
What I want to say is that it's much more likely to have new controllers for "private" features than controllers for "public" features.
Right now the public features are:

registration/signup
forgot password
the AJAX request which loads the messages map
all login methods (username + password, facebook and google)

I'm open for suggestions how we can solve this, but for now this seems the easiest solution.

:+1:
Now I agree with you, @xdarklight :-)
Once this feature is enabled, most of the contents would be private. If someone add a new feature he would need to remember to add it to the blacklist or it will cause a security issue for private community users.
Great! I'm merging it!

exactly - thanks for merging @csokol


error pending plan and plan's name in the secret are not matched

Hello,
I have 3 terraform resources managed by tf-controller.
2 of them are fine, one reports
rpc error: code = Unknown desc = error pending plan and plan's name in the secret are not matched:  != plan-master-4246be8f0f8c0ffa86ea09b88d0000123a5562f0

When updating Git code, the updates do happen, but the message comes back with new commit ID.
Having a quick look, https://github.com/weaveworks/tf-controller/blob/3ae12dd2f2f82a5f89e3280ebb1e0a7b39393ecc/runner/server.go#L774 is an empty string, which looks fine has there no change to apply once applied successfully.
I need some help to fix this.

Could provide the secret metadata of the corresponding terraform plan? It should be start with tfplan-default-.

metadata:
  annotations:
    encoding: gzip
    savedPlan: plan-master-4246be8f0f8c0ffa86ea09b88d0000123a5562f0
  creationTimestamp: "2022-09-09T16:00:58Z"
  name: tfplan-default-xxx-apne1-xxx
  namespace: production
  ownerReferences:
  - apiVersion: infra.contrib.fluxcd.io/v1alpha1
    kind: Terraform
    name: xxx-apne1-xxx
    uid: c4819818-4300-4041-9142-99db53098c2b
  resourceVersion: "32325387"
  uid: 08d80990-7c48-4d11-9f49-3b63cb6d5692

This is similar to other working resources, example of a working one:
metadata:
  annotations:
    encoding: gzip
    savedPlan: plan-master-4246be8f0f8c0ffa86ea09b88d0000123a5562f0
  creationTimestamp: "2022-09-09T16:00:05Z"
  name: tfplan-default-xxxx-use1-xxx
  namespace: production
  ownerReferences:
  - apiVersion: infra.contrib.fluxcd.io/v1alpha1
    kind: Terraform
    name: xxx-use1-xxx
    uid: ccdcfb78-045e-49cc-93ce-0ec6cc231999
  resourceVersion: "32325065"
  uid: 451a240b-b501-49c3-a53e-7740cd872ec8

Hello,
any update on this issue?

i am facing a similar issue
{"level":"error","ts":"2023-01-13T17:48:40.106Z","msg":"Error, requeue job","controller":"terraform","controllerGroup":"infra.contrib.fluxcd.io","controllerKind":"Terraform","Terraform":{"name":"external-secrets","namespace":"flux-system"},"namespace":"flux-system","name":"external-secrets","reconcileID":"a78b53d0-919e-4fb1-a563-384c542fd4ce","reconciliation-loop-id":"e91c76ea-47fd-41f1-8a10-ac6678131f16","start-time":"2023-01-13T17:48:15.346Z","function":"TerraformReconciler.finalize","error":"rpc error: code = Unknown desc = error pending plan and plan's name in the secret are not matched:  != plan-secrets-runtime-30944680a13b86b15e0ef34ed73fa89209a0c07a"}

Sorry for the late response. It could be empty when Terraform.Status.Plan.Pending is empty while the plan is actually created. Did tf-controller restart during a plan that could cause that the status didn't get updated properly?

Sorry for the late response. It could be empty when Terraform.Status.Plan.Pending is empty while the plan is actually created. Did tf-controller restart during a plan that could cause that the status didn't get updated properly?

Did tf-controller restart during a plan that could cause that the status didn't get updated properly?

@tomhuang12
That is likely the context where it was produced ... the scenario was like
given tf-controller
and provisioned module  with permissions errors
when updated tf-controller to configure irsa aws
and restarted tf-controller (likely but not 100% sure this happened)
then issue happened

To fix this issue, we need to clear the pending plan before returning this error, here:
https://github.com/weaveworks/tf-controller/blob/76d1f1f0e13f1b239e911405c3853049284fa223/controllers/tf_controller_apply.go#L60-L67

Sorry I can't reproduce the issue, I was able to apply new commits and I just moved on.

@chanwit Hello,i am facing the same issue in v0.15.1,how can i solve it?thank you.

Have you tried tfctl replan <object>?
It would help clear the pending plan information and trigger re-plan.

Closing as we believe this issue is resolved since Flux v2 went GA. Feel free to file another issue if you see the same behavior again w/Flux v2.


TOC should display Az 7 in what's new TOC and migrate from previous version

breaking changes page should appear in two locations

what's new
migrate from previous versions

@dcaro - Thanks for the feedback. Could you please help provide the relevant document link which you are referring to?


How to get json file for current color style?

How does someone get the current color style as a json string?
getColorStyle returns an object.
Add a new method:
getColorStyleAsJson
that returns the json string

an example is available: https://github.com/sys-bio/SBMLDiagrams/blob/main/examples/interface_to_change_style/example_reads_out_style_in_json.py


edit this page link

What needs to be done to get the "edit this page" link to work? I read what I could find here, I searched and no luck. I would like to either make it work or remove it.

Edit the URLs in the learn2 theme configuration.

That puts me on the right track. Now I need to learn about blobs on git.


Fix missing depots object on getProductInfo method

Depots object is only present on packages['730'].appinfo – returned from getProductInfo – if an access token is passed
renamed pak01_dir.vpk -> platform_pak01_dir.vpk
bumped steam-user to 4.19.2 to fix an http issue in downloadFile

Thanks!

Thanks!


feat(azureai-search)

Added support for Azure search
Fixes #2303

[X ] I have added tests that cover my changes.
[X ] PR name follows conventional commits format: feat(instrumentation): ... or fix(instrumentation): ....
[X ] (If applicable) I have updated the documentation accordingly.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Upload doesn't work

I'm trying to upload an image with Trumbowyg.
But this seems to bee a little bit difficult.
Could you / somebody else please post a working sample code?
I'm not able to get the image and upload it to the server.
My code:
$('#bericht').trumbowyg({
            lang: 'de',
            autogrow: true,
            removeformatPasted: true,
            imageWidthModalEdit: true,
            btnsDef: {
                // Create a new dropdown
                image: {
                    dropdown: ['upload'],
                    ico: 'insertImage'
                }
            },
            btns: [
                // ['viewHTML'],
                ['historyUndo', 'historyRedo'],
                ['formatting'],
                ['strong', 'em', 'del'],
                ['link'],
                ['image'],
                ['justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull'],
                ['unorderedList', 'orderedList'],
                ['horizontalRule'],
                ['removeformat'],
                ['fullscreen']
            ],
            plugins: {
                upload: {
                    serverPath: 'uploader.php',
                    fileFieldName: 'image',
                    urlPropertyName: 'url',
                }
            }
        });

And the upload API:
<?php

    $alt=$_POST["alt"];
    $image=$_POST["image"];

    $data= array (
    'success' => true,
    'url' => 'uploads/plan.png',
    );

    $json = json_encode($data);
    echo $json;

?>

In PHP uploaded files are not in $_POST but in temp folder and the temp path is in $_FILES, check out the PHP doc:
http://php.net/manual/en/features.file-upload.post-method.php#example-387

Thank you for the reference. I'm still not able to implement the download function. Could you please provide a sample code? I'm wondering how others could bring this to work. I was not able to find any instructions on the internet or detailed explanation.

Try something like:
$fileFieldName = 'image';
var_dump($_FILES[$fileFieldName]);

You should see some useful data to do the move_uploaded_file:

http://php.net/manual/en/features.file-upload.post-method.php#example-386
https://www.php.net/manual/en/function.move-uploaded-file.php

Thank you for the fast answer. I checked the documentation and tried a lot.
I understand that you don't want to document insecure code but I think it's absolutely clear that everybody has to look for the security. It would be very good to know how Trumbowyg works in the background because this is difficult.
I updated my code regarding the information you provided but the file uploads to my server still doesn't work.
<?php

    $fileFieldName = 'image';
    $uploadfile = var_dump($_FILES[$fileFieldName]);

    if (move_uploaded_file($_FILES[$fileFieldName], 'uploads/')) {

       // Success
       $data= array (
        'success' => true,
        'url' => "uploads/$fileFieldName",
        );

        echo json_encode($data);

    } else {
        // Error
       $data= array (
        'success' => false,
        );
    }

?>

$_FILES[$fileFieldName] => $_FILES[$fileFieldName]['tmp_name']
'upload/' should be absolute path to avoid errors if you move the file while refactoring
returned url should be absolute to avoid strange errors
Factorize the missing error case echo with the success one

<?php

$fileFieldName = 'image';

if (move_uploaded_file($_FILES[$fileFieldName]['tmp_name'], 'uploads/')) {
    // Success
    $data = [
        'success' => true,
        'url' => "/uploads/$fileFieldName",
    ];
} else {
    // Error
    $data = [
        'success' => false,
    ];
}

echo json_encode($data);

I'm using exactly the provided code and adapted, tried and tested a lot but the file upload is still not working. May I can send you FTP access via mail so you can check this? Is there a bug known in Trumbowyg regarding this?

Hi Alex,
Is it okey, when I send you my FTP data so you can have a look?
I would donate you 20€ for the trouble.
Thank you for your answer.
Best Regards
Julian Tom Heusel

Am 25.03.2019 um 14:27 schrieb Alexandre Demode<EMAIL_ADDRESS>$_FILES[$fileFieldName] => $_FILES[$fileFieldName]['tmp_name']
'upload/' should be absolute path to avoid errors if you move the file while refactoring
returned url should be absolute to avoid strange errors
Factorize the missing error case echo with the success one
 true,
        'url' => "/uploads/$fileFieldName",
    ];
} else {
    // Error
    $data = [
        'success' => false,
    ];
}

echo json_encode($data);
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub , or mute the thread .

If it works on the Trumbowyg demo page, it should works for you too.
It's not as easy to debug and I did not want to go through your FTP ^^'
You need to learn PHP on your side. It could be the code, the server configuration, ...


Build caddy flist from source instead of downloading the bin

Due some license changes we need to switch to from source build for more info see https://caddyserver.com/blog/accouncing-caddy-commercial-licenses.html

We could either use the prefab build or we can use bash utils to do it for us


No option to delete attribute mapping collections(i.e claim dialtects) in Console

Describe the issue:

Create a new attribute mapping (i.e claim dialect)
UI doesn't have any option to delete the created dialect
If you check the old management console, there is an option to delete them

expected: - User should be able to delete the custom-defined dialects
https://github.com/wso2/product-is/assets/25483865/c7654fd9-b719-4543-a553-dbce27b2e987

Verified the fix in the latest build.
https://github.com/wso2/product-is/assets/41533942/a93841e2-4b07-4140-b08f-bfc5068e66cc


⚠ Samsung has degraded performance

In 39f4870, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 3804 ms

Resolved: Samsung performance has improved in 4b25ff3.


Add context to worker logging

This adds handling of context values in logging arguments, and adds contexts to log calls in the worker and storage. This helps ensure that values such as taskID and workerID are included in log calls from components such as DockerCmd.

Closed in favor of #201


Ignore system events

When performing a hard-delete of a stream, the adapter will receive a system event which cannot be handled.
Steps to reproduce:

Create a new stream
Delete the stream curl -i -X DELETE "http://<IP_ADDRESS>:2113/streams/prefix-stream_name" -H "ES-HardDelete:true"

Expected result:
Stream gets deleted and applications works fine
Actual result:
Application terminates with the following crash:
[error] GenServer {Commanded.EventStore.Adapters.Spear.Subscription, "$ce-prefix", "Dia.Beneficiary.Handlers.Emails", 0} terminating
** (UndefinedFunctionError) function :"$>".__struct__/0 is undefined (module :"$>" is not available)
    :"$>".__struct__()
    (elixir 1.13.4) lib/kernel.ex:2342: Kernel.struct/3
    (commanded 1.3.1) lib/commanded/serialization/json_serializer.ex:26: Commanded.Serialization.JsonSerializer.deserialize/2
    (commanded_spear_adapter 0.1.0) lib/commanded/event_store/adapters/extreme/mapper.ex:59: Commanded.EventStore.Adapters.Spear.Mapper.to_recorded_event/2
    (commanded_spear_adapter 0.1.0) lib/commanded/event_store/adapters/extreme/subscription.ex:102: Commanded.EventStore.Adapters.Spear.Subscription.handle_info/2
    (stdlib 4.0.1) gen_server.erl:1120: :gen_server.try_dispatch/4
    (stdlib 4.0.1) gen_server.erl:1197: :gen_server.handle_msg/6
    (stdlib 4.0.1) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
Last message: {#Reference<0.577788016.627048450.176481>, {:"event_store.client.persistent_subscriptions.ReadResp", {:event, {:"event_store.client.persistent_subscriptions.ReadResp.ReadEvent", :undefined, {:"event_store.client.persistent_subscriptions.ReadResp.ReadEvent.RecordedEvent", {:"event_store.client.UUID", {:string, "f962ef2f-36c6-4d79-aed6-bfa60ec18fa7"}}, {:"event_store.client.StreamIdentifier", "$ce-prefix"}, 2, 94932, 94932, %{"content-type" => "application/octet-stream", "created" => "16607371869697351", "type" => "$>"}, "{\"$v\":\"3:-1:1:4\",\"$c\":94552,\"$p\":94552,\"$o\":\"prefix-DTP4HWV4HV4K\",\"$deleted\":-1,\"$causedBy\":\"f4eb048c-b19f-4b65-aa5d-5ae7d26be4d7\"}", "9223372036854775807@prefix-DTP4HWV4HV4K"}, {:commit_position, 94932}, {:retry_count, 7}}}}}
State: %Commanded.EventStore.Adapters.Spear.Subscription{conn: Dia.App.Spear.Spear.Connection, last_seen_event_id: nil, last_seen_event_number: nil, name: "Dia.Beneficiary.Handlers.Emails", retry_interval: 60000, serializer: Commanded.Serialization.JsonSerializer, start_from: :current, stream: "$ce-prefix", subscribed?: true, subscriber: #PID<0.1387.0>, subscriber_max_count: 1, subscriber_ref: #Reference<0.577788016.627048449.177679>, subscription: #Reference<0.577788016.627048450.176481>}

The JSON deserializer will be called with the following arguments:
binary: "0@prefix-stream_name"
config: [type: "$>"]

NOTE: this was solved by a workaround in #14
Deleting a stream causes a system event to be sent to the persistent subscription to the $ce-prefix projection.
This is unexpected since persistent subscriptions are created with the exclude_system_events filter.
Also, adding the filter to the catch-up subscription in the EventPublishers causes no events to be received.


Fix to execute call method even when content-type is multipart/form-data

In version 2.0.4, middleware returns nil when the content-type is 'multipart/form-data'.  I think that the middleware should execute call method regardless of the content-type.

This fix is already present in 2.0.4.
Your PR adds test, thank you for this!


L7 Loadbalancing: Use controller-runtime library

With this PR, the L7 Loadbalancing controller gets migrated to use the controller-runtime library.

/test


Fix: flaky e2e failed because of "Error: cluster manager still exists"

/assign @qiujian16

/approve
/lgtm


Sync assets in current version/release (without reloading)

Problem
in UIWebview i used phonegap-content-sync to download images after app installation. But with WKWebview you can't access them, cause you can't go out of your approot/www. afaik.
So I could just not use WKWebview or find another solution to sync to assets. Or find a way to get your plugin doing this.
But at current state you would have to Reload the App only to show more/newer images witch is bad. So finding a way to download assets/images in the current webversion/release would be really cool.

Yeah, that can be a nice feature. Thanks for the suggestion!

I really needed to get this working. That's why I also tried to make the installUpdate with the option to not refresh. What turned out to be useless, because updated files are still in the wrong folder.
That's why I created my first plugin cordova-plugin-file-sync. which also compares file using a manifest.json but you can specifiy the local directory where it will be downloaded to.
And it defaults to:
file:///Users/pm/Library/Developer/CoreSimulator/Devices/<UDID>/data/Containers/Data/Application/<UDID>/Library/Application Support/cordova-plugin-file-sync/

Then you can use this path in for example a ng-src on an image and as soon as the file is downloaded and a digest whatever runs you will see the image, without reloading anything.
Made using swift :smiling_imp:
So for me this issue is solved with my plugin, although it would be a lot nicer to just use one plugin.

Nice, good job :) But this will work only for images? Or js/css files as well?

every kind of file =)

Nice, good job :)

Not really :( I can't access the synced assets because wkwebview is blocking it. Okey the plugin may still usable for others using UIWebview. But this is so bad for me :(

Ok no problem anymore if using wkwebview look into at this issue on driftyco's wkwebview


Add multi-core into the R part?

study run times a bit (%STAR versus %R) on real dataset
study run times of just the R part (%edgeR, %DRIMSeq, %shiny prep, etc.)
seems most useful to have multicore in the DRIMSeq part, since Gosia already coded it. edgeR is fast enough already, I think

https://github.com/csoneson/ARMOR/commit/e04bfe8f26115ade2422ee89e5e71426250035d5


Incorrect construction of a Window's Win32 RawWindowHandle causes segmentation fault/pointer deref panic

When requesting a RawWindowHandle for a win32 Window (such as passing a Window to functions written with the raw_window_handle API), the instantiation of the RawWindowHandle performs some incorrect logic which results in either a panic after dereferencing a byte-misaligned pointer, or a segmentation fault.
thread 'main' panicked at C:\Users\jard\.cargo\registry\src\index.crates.io-6f17d22bba15001f\minifb-0.27.0\src\os\windows\mod.rs:518:53:
misaligned pointer dereference: address must be a multiple of 0x8 but is 0x2d61dca
stack backtrace:
   0: rust_begin_unwind
             at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library\std\src/panicking.rs:645:5
   1: core::panicking::panic_nounwind_fmt::runtime
   ...

error: process didn't exit successfully: `target\debug\project.exe` (exit code: 0xc0000005, STATUS_ACCESS_VIOLATION)

Process finished with exit code -1073741819 (0xC0000005)

There were three bugs which I've encountered and fixed with a workaround:

The HasWindowHandle implementation for win32 assumes that the underlying window handle is a pointer to a HWND and dereferences it, when the handle is itself the HWND and simply needs to be casted to an isize. Hence, retrieving the HWND should look something like:

let hwnd = NonZeroIsize::new(self.window.unwrap() as isize).expect("invalid hwnd");

Similarly, the code assumes the HINSTANCE handle is a pointer to an HINSTANCE and dereferences it. The HINSTANCE handle from GetWindowLongPtr needs to be casted to an isize.
On my machine (Windows 11, minifb 0.27.0), GetWindowLongPtrW(hwnd, GWLP_HINSTANCE) returns a null pointer for a valid HWND. I'm not exactly sure why this happens, but I instead opted to retrieve the HMODULE and pass that as the HINSTANCE:

let hinstance = NonZeroIsize::new(unsafe { GetModuleHandleA(ptr::null()) } as isize);

I can confirm that the resulting RawWindowHandle constructed from the HWND and HMODULE works for the purposes of, in my particular use case, constructing a valid Vulkan surface with the window and display handles.

Hey, Thanks for the report. Seems it was broken in https://github.com/emoon/rust_minifb/commit/4b4af731ccd3738492aa4f785733f9af207e0623 cc @StefanoIncardone
The old code was using unsafe { libloaderapi::GetModuleHandleA(ptr::null()) } as *mut raw::c_void;


Error message if parsing fails

Currently, when parsing fails a NULL value is returned and my software can only log a "something went wrong" message. It would be great to be able to log the line number and line contents that caused the failure.
I apologize for not reading the bottom of the readme about creating issues before a pull request. Pull request #78 shows a minimally invasive way to implement this. It returns a JSONError value with an error message in the string field.

you should print log

This is actually quite nice solution (extending JSONValue union with error case).
I don't understand however why you are creating an error message in parson. In my opinion the library should try not handle any end user communication. It should return structure with line and column numbers and preferably a type of error. With this information the application which is using the library can form an error message in whatever way it finds suitable.
Please note that there are also some minor style issues in your patch:

char* name instead of char *name;
lack of consequence in checking null pointers: ptr == NULL vs !ptr;
although guaranteed to be 1, parson is using sizeof(char) in string allocations (which arguably influences readability).

@mbelicki I don't understand however why you are creating an error message in parson. In my opinion the library should try not handle any end user communication. It should return structure with line and column numbers and preferably a type of error. With this information the application which is using the library can form an error message in whatever way it finds suitable.

The API for that might look something like this:
typedef struct json_error_t JSON_Error;

enum json_error_type {
    JSONError_Unidentified = -1,
};
typedef int JSON_Error_Type;

JSON_Error * json_value_get_error(const JSON_Value *value);

int    json_error_get_type(const JSON_Error *error);
size_t json_error_get_line_number(const JSON_Error *error);
size_t json_error_get_column(const JSON_Error *error);
/* Offset from the beginning of the file or string */
size_t json_error_get_offset(const JSON_Error *error);

In the future, new json_error_type enumeration values could be added to express the variety of errors that are possible.
I have cleaned up the style inconsistencies in PR #78. I also changed remove_comments() to retain newlines so line numbers remain correct.

Sorry for taking so long to respond, but I've been quite busy recently.
I agree that there should be some information why parsing failed and where, returning NULL provides too little feedback.
Instead of extending existing function a nicer solution would be to add a new one. I really don't want people to use a different API based on a compiler flag.
Example:
enum json_parse_error_t {
    JSON_PARSE_ERROR_NONE = 0,
    JSON_PARSE_ERROR_MISSING_BRACKET,
    ...
};
typedef struct json_parse_error_t {
    enum json_parse_error_t error,
    unsigned int line;
    unsigned int line_offset;
} JSON_Parse_Error;

typedef struct json_parse_option_t {
    int accept_comments;
} JSON_Parse_Options;

JSON_Value json_parse(const char *string, JSON_Parse_Options parse_options, JSON_Parse_Error *err); /* err is optional and can be NULL */

It's only a proposal though.
The real issue is that the API feels a bit dated and inconsistent in some places. It's been growing gradually over last 5 years and a cleanup would be nice at some point in future (parson 2.0?). I cannot guarantee any timeline, but it's something I keep at the back of my mind.
Anyway, I'd rather not accept your pull request (https://github.com/kgabis/parson/pull/78), because I don't want json_parse_string to behave differently based on a compiler flag and I think a new json_parse function is a better solution. Also, it's going to be necessary to rewrite parts of parsing code to remove comments and parse string in a single pass (it also gets rid of a malloc(sizeof(str_parsed)) that serves as a temp buffer) to get actual offset within the parsed line.
I'm going to keep this issue open because other people might have a similar problem and it needs to be resolved at some point.

I don't mind the closed pull request. It was just a starting point for what this could look like. I should have just referenced the branch on my fork.
I would suggest including the offset of the error from the beginning of the string as well. It makes it easy for applications to directly show the text that caused the failure. With only the line and offset they would have to rescan the string to count lines.
What kind of ABI stability are you going for with parson? Adding an option to the proposed JSON_Parse_Options struct would change its size.
Some option APIs:

Make the options struct opaque and treat a NULL options argument as using the defaults.

typedef struct json_parse_option_t JSON_Parse_Options;

JSON_Parse_Options * json_options_init(void);

void json_options_allow_comments(JSON_Parse_Options *options, int allow_comments);

void json_options_free(JSON_Parse_Options *options);

Make the options global and add functions like void set_json_option_allow_comments(int allow); or a function like void set_json_option(enum JSON_Option_Type option, int value). Not multi-threading friendly.
Require apps to recompile to use the new version. Anyone compiling it as a library would probably dislike this option.
If all the options are binary flags it could hold an unsigned int with each option corresponding to a bit. I could imagine wanting to set nesting and capacity limits through options, though.

A few more awkward APIs I've seen.

Pass a string and parse the options out.
The user could pass the size of the struct (as an argument or the first member of the struct) and a new version of the library would know which version it is by the size. If the library was compiled with a smaller version it could use only what it understands or return an error.

Technically, the proposed JSON_Parse_Error struct has the same issue. But I'm having a hard time coming up with plausible changes to it other than adding the absolute string offset. Maybe using size_t to support really large files.

I've implemented the proposed API with a few adjustments on my parse-errors-v2 branch 880a0589a024eb823a609d3d33958aae9efee266 to see what it would look like.
Changes:

The line and line_offset variables are size_t in case anyone uses ridiculously large files.
Added a byte_offset variable that is from the start of the string or file so error messages can easily include the text that caused the error.
Added a string_is_file_path option so json_parse() can parse strings or files.
Added a parse_outer_value() function that rejects trailing text after the first value. It is only used by json_parse() so users of the existing functions do not get new behavior. It could be made optional or removed if that level of conformance is not desired.

Basically, I added a JSON_Parse_Error* argument to all of the parse functions. Whenever they would return NULL they also set the type of error.
While updating the tests, I noticed some test_suite_3 failures were for different reasons than the comments indicated. These three have "control character" comments after them.

"[\"\\\"]" is the string ["\"] and returns an unterminated string error.
"[\"\"\"]" is the string ["""] and returns a missing comma error.
"[\"\0\"]" is the string [" and returns an unterminated string error.

I added tests so each error type has at least one test. I also added tests for the three Parse Validation failures in issue #53 that are fixed by using parse_outer_value(). If a test fails it prints the error type that was returned to make it easier to see if the parsing code was wrong or if the expected error type was wrong.

no progress on this one simple improvement during the last year? Is parson abandoned, or has it moved elsewhere perhaps?


Add new Meta message

Summary
A new Meta message with meta information
Details
The first message of a message stream should be a Meta message.
There is also meta information about cucumber implementation, operating system, language runtime etc.
Motivation and Context
The protocol_version field will allow the consumer to determine whether or not the following messages can be processed.
The other meta Product fields can be used for diagnostic and statistical purposes, to understand more about the platform on which Cucumber was run.
We need to update fake-cucumber to emit this message before merging this.

Related PRs in Cucumber-Ruby and Cucumber-JVM:

https://github.com/cucumber/cucumber-ruby/pull/1409
https://github.com/cucumber/cucumber-jvm/pull/1952

Related issue in Cucumber.js:

https://github.com/cucumber/cucumber-js/issues/1310


fix: event-handler leakage

Fixes an issue where event handlers could be leaked if the same handler reference was added twice to different events.

It occurred to me this fix is incomplete. It still possible to add the same handlers to the same event twice and lose the ref. I have another fix in mind. Marked as draft for now

Hey @beeme1mr @lukas-reining please re-review. As mentioned here, we also need to support the addition and removal of duplicate handlers to the same event. This is done by making the weakmap values arrays, and appending/popping them.
I've added this functionality, and 2 relevant tests.


python311Packages.tensorflow: fix evaulation error

remove invalid argument grpc argument from override as it was removed in 8fbfbf557a7aae568bf492710c34c9e75def8bf3
https://github.com/NixOS/nixpkgs/pull/351693#discussion_r1818718984
https://github.com/NixOS/nixpkgs/pull/351693
cc: @mweinelt

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

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

@paparodeo please update commit message to match contribution guidelines

whatever

@ofborg eval

@ofborg build python3.pkgs.tensorflow

@ofborg build python311.pkgs.tensorflow


EVP_AEAD_CTX can not be found

I am trying to compile quic library with openssl-3.0.1+quic, but maker show lots error info, like:

error: unknown type name ‘EVP_AEAD_CTX’
openssl/aead.h: No such file or directory
implicit declaration of function ‘EVP_aead_aes_128_gcm’

These structures/apis about AEAD were used by quiche, could you tell me how can I compile quiche or lsquic with openssl-3.0.1+quic but not with boringssl? Thanks~

EVP_AEAD_CTX (and EVP_AEAD) is a BoringSSL construct that does not exist in OpenSSL.
I suspect those using Chromium QUIC are compiling an older version, but I can't be sure. (I believe the team that this was originally written for is using an older version.)
It would be good to hear from those using QUICTLS with Chromium QUIC how they are compiling.

I'm also noting that recent quiche is using the bssl namespace, which this doesn't provide. BoringSSL includes C++ code (hence the bssl namespace), but OpenSSL (and subsequently QuicTLS) is written in C.

This project is about adding the de-facto QUIC API's to OpenSSL.  Not implementing all of boringSSL API's.  Closing this.


[1] Last pull from main for 5.7, part 1

Pulls in changes for:

SE-0350's API renaming
API names and enablement for the other 5 proposals
Drops un-needed Unicode data
CaptureList for communicating captures (spans parser and run-time)
Documentation changes

But does not include 7d03a1e6154d45d834037943138fdb2c90b2ff34 or later

@swift-ci please test

@swift-ci please test

@swift-ci please test


fix hiera example in documentation

As a followup to https://github.com/puppetlabs/puppetlabs-apt/pull/436 this changes the documentation to use boolean values instead of strings in the hiera example.

Nice catch, thank you!


Brackets Freezing

Brackets extract 1.6 freezes when you divide the screen or split the screen.

Hi @pridemusvaire,
What operating system are you using?

hi @kenzo44 I am using windows 10


[rom_ext] Advance the security version in boot_data

When the security version of the just-booted ROM_EXT is greater than the ROM_EXT minimum security version in boot data, move the value forward.
Provide a mechanism in the manifest to prevent moving foward even though the version is newer.  This is to release test ROM_EXTs without running afoul of #22941.

This should NOT be cherry-picked to master.  We will fix this on master by adjusting the selection criteria as discussed in #22941.

The test failure is unrelated to this change.


Create the models

From the following discussion we can start to create the models for the application and then the relationships between them:

Diagram updated thanks to @collengura  and @tkshfj  suggestions.

The relationship between message and reply has been added.
Added timestamps as attributes for messages: created_at and modified_at, the latter in case the functionality to modify already sent messages is implemented.

— Originally posted by @ACSG-64 in https://github.com/ACSG-64/concord-real-time-workspaces/discussions/4#discussioncomment-4129143
Check the discussion for updates or to discuss changes to the DB design.

Modifications were made to the DB design diagram. Now the entity 'Worskpace' has two new attributes: 'invitation_id' (maybe of UUID DType?) and 'accepting_newcomers' (of Boolean DType).
These attributes are required for the future invitation system for users to join workspaces.


[chatgpt] Detached PPO Training Draft

📌 Checklist before creating the PR

[ ] I have created an issue for this PR for traceability
[x] The title follows the standard format: [doc/gemini/tensor/...]: A concise description
[ ] I have added relevant tags if possible for us to better distinguish different PRs

🚨 Issue number

Link this PR to your issue with words like fixed to automatically close the linked issue upon merge
e.g. fixed #1234, closed #1234, resolved #1234

📝 What does this PR do?

Summarize your work here.
if you have any plots/diagrams/screenshots/tables, please attach them here.

'Detached' PPO training means that the experience makers and trainers are splitted into different nodes for asynchronous training. Models are not shared.

Propose several classes for 'detached' manner: ExperienceMakerHolder, DetachedReplayBuffer, DetachedPPOTrainer
Implement Ray for Detached workflow structure
Examples: 1m1t. 1m2t, 2m1t, 2m2t.
Supported Strategies: Naive, DDP.
Won't affect present code.

Known issues:
1. Cannot detect cuda device on each worker. fixed 20230324
2. Cannot run with Colossal strategy.
3. correctness of 1m1t.py example. fixed 20230324
TODO:

[x] Implement parameter update from trainer to experience maker
[ ] fix issues
[ ] Add TP strategy for experience maker and trainer.
[ ] Support multiple nodes.

💥 Checklist before requesting a review

[ ] I have linked my PR to an issue (instruction)
[ ] My issue clearly describes the problem/feature/proposal, with diagrams/charts/table/code if possible
[x] I have performed a self-review of my code
[x] I have added thorough tests.
[x] I have added docstrings for all the functions/methods I implemented

⭐ Do you enjoy contributing to Colossal-AI?

[x] 🌝 Yes, I do.
[ ] 🌚 No, I don't.

Tell us more if you don't enjoy contributing to Colossal-AI.

Hi @CsRic Thanks for your contribution, but there is a conflict in this PR. Could you please solve them first? Thanks.

Can you move all files to coati/ray?

Done


Quite some refactoring on the container

Made many methods non generic as they are just working with interfaces which can be handled as IInterface.
Also made sure that the delegate already returns the properly type so any further QueryInterface calls are unnecessary.
Used a trick to improve instance creation by taking the codeaddress of the rtti method and casting it to the ctor signature for faster invokation.
Made use of the memoize pattern for capturing the constructor so it only gets queried by rtti once.
Used the same pattern for making sure that a singleton is only created once without any additional checks outside the delegate.

Looks like there are some merge conflicts, can you pull/merge and resubmit.

Updated


Add amd support

Potentially use Browserify with standalone option.

Using UMD wrapper as part of build process.


Data preprocessing Automation (Libraries, any other techniques)

Hello,
I came across the issue regarding Data preprocessing Automation (#303) and I'm eager to express my interest in working on it. With my extensive experience in data preprocessing and analysis, I am confident in my ability to contribute effectively to this task.
I kindly request you to assign me this issue under the GSSOC'24 tag and add me as an assignee
Regards,
Sanjana

I would like to contribute and resolve this issue.

I am a GSSoC'24 contributor, I would like to contribute, and I have prior experience in data preprocessing, presently I am working on research papers where I have successfully done model training and testing with preprocessing, SMOTE techniques, hyperparameter tuning, and many more things.
@Niketkumardheeryan, I will do this, please assign me this task

can you please assign me this issue

Please assign me this issue.


Bond's Changes

Hey Seuntjie,
These are my changes in your bot. Trying to create a pull request. let's see if that is working.
Hope this is fine.
-Bond007

Hi, this pull request has a lot of conflicts to resolve. Please bring your repo up to date by merging the changes and then make a new pull request.


Mac: Record kext logs to disk and collect them in DiagnoseVerb

This will be helpful for diagnosing support issues

Duplicate of #396 (closing this issue as the new issue has more details)


adding logseq-clock-plugin

Submit a new Plugin to Marketplace
Plugin Github repo URL: https://github.com/hkgnp/logseq-clock-plugin
Github releases checklist

[x] a legal package.json file.
[x] a valid CI workflow build action for Github releases. (Optional for theme plugin only).
[x] a release which includes a release zip pkg from a successful build.
[x] a clear README file, ideally with an image or gif showcase. (For more friendly to users, it is recommended to have English version description).
[x] a license in the LICENSE file.

Wow that is fast! Thanks!


Flowing mud is missing its texture

Flowing mud has the typical checkboard pattern, which means its texture is somehow missing. Only mod installed is Earth2Java and its dependencies.

A new version as been released fixing those bugs. Thank you for your report.


Update the dependencies to resolve vulnerabilities.

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

API change check
API changes are not detected in this pull request.

@JoshLove-msft , @jsquire please take another pass. I believe I fixed all the concerns you had.

@JoshLove-msft , @jsquire please take another pass. I believe I fixed all the concerns you had.

Other than the nit about alphabetical order, looks good.

@JoshLove-msft please let me know if you have any concerns before I merge.

@JoshLove-msft please let me know if you have any concerns before I merge.

LGTM!


Fix misspelling of "occurrence"

Fun project! I want to play with it & maybe expand capabilities but wanted to fix this misspelling first.

Gosh - wow.  Well at least I'm consistent I guess?

 I have no end of trouble with "recommend."


Set default settings on install/update

Stash treats plugin settings as undefined until the user manually changes them,  however their default appears as 0 numbers and false for booleans. This is problematic for users updating these values in the first instance, when a default should have a higher number or true as the default. For example, Most Appears With should show a default of 3, not 0.
This can potentially be set with a subscription to check when the plugin is installed or updated, and when triggered run a mutation on the plugin settings. This may not work, however.

This seems possible on updating packages, but not on installing packages, which is the ideal time for it to run. The GQL seems to need to run within a PluginApi.patch.... So this can't run immediately on install.
Even if this was possible, it would be a pretty hacky way to do it. The ideal way would be to have a native defaultSettings property in the plugin yaml file, like defaultArgs for tasks. Will raise as a request and revisit this issue if/when that is implemented.

https://github.com/stashapp/stash/issues/4510#issuecomment-2181197602


Potential deadlock in traQ

Found few deadlock messages emitted in server log. To be verified.
No concrete steps to reproduce the issue
#bug

Not a bug.
Error logs were emitted because DB server is not reachable. DEV VM has gone offline


184198

Any description @PlumbDawg ?

Any description @PlumbDawg ?

I am trying to learn all this Bro and I am freaking lost! What do I do? Who can tutor me thru this chaos Bro?

Sorry about the delay @PlumbDawg I think this can help you: https://skills.github.com/