[Bug]:

Version of the software
OpenBullet2  0.1.25
Operating system
WIndows10
Browser / Native
Chrome
What happened?
fail: Microsoft.EntityFrameworkCore.Query[10100]
An exception occurred while iterating over the results of a query for context type 'OpenBullet2.Core.ApplicationDbContext'.
System.InvalidOperationException: A second operation was started on this context before a previous operation completed. This is usually caused by different threads concurrently using the same instance of DbContext. For more information on how to avoid threading issues with DbContext, see https://go.microsoft.com/fwlink/?linkid=2097913.
at Microsoft.EntityFrameworkCore.Internal.ConcurrencyDetector.EnterCriticalSection()
at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable1.AsyncEnumerator.MoveNextAsync()       System.InvalidOperationException: A second operation was started on this context before a previous operation completed. This is usually caused by different threads concurrently using the same instance of DbContext. For more information on how to avoid threading issues with DbContext, see https://go.microsoft.com/fwlink/?linkid=2097913.          at Microsoft.EntityFrameworkCore.Internal.ConcurrencyDetector.EnterCriticalSection()          at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable1.AsyncEnumerator.MoveNextAsync()
fail: Microsoft.EntityFrameworkCore.Update[10000]
An exception occurred in the database while saving changes for context type 'OpenBullet2.Core.ApplicationDbContext'.
System.InvalidOperationException: A second operation was started on this context before a previous operation completed. This is usually caused by different threads concurrently using the same instance of DbContext. For more information on how to avoid threading issues with DbContext, see https://go.microsoft.com/fwlink/?linkid=2097913.
at Microsoft.EntityFrameworkCore.Internal.ConcurrencyDetector.EnterCriticalSection()
at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList1 entriesToSave, CancellationToken cancellationToken)          at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(DbContext _, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)          at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)       System.InvalidOperationException: A second operation was started on this context before a previous operation completed. This is usually caused by different threads concurrently using the same instance of DbContext. For more information on how to avoid threading issues with DbContext, see https://go.microsoft.com/fwlink/?linkid=2097913.          at Microsoft.EntityFrameworkCore.Internal.ConcurrencyDetector.EnterCriticalSection()          at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList1 entriesToSave, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(DbContext _, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
fail: Microsoft.EntityFrameworkCore.Database.Command[20102]
Failed executing DbCommand (1ms) [Parameters=[@p0='?'], CommandType='Text', CommandTimeout='30'].
Guy when i start a job in OB2 i have this fails, how can i resolve it?
PLS HELP ME
Relevant LoliCode if needed
No response

It's a known issue in OB2 you have to wait until I figure out a way to solve it

but does it affect the hits of my work?

Yes definitely, to mitigate the issue please go to job options, remove "Database" from the hit outputs and add "File System" so the hits will be saved in text files instead.


SimpleMDE loads a font from a CDN

Please make this at least configurable. Loading external resources via a CDN undermines the user's privacy which is something specifically people hosting the JavaScript themselves don't want.

I believe this is configurable via autoDownloadFontAwesome https://github.com/NextStepWebs/simplemde-markdown-editor#configuration

What does “download” refer to in this context? Using the CDN? Or is it a build-time flag?

From the docs:

autoDownloadFontAwesome: If set to true, force downloads Font Awesome (used for icons). If set to false, prevents downloading. Defaults to undefined, which will intelligently check whether Font Awesome has already been included, then download accordingly.

"Download" refers to downloading FontAwesome from a CDN.
If the option is set to false, then FontAwesome won't be downloaded from a CDN, so you're able to download FontAwesome from a different location of your choice.

@danabrey is 100% correct.

how to disconnect load font awesome from cdn ?


[5.6] Another blade helper @dd()

Following on from @csrf and @method blade helpers - the other one I find myself wanting is @dd.
If you've ever had to debug a silly view issue, you might have done {{ dd($var) }} in the past to track it down.
Now you can just do @dd($var) which is much quicker and easier IMO. Can also do @dd($var1, $var2) etc.

The idea is great! ;)

Thanks, but 👎. I don't see the need for this, the original code you posted there looks fine.

Going to hold off on this for now. :)

Eh, it's fine I guess but let's not get carried away :smile:

it feels like we're getting carried away. I personally am against the @csrf and @method, because the next thing someone is going to ask for is @form and @input and @textarea, and now we're back to the days of our Form builders.

I'd have to side with @browner12 here. What's the benefit of using @dd($var1) over {{ dd($var1) }}? the saving of having to type the mustache template tags?
Same with @csrf and @method.

Actually the purpose of helpers like ('@dd' or '@dump') is completely different from examples like '@form', '@input' or '@textarea', by the reason they are focused on helping developer to debug an app (and convenient for some situations), and not focused on creating actual interface elements. Creating interface elements, I agree, is responsibility of Form-Builders like 'laravelcollective/html'.


Build does not copy the flogo.json to the bin dir

After a successful flogo build when I execute bin/TheApp the following error is thrown:
 ~/flogo-apps/Example  flogo-new build                                                                                ~/flogo-apps/Example  cd bin
 ~/flogo-apps/Example/bin  ./Example

16:09:14 2018-10-25 16:09:16.344 ERROR  [main-engine] - Failed to create engine: open flogo.json: no such file or directory

fixed in latest code, if not embedded, it engine looks for flogo.json in current directory, if not found looks in parent directory.  This prevents the need to have multiple copies of flogo.json when developing an application.


OrderServer rollback,but StorageServer no rollback

seata version:0.9.0
premise
The seata-server is deployed on windows, using the springcloud-eureka-feign-mybatis-seata demo, and the Thread.sleep (2000) simulation request timeout is added to the StorageServer.decrease. Using jmeter, open 10 threads, each thread calls 2 times OrderServer order/create interface.
phenomenon
Since the timeout order table is all rolled back, no data is generated (normal)
Defect inventory appears in the storage table (exception)
Branch_table, lock_table, undo_log have a row of data, indicating that the transaction did not roll back normally (exception)
The global_table table is empty.
Can be reproduced multiple times.

refer https://github.com/seata/seata-samples/issues/256
The development team has not confirmed the bug.

Confirmed.Thanks!
will fix in 1.0


Hovers with markdown starting with - \n do not appear

https://github.com/haskell/haskell-language-server currently joins parts of the hover info with "- \n", for example the result can be:
{
  "result": {
    "contents": {
      "kind": "markdown",
      "value": "- \nGHC.Int"
    },
    "range": {
      "start": {
        "line": 8,
        "character": 7
      },
      "end": {
        "line": 8,
        "character": 14
      }
    }
  },
  "jsonrpc": "2.0",
  "id": 53
}

and kak-lsp 8.0.0 just quietly ignores these hovers. Patching hls to join with spaces avoids the bug.

Can you give an example haskell file where this happens?
Regardless, this will probably be fixed by #513

should be fixed with the new markdown parsing


How can I combine several imodel 2.0 files into one file?

Hello, I am using imodel.js. How can I combine several imodel 2.0 files into one file?
thanks.

⚠ Do not edit this section. It is required for imodeljs.github.io ➟ GitHub issue linking

LINK: Getting-Started-With-iModel.js---iModel.js-link-to-docs
TAG: imodeljs-docs-question
SOURCE: https://www.imodeljs.org/getting-started/

Use IModelTransformer.
Please use github issues to report bugs, not ask questions. Questions are better directed to StackOverflow using the imodeljs tag.

Hope this helped. Closing as "question, not issue".


400 Bad Request with X-Real-IP or X-Forwarded-For

Describe the Bug
Here is my nginx conf:
server
{
    listen 80;
    listen 443 ssl http2;
    server_name umami.foolishfox.cn;

    location ^~ /
    {
        proxy_pass http://<IP_ADDRESS>:3000;
        proxy_set_header Host $host;
        # proxy_set_header X-Real-IP $remote_addr;
        # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $remote_addr;
    }

    #data CROS
    set $cors_origin "";
    if ($http_origin ~* "^https:\/\/(.*\.)?foolishfox\.cn"){
        set $cors_origin $http_origin;
    }
    add_header 'Access-Control-Allow-Origin' $cors_origin always;
    add_header 'Access-Control-Allow-Methods' GET,POST,PUT,DELETE,OPTIONS always;
    add_header 'Access-Control-Allow-Credentials' true always;
    add_header 'Access-Control-Max-Age' 1728000 always;
    add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
    if ($request_method = OPTIONS) {
        return 204;
    }
}

if i uncomment proxy_set_header X-Real-IP $remote_addr or proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for, server will response 400 Bad Requests.
Database
MySQL
Relevant log output
No response
Which browser are you using? (if relevant)
No response
How are you deploying your application? (if relevant)
Server with pm2

This is my config which I have not noticed any issues with:
server {
    listen 443 ssl;
    listen [::]:443 ssl;
    access_log /var/log/nginx/xyz.access.log main;
    include /etc/nginx/snippets/ssl.xyz.conf;

    server_name xyz;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_pass http://<IP_ADDRESS>:3005;
    }
}

I fixed the problem by using Docker+Nginx instead of Baota Panel+Nginx, but i don't know the reason.


Move aad-pod Identity to Helm Chart

Integrate aad-pod identity in the helm chart.
@jcorioland for some reason won't let me assign you to this issue.

@jsturtevant I think you need to add me in the collaborators section in settings. As for now, I am just an external contributor.

That's right


New line not entered in Korean Language

If the keyboard language is Korean (or any language other than English) and I type fast and then press enter, <br> tag is not added and the editor continues to type in same line rather than in a new line.

Sorry, no idea what might be causing this.

If I make the whole html body contenteditable = true, then it works. But another issue occurs, i.e. when you delete the last word the cursor jumps to top of the window. Atleast tell me, how to set cursor position manually? Below code doesn't work for me.
var el = document.getElementById('editor');
  el.focus();
  var range = document.createRange();
  var sel = window.getSelection();
  range.setStart(el, 0);
  range.collapse(true);
  sel.removeAllRanges();
  sel.addRange(range);

You can pass the range to editor.setSelection to set the selection.

You can pass the range to editor.setSelection to set the selection.

Can you please elaborate? How to change the cursor position?


ENGESC-9803. Add on the fly telemetry upgrade + vm level preflight ch…   …eck before doing diagnostics collections

details:

add 2 new flow steps for both core and freeipa diagnostics: telemetry upgrade & vm level preflight check
create 3 scripts that will be uploaded during these steps: cdp_telemetry_deployer.sh + preflight_check.sh + filecollector_minion_check.py
cdp_telemetry_deployer.sh: it will try to upgrade cdp-telemetry from the master node (primary) - failure is fine here (also checks proxy settings + network availability)
preflight_check.sh: that will run on the primary master node, it will execute filecollector_minion_check.py script on every minion, it will print different outputs based on the minion results
if preflight fails or we got an unexpected response, that will interrupt the collection
preflight checks available memory + actuaal cdp-telemetry version + it also reconfigure the filecollector (if cdp-telemetry has older version) -> in order to avoid memory pressure (of course it will slow down the process)
preflight check can reconfigure filecollector configs in a way that will remove ceertain (too large logs) to process. it won't skip salt or syslogs. if those are too large and cdp-telemetry version is too low, the check will fail

See detailed description in the commit message.

Make sure that we have appropriate test coverage.


There is no backup menu on Options bar

Environment

OS Version: Ubuntu20.04
Joplin Version:

Joplin 2.7.13 (prod, linux)

客户端 ID: 1dd2af4cd6e94e98a9d0765407b79dd8
同步版本: 3
配置文件版本: 41
支持的密钥链: 否

修订: 5b5165d

Backup plugin version:

Steps to reproduce

Install Joplin-2.7.13.AppImage
Download the latest released JPL package (io.github.jackgruber.backup.jpl) from here
Close Joplin
Copy the downloaded JPL package in your profile plugins folder
Start Joplin
I cannot find backup menu on Options bar

Please enable the debuging , check for errors in the dev console Help > Toggle Development Tools and post the log file.

Logger.ts:219 15:01:08: Current database version Objecttable_fields_version: 41version: 41[[Prototype]]: Objectconstructor: ƒ Object()hasOwnProperty: ƒ hasOwnProperty()isPrototypeOf: ƒ isPrototypeOf()propertyIsEnumerable: ƒ propertyIsEnumerable()toLocaleString: ƒ toLocaleString()toString: ƒ toString()valueOf: ƒ valueOf()__defineGetter__: ƒ __defineGetter__()__defineSetter__: ƒ __defineSetter__()__lookupGetter__: ƒ __lookupGetter__()__lookupSetter__: ƒ __lookupSetter__()__proto__: (...)get __proto__: ƒ __proto__()set __proto__: ƒ __proto__()
Logger.ts:219 15:01:08: Upgrading database from version 41
Logger.ts:219 15:01:08: New version: 41. Previously recorded version: 41
Logger.ts:219 15:01:08: KeychainService: checking if keychain supported
Logger.ts:219 15:01:08: KeychainService: check was already done - skipping. Supported: 0
Logger.ts:219 15:01:08: e2ee/utils: Master password is not set - trying to get it from the active master key...
Logger.ts:219 15:01:08: handleSyncStartupOperation: Processing operation: 0
Logger.ts:219 15:01:08: App: Client ID: 1dd2af4cd6e94e98a9d0765407b79dd8
Logger.ts:219 15:01:08: models/Setting: Applying default migrations...
Logger.ts:219 15:01:08: e2ee/utils: Trying to load 0 master keys...
Logger.ts:219 15:01:08: e2ee/utils: Loaded master keys: 0
Logger.ts:219 15:01:08: ResourceFetcher: Auto-add resources: Mode: always
Logger.ts:219 15:01:08: ResourceFetcher: Auto-added resources: 0
Logger.ts:219 15:01:08: App: "syncInfoCache" was changed - setting up encryption related code
Logger.ts:219 15:01:08: e2ee/utils: Trying to load 0 master keys...
Logger.ts:219 15:01:08: e2ee/utils: Loaded master keys: 0
Logger.ts:219 15:01:08: App: "syncInfoCache" was changed - setting up encryption related code
Logger.ts:219 15:01:08: e2ee/utils: Trying to load 0 master keys...
Logger.ts:219 15:01:08: e2ee/utils: Loaded master keys: 0
Logger.ts:219 15:01:08: App: "syncInfoCache" was changed - setting up encryption related code
Logger.ts:219 15:01:08: e2ee/utils: Trying to load 0 master keys...
Logger.ts:219 15:01:08: e2ee/utils: Loaded master keys: 0
Logger.ts:219 15:01:08: app.start: doing regular boot
Logger.ts:219 15:01:08: App: "syncInfoCache" was changed - setting up encryption related code
Logger.ts:219 15:01:08: e2ee/utils: Trying to load 0 master keys...
Logger.ts:219 15:01:08: e2ee/utils: Loaded master keys: 0
Logger.ts:219 15:01:08: App: "syncInfoCache" was changed - setting up encryption related code
Logger.ts:219 15:01:08: e2ee/utils: Trying to load 0 master keys...
Logger.ts:219 15:01:08: e2ee/utils: Loaded master keys: 0
Logger.ts:219 15:01:08: App: "syncInfoCache" was changed - setting up encryption related code
Logger.ts:219 15:01:08: e2ee/utils: Trying to load 0 master keys...
Logger.ts:219 15:01:08: e2ee/utils: Loaded master keys: 0
Logger.ts:219 15:01:08: RevisionService: RevisionService::runInBackground: Starting background service with revision collection interval 600000
Logger.ts:219 15:01:09: PluginService: Loading plugin from tobedelete/joplin-desktop//cache/io.github.jackgruber.backup
Logger.ts:219 15:01:09: SpellCheckerServiceDriverNative: Set effective language from "en-US" to "en-US"
/tmp/.mount_joplin88gPgT/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:11494 Warning: componentWillReceiveProps has been renamed, and is not recommended for use. See https://fb.me/react-async-component-lifecycle-hooks for details.

* Move data fetching code or side effects to componentDidUpdate.
* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://fb.me/react-derived-state
* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.

Please update the following components: Connect(MainScreenComponent), Connect(MenuBar), Connect(NavigatorComponent), Connect(RootComponent), Provider
printWarning @ /tmp/.mount_joplin88gPgT/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:11494
/tmp/.mount_joplin88gPgT/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:11494 Warning: componentWillUpdate has been renamed, and is not recommended for use. See https://fb.me/react-async-component-lifecycle-hooks for details.

* Move data fetching code or side effects to componentDidUpdate.
* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.

Please update the following components: Connect(MainScreenComponent), Connect(MenuBar), Connect(NavigatorComponent), Connect(RootComponent)
printWarning @ /tmp/.mount_joplin88gPgT/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:11494
/tmp/.mount_joplin88gPgT/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:11494 Warning: componentWillReceiveProps has been renamed, and is not recommended for use. See https://fb.me/react-async-component-lifecycle-hooks for details.

* Move data fetching code or side effects to componentDidUpdate.
* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://fb.me/react-derived-state
* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.

Please update the following components: Connect(NoteEditor), Connect(NoteListComponent), Connect(NoteListControls), Connect(SearchBar), Connect(SidebarComponent)
printWarning @ /tmp/.mount_joplin88gPgT/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:11494
/tmp/.mount_joplin88gPgT/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:11494 Warning: componentWillUpdate has been renamed, and is not recommended for use. See https://fb.me/react-async-component-lifecycle-hooks for details.

* Move data fetching code or side effects to componentDidUpdate.
* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.

Please update the following components: Connect(NoteEditor), Connect(NoteListComponent), Connect(NoteListControls), Connect(SearchBar), Connect(SidebarComponent)
printWarning @ /tmp/.mount_joplin88gPgT/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:11494
Logger.ts:219 15:01:10: DecryptionWorker: cannot start because no master key is currently loaded.
Logger.ts:219 15:01:10: Preparing scheduled sync
Logger.ts:219 15:01:10: Saving updated Dropbox auth.
Logger.ts:219 15:01:10: Synchroniser is missing credentials - manual sync required to authenticate.
Logger.ts:219 15:01:10: Updating all notifications...
Logger.ts:219 15:01:10: Garbage collecting alarms...
/tmp/.mount_joplin88gPgT/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:11494 Warning: componentWillReceiveProps has been renamed, and is not recommended for use. See https://fb.me/react-async-component-lifecycle-hooks for details.

* Move data fetching code or side effects to componentDidUpdate.
* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://fb.me/react-derived-state
* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.

Please update the following components: Connect(NoteTextViewerComponent), Connect(NoteToolbar), Connect(Toolbar), Connect(ToolbarBaseComponent)
printWarning @ /tmp/.mount_joplin88gPgT/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:11494
/tmp/.mount_joplin88gPgT/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:11494 Warning: componentWillUpdate has been renamed, and is not recommended for use. See https://fb.me/react-async-component-lifecycle-hooks for details.

* Move data fetching code or side effects to componentDidUpdate.
* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.

Logger.ts:219 15:01:12: RevisionService: RevisionService::maintenance: Starting...
Logger.ts:219 15:01:12: RevisionService: RevisionService::maintenance: Service is enabled
Logger.ts:219 15:01:13: RevisionService: RevisionService::collectRevisions: Created revisions for 0 notes
Logger.ts:219 15:01:13: RevisionService: RevisionService::maintenance: Done in 107ms
Logger.ts:219 15:01:18: SearchEngine: Updating FTS table...
Logger.ts:219 15:01:18: SearchEngine: Updated FTS table in 1ms. Inserted: 0. Deleted: 0
Logger.ts:219 15:01:38: ResourceService::indexNoteResources: Start
Logger.ts:219 15:01:39: ResourceService::indexNoteResources: Completed
Logger.ts:219 15:01:39: ResourceService::deleteOrphanResources:
DevTools failed to load source map: Could not parse content for file:///tmp/.mount_joplin88gPgT/resources/app.asar/gui/note-viewer/pluginAssets/mermaid/mermaid.min.js.map: Unexpected end of JSON input
/tmp/.mount_joplin88gPgT/resources/app.asar/node_modules/react-dom/cjs/react-dom.development.js:11494 Warning: componentWillReceiveProps has been renamed, and is not recommended for use. See https://fb.me/react-async-component-lifecycle-hooks for details.

* Move data fetching code or side effects to componentDidUpdate.
* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://fb.me/react-derived-state
* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.

 See https://fb.me/react-async-component-lifecycle-hooks for details.

* Move data fetching code or side effects to componentDidUpdate.
* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.

Hi Jack, thanks for your kindness reply:

I found error message only two line as fllowing

2022-02-25 15:02:48: RepositoryApi: "findWorkingMirror: Could not connect to https://raw.githubusercontent.com/joplin/plugins/master:", "TypeError: Failed to fetch

2022-02-25 15:13:50: PluginState: "FetchError: response timeout at https://raw.githubusercontent.com/joplin/plugins/master/manifests.json over limit: 120000
FetchError: response timeout at https://raw.githubusercontent.com/joplin/plugins/master/manifests.json over limit: 120000
    at /tmp/.mount_joplin88gPgT/resources/app.asar/node_modules/@joplin/lib/node_modules/node-fetch/lib/body.js:117:12"

and, the full log.txt is uploaded, please help to check it out.
log.txt

The content of the logfile is only not found or the uploaded logfile was not found.
Do other plugins work?
Because I rather believe that the problem does not come from the plugin, but rather directly from Joplin.

We have only installed the Backup plugin, and will try other plugin later.
Sorry, our network quality is unstable, which led to the failure of logfile upload.
i have re upload it here, please take a look.
log.txt

I think you should open a issuee direct in the Joplin repro.
The only thing I can see in the log is the following line for the plugin load. I'm not sure do use use the unsupportet profile flag?
Since I think the path should be ~/.config/joplin-desktop/
2022-02-25 10:21:44: PluginService: "Loading plugin from tobedelete/joplin-desktop//cache/io.github.jackgruber.backup"

A normal plugin load looks like this:
2022-02-25 06:54:41: PluginService: "Loading plugin from C:/Users/gruber/.config/joplin-desktop/cache/io.github.jackgruber.backup"
2022-02-25 06:54:42: joplin.plugins: "Starting plugin: io.github.jackgruber.backup"
2022-02-25 06:54:43: joplin.plugins: "Finished running onStart handler: io.github.jackgruber.backup (Took 860ms)"

@JackGruber  Thank you very much for your detailed analysis and guidance!
I did start joplin by the profile flag, as joplin --profile /home/stone/tobedelete
I will try something follow your ideas.

Ok, possible this is your problem. The Switch --profile is not supported by Joplin and also led to problems with css files I think.

thank you so much, the issue is closed.


"Path to Raku" is missing change of linux module namespaces

There are many packaged Perl 6 modules in Linux distributions, for example: https://aur.archlinux.org/packages/perl6-geoip2/
(Arch Linux has 40 of them in perl6- namespace, Debian has 10 in perl6- and libperl6- namespaces).
Module authors are often not Linux package maintainers and are not aware that their work was redistributed. So I think "Path to Raku" should address this issue separately. Probably Linux package maintainers should be contacted directly to re-release under new raku namespace.

OK, so what should we do on our side? I don't really see anything actionable. Should package maintainers replace "perl6" with "raku"? Yeah, of course, likely in some backward compatible way. But in the end I think they decide themselves what should be done.
Ping @robertlemmen @dod38fr

On Debian side, we're still figuring out how to investigate the build failures we've seen on mips.
Our team is quite small so we tackle one problem at a time and we've not talked much about renaming perl6 to raku.  I don't see any problem renaming the package to raku-something.
One issue I can see is whether the transition will be smooth (i.e. raku is able to load libraries from usr/share/perl6 and /usr/share/raku) or hard (raku is not aware of older perl6 names)
Hope this helps


chore: try to fix preview action vulnerability

Checklist

[ ] npm test passes
[ ] tests and/or benchmarks are included
[ ] commit message follows commit guidelines

Description of change

需要合并后才能验证 action。


Line Chart | Line Curve . How I can replace line by curve in Line Chart.

Hi Guys, anything on this?


types should be dev dependencies

Fix for https://github.com/panuhorsmalahti/gulp-tslint/issues/126
This issue broke my react-native build as I ended up pulling in the types/node types which conflicted with the types/react-native types. Easy enough to fix though :)

Thank you for the contribution 👍


pull request for e2e test at 12/18/2016 08:26:17

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Upgrade from deprecated django-social-auth to python-social-auth

Or maybe to django-allaccess?

@chefscott Is there a particular 2016 need to have this update performed, or is this something we could save until right after the conference, when we have a month or two when bigger changes to the site might carry less risk?


result is not correct

I modify the positions of each agent in example.py,  and visualize the trajectories, the result is not correct.

The specific problem is that, when  I set two agents facing each other in the same height (but opposite x,y value) and their goals are opposite location of their current location, the two agents will be trapped in the middle way.


Bug, version 4.3.6 not work

I use version 4.3.6 and it doesn't work

@gulivero1773 I accidentally created a tag on the wrong thread yesterday, check 4.3.7

Yes it works, thank you


req.accepts returns true when accept does not exist

This seems a bit backwards to me. Shouldn't it return false and let the application code fall through to their chosen handler?
Think:
if (accept json) { ..}
else if (accept xml) { ...}
else { ... }
Tested on express 2.x line.

it should return false if Accept doesn't match

Correct.. but when there is no accepts header it returns true. I think that
is incorrect behavior.
On Feb 10, 2012 11:11 PM, "TJ Holowaychuk" <
<EMAIL_ADDRESS>wrote:

it should return false if Accept doesn't match

Reply to this email directly or view it on GitHub:
https://github.com/visionmedia/express/issues/1003#issuecomment-3918467

OHHh I see what you're saying. That's as per RFC: "If no Accept header field is present, then it is assumed that the client accepts all media types. "

well then :) sorry about the issue spam.
i would add that if you have accepts return false, the app will still behave per rfc and make it easier to have a default case as per my above example.


chore: change path for karma build report tool

change path of cobertura and junit.

test

Can one of the admins verify this patch?

test this please


Fix ShellCheck SC2235 issue

https://github.com/koalaman/shellcheck/wiki/SC2235

I wonder if this PR should just be closed as the commit was over write but actually shouldn't look like this?

I intentionally overwrote it; the new commit works just fine.

Thanks.

I don't know. If I made some changes, maybe they are just small, does that mean I should be prepared my pull request would be directly overwritten? I don't think GitHub's "Allow edits from maintainers." was designed for this purpose. The changes are the same, so I don't know the reason why that my small work should be taken, even use the same pull request, even worse then directly commit in master branch, but both not good.

I believe this is the second time we have this issue, I really appreciate this useful project and your effort, but I don't appreciate this style, don't know any other famous free and open source project maintainer doing the same ...

Since i already had the commit, the typical approach would be to push it to master and just close the PR. however, i prefer not to litter my repos with orphaned PR refs, so i updated this PR to point to that same commit.

You can still close this PR in the same commit, which may be better.

It’s not a problem by default, since by default you’re not fetching PR refs. However, i do fetch them all, so an orphaned ref ends up cluttering my git log.

Again tho, can you answer the question above? If the alternative is closing the PR and abandoning it (at which point you’ll just delete your branch), and i still use my commit regardless, why do you care if i force push to the PR or not?

My commit is good enough in this case and I didn't see a good reason to erase it, I haven't see any other projects doing so.

Ok, so your objection is unrelated to force pushing, and just that i didn’t use your commit.
Plenty of projects prefer one commit over alternatives - that someone made a PR doesn’t entitle their PR to be merged. It happens tons of times on many projects.
Your commit was fine, but i already had one prepared, and i preferred to use mine. I’m sorry if that upset you, but if that’s going to upset you, then what would be appropriate is to ask maintainers before making a PR in the first place, precisely to avoid feeling upset that your PR might not be directly accepted. eslint, for example, refuses all PRs that don’t first have issues with explicit approval.


TW not working with Safari

Hello, all: one of my co-workers is complaining that TaxonWorks is not working with his browser [= Safari].
Is it possible to take a look at it?

TaxonWorks is only officially supported on Firefox and Chrome.

@debpaul this is in taxonworks_doc, but ultimately needs prominence.


[INFINITY-114] post install notes

cc @kow3ns @nickbp
PTAL.  keith wanted the pre install notes made consistent.

LGTM


Screen share on individual clients dosent work

Hyprland Version
Hyprland, built from branch main at commit 8bd86cf37e245088433156796f1bc72542ca09ad dirty (hyprctl: order commands alphabetically (4061)). Tag: v0.33.0-6-g8bd86cf3
Bug or Regression?
Bug
Description
Screen sharing using hyprland-share-picker dosent work on individual clients in discord-screenshareaudio or google-meet

only a blank background with a cursor is present when sharing clients
also on the latest build of  xdg-desktop-portal-hyprland-git   and hyprland-git
How to reproduce
1. Initiate the Google Meet application.
2. Activate the screen-sharing feature utilizing the share picker tool to present visual content  from the  clients.
3.Observe a solitary, immobile cursor against a featureless background.

Crash reports, logs, images, videos
No response

patch.txt
try this

@vaxerski screensharing was broken today, after building with that patch it works again :+1:


[Storage Blob] Update .nycrc for blob package to fix the report

/azp run js - storage-blob - tests

/azp run js - storage-blob - tests

closing in favor of https://github.com/Azure/azure-sdk-for-js/pull/12968


该api目录下所有类平铺，没有分package组织，可读性和检索效率较低

https://github.com/openGemini/opengemini-client-java/blob/e882349be2a3e58e25d4372460ddd4f58f500546/opengemini-client-api/src/main/java/io/opengemini/client/api/OpenGeminiAsyncClient.java#L9

Thanks for your report, I would suggest not to change this, it is not many and will not increase in the foreseeable future. Free feel to reopen this issue if you have other questions.
BTW, I found InsecureTrustManager should in the common module instead of api module.


The extraTunnelHeaders is not sent while making a request in 1.4.x

The extraTunnelHeaders is not sent while making a request in 1.4.x
so I did fix it by restoring version 1.3.1
Originally posted by @TaeHyunChi in https://github.com/padarom/guacamole-common-js/issues/16#issuecomment-1073695791

Were you using 1.4.0? After this was reported in #16 I published a follow-up patch 1.4.0-a. I just installed that version locally and to me its files look fine:

Why not @1.4.1? I guess it`s not a pre-release 🤔

Because I want to keep the versioning scheme of this npm library in line with upstream Guacamole. If they end up releasing 1.4.1 it clashes with the version number I chose, see https://github.com/padarom/guacamole-common-js#version-numbers


Add static IP configuration for Bottlerocket.

Issue #, if available:
Description of changes:
Add static IP configuration for Bottlerocket.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve


[provider-local] Drop MachineClass Helm chart

How to categorize this PR?

/area dev-productivity
/kind enhancement
What this PR does / why we need it:
This PR drops provider-local's MachineClass Helm chart and instead deploys the resources directly via Golang.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
FYI @kon-angelo @shaoyongfeng @afritzler @majst01 @Gerrit91 @JensAc: Perhaps you'd like to follow a similar approach in the other provider extensions as well.
Release note:

NONE

/approve


WIP NETOBSERV-1471 add tcp write stage

Description
This PR adds TCP write stage to FLP.
We need to decide if we move to gRPC instead before merging.
Dependencies
n/a
Checklist
If you are not familiar with our processes or don't know what to answer in the list below, let us know in a comment: the maintainers will take care of that.

[ ] Will this change affect NetObserv / Network Observability operator? If not, you can ignore the rest of this checklist.
[ ] Is this PR backed with a JIRA ticket? If so, make sure it is written as a title prefix (in general, PRs affecting the NetObserv/Network Observability product should be backed with a JIRA ticket - especially if they bring user facing changes).
[ ] Does this PR require product documentation?

[ ] If so, make sure the JIRA epic is labelled with "documentation" and provides a description relevant for doc writers, such as use cases or scenarios. Any required step to activate or configure the feature should be documented there, such as new CRD knobs.

[ ] Does this PR require a product release notes entry?

[ ] If so, fill in "Release Note Text" in the JIRA.

[ ] Is there anything else the QE team should know before testing? E.g: configuration changes, environment setup, etc.

[ ] If so, make sure it is described in the JIRA ticket.

QE requirements (check 1 from the list):

[ ] Standard QE validation, with pre-merge tests unless stated otherwise.
[ ] Regression tests only (e.g. refactoring with no user-facing change).
[ ] No QE (e.g. trivial change with high reviewer's confidence, or per agreement with the QE team).

Closing this in favor of https://github.com/netobserv/flowlogs-pipeline/pull/621


Add a push button to manually turn on/off the lights

Good evening
I've been working on this project for the last week, so it came this idea to add a push button to manually turn on and off the lights. After studying where this instructions had to be placed, I finally found that is on Switch.cpp (continue reading).
There's a void called Switch::handleUpnpControl() which I presume this is the one that controls when you ask Alexa to turn on/off the device, this is where I add some code lines to include a push button.
RESULTS:

I can get Alexa to turn on/off the device.
The code detects the push button BUT it only makes changes when the button is pressed and I had to ask Alexa to turn on/off the lights. I thought this can be because there's some statement that I can not found yet that takes the instruction direct to this void.

Any ideas of how we could add this button to had a fully functional smart device?
I also added some new lines to the original Wemos page to make the device smarter, I will upload the pull request once the push button is coded.
Things I added:

Automatic reset when connection lost or not found.
Detection for and OLED display to show a little logo, SSID and IP address.

For this changes stay tuned.
This is what I modified on Switch.cpp:

void Switch::handleEventservice(){
  Serial.println(" ########## Responding to eventservice.xml ... ########\n");

  String eventservice_xml = "<scpd xmlns=\"urn:Belkin:service-1-0\">"
        "<actionList>"
          "<action>"
            "<name>SetBinaryState</name>"
            "<argumentList>"
              "<argument>"
                "<retval/>"
                "<name>BinaryState</name>"
                "<relatedStateVariable>BinaryState</relatedStateVariable>"
                "<direction>in</direction>"
                "</argument>"
            "</argumentList>"
          "</action>"
          "<action>"
            "<name>GetBinaryState</name>"
            "<argumentList>"
              "<argument>"
                "<retval/>"
                "<name>BinaryState</name>"
                "<relatedStateVariable>BinaryState</relatedStateVariable>"
                "<direction>out</direction>"
                "</argument>"
            "</argumentList>"
          "</action>"
      "</actionList>"
        "<serviceStateTable>"
          "<stateVariable sendEvents=\"yes\">"
            "<name>BinaryState</name>"
            "<dataType>Boolean</dataType>"
            "<defaultValue>0</defaultValue>"
           "</stateVariable>"
           "<stateVariable sendEvents=\"yes\">"
              "<name>level</name>"
              "<dataType>string</dataType>"
              "<defaultValue>0</defaultValue>"
           "</stateVariable>"
        "</serviceStateTable>"
        "</scpd>\r\n"
        "\r\n";

    server->send(200, "text/plain", eventservice_xml.c_str());
}

void Switch::handleUpnpControl(){
  Serial.println("########## Responding to  /upnp/control/basicevent1 ... ##########");

  //for (int x=0; x <= HTTP.args(); x++) {
  //  Serial.println(HTTP.arg(x));
  //}

pinMode(Boton,INPUT_PULLUP); // PUSH BUTTON
Estado = digitalRead(Boton); // STATE

  String request = server->arg(0);
  Serial.print("request:");
  Serial.println(request);

  if(request.indexOf("SetBinaryState") >= 0) {
    if(request.indexOf("<BinaryState>1</BinaryState>") >= 0) {
        Serial.println("Got Turn on request");
        switchStatus = onCallback();

        sendRelayState();
// Push Button for turning off the lights
        Estado = digitalRead(Boton);

      if(Estado != HIGH){
        request.indexOf("<BinaryState>0</BinaryState>") >= 0;
        Serial.println("Got Turn off request");
        switchStatus = offCallback();

        sendRelayState();
      }
// MOD END
    }

    if(request.indexOf("<BinaryState>0</BinaryState>") >= 0) {
        Serial.println("Got Turn off request");
        switchStatus = offCallback();

        sendRelayState();

// Push Button for turning on the lights
        Estado = digitalRead(Boton);

      if(Estado != HIGH){
        request.indexOf("<BinaryState>1</BinaryState>") >= 0;
        Serial.println("Got Turn on request");
        switchStatus = onCallback();

        sendRelayState();
      }
// MOD END
    }

  }

  if(request.indexOf("GetBinaryState") >= 0) {
    Serial.println("Got binary state request");
    sendRelayState();
  }

  server->send(200, "text/plain", "");

}

Thank you very much and keep safe.

ChompsR

Thanks for sharing. FYI Emulator technique time to time cause problems. I
have switched to amazon skill based solution now using https://sinric.pro
On Thu, 23 Apr 2020 at 6:56 AM ChompsR<EMAIL_ADDRESS>wrote:

Good evening
I've been working on this project for the last week, so it came this idea
to add a push button to manually turn on and off the lights. After studying
where this instructions had to be placed, I finally found that is on
Switch.cpp (continue reading).
There's a void called Switch::handleUpnpControl() which I presume this is
the one that controls when you ask Alexa to turn on/off the device, this is
where I add some code lines to include a push button.
RESULTS:

I can get Alexa to turn on/off the device.
The code detects the push button BUT it only makes changes when the
button is pressed and I had to ask Alexa to turn on/off the lights. I
thought this can be because there's some statement that I can not found yet
that takes the instruction direct to this void.

Any ideas of how we could add this button to had a fully functional smart
device?
I also added some new lines to the original Wemos page to make the device
smarter, I will upload the pull request once the push button is coded.
Things I added:

Automatic reset when connection lost or not found.
Detection for and OLED display to show a little logo, SSID and IP
address.

For this changes stay tuned.
This is what I modified on Switch.cpp:
void Switch::handleEventservice(){
Serial.println(" ########## Responding to eventservice.xml ... ########\n");
String eventservice_xml = "<scpd xmlns="urn:Belkin:service-1-0">"
""
""
"SetBinaryState"
""
""
""
"BinaryState"
"BinaryState"
"in"
""
""
""
""
"GetBinaryState"
""
""
""
"BinaryState"
"BinaryState"
"out"
""
""
""
""
""
"<stateVariable sendEvents="yes">"
"BinaryState"
"Boolean"
"0"
""
"<stateVariable sendEvents="yes">"
"level"
"string"
"0"
""
""
"\r\n"
"\r\n";
server->send(200, "text/plain", eventservice_xml.c_str());

}
void Switch::handleUpnpControl(){
Serial.println("########## Responding to  /upnp/control/basicevent1 ... ##########");
//for (int x=0; x <= HTTP.args(); x++) {
//  Serial.println(HTTP.arg(x));
//}
pinMode(Boton,INPUT_PULLUP); // PUSH BUTTON
Estado = digitalRead(Boton); // STATE
String request = server->arg(0);
Serial.print("request:");
Serial.println(request);
if(request.indexOf("SetBinaryState") >= 0) {
if(request.indexOf("1") >= 0) {
Serial.println("Got Turn on request");
switchStatus = onCallback();
    sendRelayState();

// Push Button for turning off the lights
Estado = digitalRead(Boton);
  if(Estado != HIGH){
    request.indexOf("<BinaryState>0</BinaryState>") >= 0;
    *Serial*.println("Got Turn off request");
    switchStatus = offCallback();

    sendRelayState();
  }

// MOD END
}
if(request.indexOf("<BinaryState>0</BinaryState>") >= 0) {
    *Serial*.println("Got Turn off request");
    switchStatus = offCallback();

    sendRelayState();

// Push Button for turning on the lights
Estado = digitalRead(Boton);
  if(Estado != HIGH){
    request.indexOf("<BinaryState>1</BinaryState>") >= 0;
    *Serial*.println("Got Turn on request");
    switchStatus = onCallback();

    sendRelayState();
  }

// MOD END
}
}
if(request.indexOf("GetBinaryState") >= 0) {
Serial.println("Got binary state request");
sendRelayState();
}
server->send(200, "text/plain", "");
}
Thank you very much and keep safe.

ChompsR

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/kakopappa/arduino-esp8266-alexa-multiple-wemo-switch/issues/74,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABZAZZWQJGUA5WSTXHXE3MDRN574VANCNFSM4MOTF2LQ
.

Kakopappa, thank you very much! Sinric Pro skill is amazing, and the codes/libraries/examples, just wow, I'm really impressed, if you don't mind I will make some changes to the Switch example just to add the lines that I've already coded on wemo's example.
I'll be in touch!


use of sarif-to-markdown

Hello,
I'm trying to convert a sarif file to markdown text using sarif-to-markdown but I'm getting the following error:
$ npm install @security-alert/sarif-to-markdown

added 4 packages in 234ms

$ npx @security-alert/sarif-to-markdown input.sarif
npm ERR! could not determine executable to run

npm ERR! A complete log of this run can be found in: /home/root/.npm/_logs/2024-02-22T19_10_07_331Z-debug-0.log

What could this be causing and how to use this package correctly?

@security-alert/sarif-to-markdown does not includes a CLI.
Therefore, even if you execute it in NPX, it will be an error.
It may be a good idea to use util.parseArgs to add CLI.


Add PGAdmin4 in SUM and external postgresql

The Postgresql data base in SUM is not accessible by external app. The PGadmin4 in the SUM allow this access.
It could be better to have the possibility to externalize the database. It could be done with environment variables.

Trello card: [#185] Add PGAdmin4 in SUM and external postgresql


Hello Getting error when passing youtube rtmp in broadcast

Hello,
I am passing youtube rtmp url to broadcast call and i am getting an error
Request failed. The request has failed for an unhandled reason. If you expect an error feel free to create an issue for the project anytime.
broadcast call Request
$api_key = EYESON_API_KEY;
$stream_url = "rtmps://a.rtmps.youtube.com/live2/YOUTUBE_STREAM_KEY";
$platform = "generic";
$access_key = $data->access_key;
$eyeson = new Eyeson($api_key);
$broadcast = $eyeson->broadcast($access_key, $platform, $stream_url);

Hi,
I don't know how the $eyeson->broadcast method looks like, because it's not implemented in eyeson-php. Can you share the code for a closer look?
What I can tell so far is that the error message might be shown as a result of a bad request (400) and the reason for this can be a missing parameter. Please make sure that stream_url is passed correctly as parameter (see https://eyeson-team.github.io/api/api-reference/#broadcast).
Best regards,
Stefan

Hello. $eyeson->broadcast is from eyeson php library which is calling their broadcast. I am passing youtube rtmp url with stream key in the url. Url is fine since i tried with OBS studio and it works. Access key is the eyeson room key which is active. It works if i am not using yt rtmp but a generic rtmp such as mux

Good news, we have fixed the issue with Youtube rtmps stream urls, so it will work now with your initial settings.
Can you confirm it's working for you? Thank you in advance.

Hello @opusonline , it is working with original settings. Thank you. You can close this issue


sync: dp init

are you planning on adding this differently or can we sync from master-c3

will reopen once everything is added.... i dont want action to go off everycommit lol


Similar to topk/bottomk, have sort/sort_desc put NaN at end.

This makes topk and bottomk consistent with the sorting functions,
as per #1271.
@fabxc

That's the appropriate behavior I'd say.
:+1: for implementation after doc strings.


[Request] Include datfile snippet in machine parseable file for Xbox 360 variable files (SS, PFI, DMI)

It'd be useful, so the size, md5 and sha1 can also be included in redump submissions, so that a datfile could potentially be made via scripts. Currently the data isn't very machine-readable, so that makes it difficult for MPF to use it, therefore difficult for redump to include that data.
See also: https://github.com/SabreTools/MPF/issues/482

Hashes of those files are outputted in _disc.txt. Does it mean that you hope that those are outputted in .dat?

Hashes of those files are outputted in _disc.txt. Does it mean that you hope that those are outputted in .dat?
If they could be in a separate dat file (but not the main dat file), that'd be great.

DiscImageCreator_test.zip

added: _suppl.dat for .scm,  .img,  _SS.bin, _DMI.bin, _PFI.bin, _PIC.bin

Sorry, was waiting for feedback from DarkSabre, but I think this looks good, thanks.


Add strike price publish time to Speed market

Minor change: Align Speed AMM setter for max risk per asset on zkSync with other networks

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

Project coverage is 83.94%. Comparing base (6d4daee) to head (cb23629).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #458   +/-   ##
=======================================
  Coverage   83.94%   83.94%
=======================================
  Files         113      113
  Lines        3600     3600
  Branches     1887     1887
=======================================
  Hits         3022     3022
  Misses        578      578

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


update docs for reference fields

By the way, I didn't include the output of make protos because doing so changed all the proto generated files and added some new ones. Perhaps you can make sense of that @timburks ?

@theganyo let's regenerate those files in this PR to avoid downstream confusion. I think it will be clear to reviewers/posterity that this was a small change to the protos.

@timburks Ok, I did it... and made changes to get it working and passing lint again. What I'm wondering: If you check this out and run make protos will we have changes again or will this be correct? Can you try it?

@theganyo yes, I'll try duplicating this. These are a lot more changes than I expected, I wonder how much is due to changes in the generators themselves.

@theganyo thanks for doing this, I've worked partly through all the implications of updating the code generators and don't think it's worth redoing all the changes you made here. Let's merge it.

Here's the diff that I see when I checkout this branch and rerun make all:
~/Desktop/registry$ git diff
diff --git a/rpc/admin_service.pb.go b/rpc/admin_service.pb.go
index ecd5cf3..aef4cca 100644
--- a/rpc/admin_service.pb.go
+++ b/rpc/admin_service.pb.go
@@ -21,15 +21,14 @@
 package rpc

 import (
-       reflect "reflect"
-       sync "sync"
-
-       longrunning "cloud.google.com/go/longrunning/autogen/longrunningpb"
        _ "google.golang.org/genproto/googleapis/api/annotations"
+       longrunning "google.golang.org/genproto/googleapis/longrunning"
        protoreflect "google.golang.org/protobuf/reflect/protoreflect"
        protoimpl "google.golang.org/protobuf/runtime/protoimpl"
        emptypb "google.golang.org/protobuf/types/known/emptypb"
        fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
+       reflect "reflect"
+       sync "sync"
 )

 const (
diff --git a/rpc/admin_service_grpc.pb.go b/rpc/admin_service_grpc.pb.go
index 256bccc..ac42c78 100644
--- a/rpc/admin_service_grpc.pb.go
+++ b/rpc/admin_service_grpc.pb.go
@@ -22,8 +22,7 @@ package rpc

 import (
        context "context"
-
-       longrunning "cloud.google.com/go/longrunning/autogen/longrunningpb"
+       longrunning "google.golang.org/genproto/googleapis/longrunning"
        grpc "google.golang.org/grpc"
        codes "google.golang.org/grpc/codes"
        status "google.golang.org/grpc/status"
diff --git a/rpc/provisioning_service.pb.go b/rpc/provisioning_service.pb.go
index e0ec820..3763144 100644
--- a/rpc/provisioning_service.pb.go
+++ b/rpc/provisioning_service.pb.go
@@ -21,14 +21,13 @@
 package rpc

 import (
-       reflect "reflect"
-       sync "sync"
-
-       longrunning "cloud.google.com/go/longrunning/autogen/longrunningpb"
        _ "google.golang.org/genproto/googleapis/api/annotations"
+       longrunning "google.golang.org/genproto/googleapis/longrunning"
        protoreflect "google.golang.org/protobuf/reflect/protoreflect"
        protoimpl "google.golang.org/protobuf/runtime/protoimpl"
        timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+       reflect "reflect"
+       sync "sync"
 )

 const (
diff --git a/rpc/provisioning_service_grpc.pb.go b/rpc/provisioning_service_grpc.pb.go
index bf998e4..04e3424 100644
--- a/rpc/provisioning_service_grpc.pb.go
+++ b/rpc/provisioning_service_grpc.pb.go
@@ -22,8 +22,7 @@ package rpc

 import (
        context "context"
-
-       longrunning "cloud.google.com/go/longrunning/autogen/longrunningpb"
+       longrunning "google.golang.org/genproto/googleapis/longrunning"
        grpc "google.golang.org/grpc"
        codes "google.golang.org/grpc/codes"
        status "google.golang.org/grpc/status"

@theganyo since you're out today, I'll push the merge button and submit a followup PR for the small changes that seem to be remaining.


DeliveryAttempt Model

Introduces a new model which will hold delivery attempts.
Depends on #223 .

Just wanted to check in here with the range of status' have you considered the scenarios for when Notify 400s or similar? Where we might need to set the status without hearing anything back from Notify

@kevindew Yeah, so when we get a 400 we set it to internal-failure which suggests retrying will not help (because it's most likely that our api key is misconfigured) and when we get a 429 we set it to technical-failure which will eventually trigger a retry.


Feature: Possible to change the icons directory

Is it possible to change the /components/global directory. I have checked the code of this module, but it seems to me that it could be something that's inside Nuxt 3?
Proposition:
  nuxtIcon: {
    size: "16px",
    source: '~/components/icons' // or an array with multiple values
  },

The only requirement is that the component is defined as global, thus the components/global/
You can set a component to be global by using the nuxt.config:
export default defineNuxtConfig({
  components: [
    { path: '~/components/icons', global: true ],
    '~/components',
  }
})

See live demo on https://stackblitz.com/edit/nuxt-icon-playground-gyhf3n?file=nuxt.config.ts

Great, this works!
This can be closed, just a note from working with config extend.
I had to make an change for my setup with a monorepo and a config extends:
components: [
	{
		path: './components/icons', global: true
	},
	'./components'
]

The ~ notation didn't work, and i had to change to use a dot.
The custom component in the base directory works, but in the root it doesn't work if i don't added the same code for the nuxt.config.ts. When adding duplicate code to base and root the components key, then it works.
I might have the wrong concept here, but i thought that the base and ui config, components got merged (root being highest priority), so that the components configuration in nuxt.config, should already be there.
Example: Reproduction

Any hint regarding the reproduction @danielroe ?

Yes, this is correct. But ~ always points to the finally resolved source directory, and ~~ to the finally resolved root directory. So within a theme you plan to extend from, you should use relative imports.
We do plan to support named layer aliases so you could do something like ~base/components but that's next on the list: https://github.com/nuxt/framework/issues/3222.

@danielroe Thank you for the explanation and the extends feature is great in Nuxt 3!


UWP TextBlock in ScrollViewer crashes the application when zoomed in

In UWP application, when you put a TextBlock in the ScrollViewer, you set the MaxZoomFactor property to some large number (default is 10, set it to 10000000) and then you zoom in, the application becomes unresponsive, GPU will run at ~100%, everything will slow down and eventually the application crashes.
Interestingly, this happens only with a TextBlock inside the ScrollViewer. When you replace the TextBlock by a Rectangle for example (or some other control that does not include TextBlock), it works fine and you are able to zoom in/out without any issues.
The same application works fine in WPF where it is able to handle 50000000% and more without memory usage increase or a drop in performance.
AppZoom.zip

Beware: Save all your work before running the sample, you PC might become unresponsive and you might have to reboot.
There used to be a workaround for this issue in Windows 8.1 Universal applications where you could set CacheMode="BitmapCache" onto the TextBlock. Then the high zoom levels would work, but the text was aliased badly. This workaround is no longer working in Windows 10 (currently tested in 1903).

This piece of XAML is all it takes to reproduce the issue:
`
<Grid>
    <ScrollViewer ZoomMode="Enabled" MaxZoomFactor="10000000" HorizontalScrollMode="Enabled" VerticalScrollMode="Enabled" HorizontalScrollBarVisibility="Visible" CacheMode="BitmapCache">
        <TextBlock FontSize="30" Text="SampleText"  /><!-- Crashes when zoomed in -->
        <!--<Rectangle Width="100" Height="100" Fill="Red" />--><!-- Does not crash when zoomed in -->
    </ScrollViewer>
</Grid>

`

Any progress on this?

Before this issue gets closed for inactivity, has anyone tried to reproduce it?

Could somebody please try to reproduce it? Or am I the only one seeing it?

It's been more than 2 months and this item has not even been triaged, should I report it somewhere else? The WinUI github page?

@jimm98y Yes, the WinUI repo.
UWP is only related to .NET in the respect that you can consume .NET APIs if you so desire.


What is the correct way to handle errors?

Should I return an error or should I create an Error field inside my Response struct?
func (t *Adder) Add(args Args, response *Response) error { }
Thanks

Just ignore it. The returned error works fine. It was the panicking that messed out.


Feature Request - Add Option to Toggle Unused UI Buttons

As shown in the screenshot, I'm already logged in to GitHub and use Enter to run commands.
The last two UI buttons are unnecessary. Could you please add an option in the settings to turn them off?

@matmult I believe you're not actually signed into GitHub yet in that current Kit session. Otherwise it would just show your profile picture. Nevertheless, this request seems to come up repeatedly, most recently in Discord...
I think you I wouldn't really wanna get rid of it because it also serves as access to the task manager and the sign out button 🤔


Tutorial->Navigation->Step 14 implicit boolean conversion required?

The implicit boolean conversion is marked by SAP WebIDE as wrong/strong warning and actually, if you let it away than the coding stills works. Is this required (implicit boolean conversion).
PS: Not sure whether this is an issue, however it can confuses the developers (strong warning) and I do not see any need for this.

https://openui5beta.hana.ondemand.com/#docs/guide/5cc3147afc8d4854b5d3c5fc20923f77.html

Hi Rajvlund,
thanks for reporting. This is a WebIDE issue, though. I will open an issue for my collegues and ask them to report back to you. Please use the 'Feedback' button in the WebIDE for WebIDE issues (You can see it in your screenshot in the upper right corner)
Best Regards,
Martin


[SPARK-14848][SQL] Compare as Set in DatasetSuite - Java encoder

What changes were proposed in this pull request?
Change test to compare sets rather than sequence
How was this patch tested?
Full test runs on little endian and big endian platforms

LGTM

Can one of the admins verify this patch?

ok to test

Test build #56698 has started for PR 12610 at commit 9203f72.

Test build #56698 has finished for PR 12610 at commit 9203f72.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/56698/
Test PASSed.


bug: v3 Drawer not easing out when closed.

What version of daisyUI are you using?
3.0.0
Describe your issue
Prior to the release of 3.0.0 the drawer would transition out of view upon closing. I could not identify the specific issue here but it seems that once the drawer-toggle becomes unchecked, the menu's position shifts far below the viewport, but the transition still occurs. It appears to be this way in the documentation as well, so I'm not sure if this was intentional or not.
Further inspection of the previous release's docs, the drawer component transitions back properly. Forgive me if this was not clear. I can provide examples if need be.
What browsers are you seeing the problem on?
Chrome
Reproduction URL (optional)
https://play.tailwindcss.com/tuvGBNRfca

also have wrong transition rtl enabled...

also have wrong transition rtl enabled...

What's rtl?

also have wrong transition rtl enabled...

What's rtl?

Right To Left

Can I fix this? @saadeghi
LMK if this is the expected behavior @tyler-audio
https://github.com/saadeghi/daisyui/assets/53368431/3281d8f1-5eee-4d7d-90e2-30e51370c565

Can I fix this? @saadeghi
LMK if this is the expected behavior @tyler-audio
Screen.Recording.2023-06-03.at.2.29.57.PM.mov

v2 is the expected behavior: https://v2.daisyui.com/components/drawer/

Can I fix this? @saadeghi

Sure. Much appreciated 🙌

My apologies.

Can I fix this? @saadeghi
LMK if this is the expected behavior @tyler-audio
Screen.Recording.2023-06-03.at.2.29.57.PM.mov

This looks close to the expected behavior. Reference v2 docs to be sure. It looks like the overlay might have some transition on it as well.

@saadeghi I might hop in to fix this. I'm looking at the CSS differences between V2 and V3 and noticed many changes. Is it as simple as just moving more of that code back into V3? Could you give me a general direction on which area to look?
https://github.com/saadeghi/daisyui/blob/v2.52.0/src/components/styled/drawer.css
https://github.com/saadeghi/daisyui/blob/master/src/components/styled/drawer.css

Can I fix this? @saadeghi
LMK if this is the expected behavior @tyler-audio
Screen.Recording.2023-06-03.at.2.29.57.PM.mov

@anjantalatam Hey, any updates on this? I'm willing to work on this if you want

Can I fix this? @saadeghi
LMK if this is the expected behavior @tyler-audio
Screen.Recording.2023-06-03.at.2.29.57.PM.mov

@anjantalatam Hey, any updates on this? I'm willing to work on this if you want

I would say go for it since they've haven't replied for a week.

Yes, PRs are welcome.
Honestly I'm a little busy with other issues right now and this one has lower priority.
Here's the contribution guide: https://github.com/saadeghi/daisyui/blob/master/.github/CONTRIBUTING.md
Let me know if you needed help

@saadeghi I believe I have fixed the transition issues. They were blocked because the overlay's dimensions became 0x0 the moment the drawer was closed, and the side was made invisible also when the drawer was closed. However, the animation timings look a bit dodgy now seeing it close properly so I'd just like to make sure with you that this is fine.
https://github.com/saadeghi/daisyui/assets/54014569/b2b6b120-37ab-4393-bb3f-993ed7975732
I wasn't sure whether to ask this in the PR or not because I'm new to this (I'm 14) so any help would be appreciated. Thanks!

@saadeghi I believe I have fixed the transition issues. They were blocked because the overlay's dimensions became 0x0 the moment the drawer was closed, and the side was made invisible also when the drawer was closed. However, the animation timings look a bit dodgy now seeing it close properly so I'd just like to make sure with you that this is fine.
Screen.Recording.2023-06-12.at.10.03.02.PM.mov
I wasn't sure whether to ask this in the PR or not because I'm new to this (I'm 14) so any help would be appreciated. Thanks!

Almost there. If you look at the v2 documentation, you'll see there is a slight translate on the backdrop.

Is that not a glitch? I can add it but I’m not sure whether it was intended.
On Mon, 12 Jun 2023 at 10:40 PM, tansan.eth @.***>
wrote:

@saadeghi https://github.com/saadeghi I believe I have fixed the
transition issues. They were blocked because the overlay's dimensions
became 0x0 the moment the drawer was closed, and the side was made
invisible also when the drawer was closed. However, the animation timings
look a bit dodgy now seeing it close properly so I'd just like to make sure
with you that this is fine.
Screen.Recording.2023-06-12.at.10.03.02.PM.mov
I wasn't sure whether to ask this in the PR or not because I'm new to this
(I'm 14) so any help would be appreciated. Thanks!
Almost there. If you look at the v2 documentation, you'll see there is a
slight translate on the backdrop.
—
Reply to this email directly, view it on GitHub
https://github.com/saadeghi/daisyui/issues/1888#issuecomment-1587485367,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AM4DE2MJABUVXDK6TJ67ARTXK4S5FANCNFSM6AAAAAAYXSAOAA
.
You are receiving this because you commented.Message ID:
@.***>

--
Warm regards,
Anvay
Singapore American School
*Anvay Mathur *(hear my name) https://namedrop.io/anvaymathur | 8B Ms.
Palacios
Grade 8 Student | anvaymathur.com
40 Woodlands Street 41 | Singapore 738547
Email: @.***
————
CONFIDENTIALITY CAUTION: This message is intended only for the use of the
individual or entity to whom it is addressed and contains information that
is privileged and confidential. If you, the reader of this message, are not
the intended recipient, you should not disseminate, distribute or copy this
communication. If you have received this communication in error, please
notify us immediately by return email and delete the original message.
Unless it relates to the official business of Singapore American School,
any opinions or matters expressed in this message are those of the
individual sender.
--
CONFIDENTIALITY CAUTION: This message is intended only for the use of the
individual or entity to whom it is addressed and contains information that
is privileged and confidential. If you, the reader of this message, are not
the intended recipient, you should not disseminate, distribute or copy this
communication. If you have received this communication in error, please
notify us immediately by return email and delete the original message.
Unless it relates to the official business of Singapore American School,
any opinions or matters expressed in this message are those of the
individual sender.

Is that not a glitch? I'm not sure whether it was intended.

Intended.

I've added that to the PR. Is this good?
Screen.Recording.2023-06-12.at.10.53.17.PM.mov

Looking good! I can't tell if it's the same, but it looks like V2 opens a bit faster. Is it the same timing?

Thanks @megagames-me I will test the PR today and I will merge it soon.
The translate on the background was intended in v2 but it was creating issues like this So I don't think it's worth it. Can you please remove the translate?

Thanks @megagames-me I will test the PR today and I will merge it soon.
The translate on the background was intended in v2 but it was creating issues like this So I don't think it's worth it. Can you please remove the translate?

If this was the case, this should go in the change log for breaking changes for V2. I would revert back to V2 for the animation. Alternatively, it should be an opt-in/opt-out class.

@tansanDOTeth It's not a breaking change.
It won't be the default style but you can still have that by adding these 3 class names class names to drawer-content:
transition-transform translate-x-0 [.drawer-toggle:checked~&]:translate-x-2

Looking good! I can't tell if it's the same, but it looks like V2 opens a bit faster. Is it the same timing?

Thanks! It's not the same timing, but it seems like an intentional change.

The translate on the background was intended in v2 but it was creating issues like this. So I don't think it's worth it. Can you please remove the translate?

Sure, I'll do that now.

@tansanDOTeth It's not a breaking change. It won't be the default style but you can still have that by adding these 3 class names to drawer-content:
transition-transform translate-x-0 [.drawer-toggle:checked~&]:translate-x-2

I just don't think a default style should be a tradeoff to have a nice animation in cost of having issues with all sticky elements inside the drawer content.

Fair enough, but it is a notable animation change. For me, that slight bounce is the detail that I love about daisyUI. Most other frameworks provide similar (if not the same) functionality and animations. Also, thank you for the translate transition, I would definitely need this.

@tansanDOTeth It's not a breaking change. It won't be the default style but you can still have that by adding these 3 class names to drawer-content:
transition-transform translate-x-0 [.drawer-toggle:checked~&]:translate-x-2

I just don't think a default style should be a tradeoff to have a nice animation in cost of having issues with all sticky elements inside the drawer content.

Fair enough, but it is a notable animation change. For me, that slight bounce is the detail that I love about daisyUI; I really appreciate the effort to make those tiny changes. Without it, the animation feels very comparable with most other frameworks. Also, thank you for the translate transition, I would definitely need this.

Like you said, maybe have a single class you can add like dialog-transform for this? I don't think it could cause any issues and would be more convenient to remember than that.

@tansanDOTeth It's not a breaking change. It won't be the default style but you can still have that by adding these 3 class names to drawer-content:
transition-transform translate-x-0 [.drawer-toggle:checked~&]:translate-x-2

I just don't think a default style should be a tradeoff to have a nice animation in cost of having issues with all sticky elements inside the drawer content.

Fair enough, but it is a notable animation change. For me, that slight bounce is the detail that I love about daisyUI; I really appreciate the effort to make those tiny changes. Without it, the animation feels very comparable with most other frameworks. Also, thank you for the translate transition, I would definitely need this.

Like you said, maybe have a single class you can add like dialog-transform for this? I don't think it could cause any issues and would be more convenient to remember than that.

It would definitely be a nice compromise for people who want to make those trade-offs, but I can also understand @saadeghi perspective as the API provider. The maintenance and potential issues from having different combinations may not be worth supporting such a customization.


FIX: The next button in the onboarding screen is now disabled if the current question is not answered

This pull request focuses on improving the onboarding process and organizing the component imports in the project. The most important changes include enhancements to the onboarding questions, updates to the component imports, and improvements to the Onboarding screen functionality.
Enhancements to onboarding questions:

app/src/screens/Onboarding.tsx: Added the isAlwaysAnswered property to OnboardingQuestion and updated the ONBOARDING_QUESTIONS array to include this property for each question. This ensures that certain questions are always considered answered. [1] [2]

Updates to component imports:

app/src/screens/Onboarding.tsx: Changed the import paths for ContextualQuestionEnergyLevel, ContextualQuestionNumberKids, and Paginator components to use the @components alias.
app/src/components/index.ts: Added exports for ContextualQuestionEnergyLevel, ContextualQuestionNumberKids, and ContextualQuestionPlayTime components.
app/src/screens/index.ts: Added export for the Onboarding screen.
app/tsconfig.json: Added path aliases for @screens and @components.

Improvements to Onboarding screen functionality:

app/src/screens/Onboarding.tsx: Updated the wasCurrentScreenAnswered and scrollTo functions to use the new ONBOARDING_QUESTIONS array and added logic to disable the "Next" button if the current screen is not answered. [1] [2] [3] [4]

@frederickbaier Please update the 'Estimated size' and 'Real size' fields.


make test is not working when WITH_DOCKER it set

The provided DOCKER_RUN is not working since it don't boot postgresql and redis for testing

Skygear Server Date/Version: v0.17.0
Application Platform:
[ ] Is this a regression?
[ ] Attached logs, screenshots

Expected Results
Test passed
Actual Results
various dial tcp <IP_ADDRESS>:6379: getsockopt: connection refused and Unable to begin transaction for schema migration: dial tcp [::1]:5432: getsockopt: connection refused  indicate the test is fails.
Steps to reproduce

WITH_DOCKER=1 make test

Probably need to use docker-compose for the test to succeed, but docker-compose isn’t need for building the binary, so we either run docker-compose for all steps (which I don’t like, because that is unnecessary) or we provide WITH_DOCKER_COMPOSE=1 for that purpose.
I run test case in Docker using Docker Compose, but I run the command manually rather than using Makefile.

I think it will be ok to using docker-compose to run test when WITH_DOCKER=1. Something like this?
ifeq (1,${WITH_DOCKER})
DOCKER_RUN := docker run xxxxx
DOCKER__COMPOSE_RUN := docker-compose xxxx
endif


services/horizon/expingest: Separate DB connection pool for ingestion service

Currently, all of the Horizon services share the same DB connection pool. In case of increased number of HTTP requests, it's possible that ingestion service will have to wait for an idle connection. We need to create a separate connection pool (with a number of open connections equal to [horizon max] - [max needed by ingestion at any given time: 2 right now?]) for ingestion service to make sure it can always proceed.

Now that we have split ingesting and front-facing nodes, this isn't necessary for our cluster. It could still potentially be helpful for single machine deployments. Let's revisit if that seems to be the case.

Reopening. Frontend nodes still run ingestion because they ingest offers into in-memory order book.


Update zh_cn.json

Hello! Thank you a bunch for contributing this! Before I merge it I just had one question.
I was running the translations through machine translation software just to ensure they seemed in line and they're all good aside from "text.autoconfig.qu-enchantments.option.stripMinerOptions": "盾构选项",. 盾构选项 seems to translate to Shield Options, I just wanted to make sure this wasn't an error. I am fully aware that machine translation is not reliable at all, and I am not at all trying to suggest that it does a better job than you, just that this one seems like a massive departure from Strip Miner that I wanted to inquire to make sure it was correct.

The Strip Miner translate to 盾构 in the previous translation

So Strip Miner Options translate to 盾构选项

Strip Miner look like Shield machines


Broken links on DH README

Guys - just noticed on https://hub.docker.com/_/microsoft-azure-functions-base a good number of the links to Dockerfiles for the various images (under Featured Tags) are broken. eg https://github.com/Azure/azure-functions-docker/blob/master/host/2.0/stretch/amd64/powershell.Dockerfile should point to https://github.com/Azure/azure-functions-docker/blob/master/host/2.0/stretch/amd64/powershell6.Dockerfile instead.
Looks like the Dockerfile names were updated to include versions, but the DH page needs tweaking.
I'd offer a PR, but I don't think that page comes from this repo?

The docs on docker hub come from another repo owned by the MCR team that manages the images on dockerhub for us. The docs there were updated a couple of months ago and should point to the correct dockerfiles.


Select and download available YouTube video formats

A feature similar to youtube-dl -F which gives a list of available formats, and then allows downloading a specific one using  youtube-dl -f number_that_identifies_format

hi @lamg, Actually, more than one person asked me about this, but Annie wanted to be simple at the beginning of the design, so Annie's approach is to download the highest quality video that can be obtained, I mean, now the internet gets faster, so why not download the best.
These are just my personal opinions, I left this open to see what others thought about this.

@iawia002 why not both the options? Give users the capability of choosing as well as a default behavior of getting best video. Let me know your thoughts.

@iawia002 Simplicity is very important, but there are ways of managing complexity without breaking a design. Probably keeping annie simple for the user and for the programmer, while making it more useful, is a challenge of the kind that should be taken. This is very general, you're the one who knows the design, therefore the you have the last word on this issue. But if your design is formally stated maybe more people can have a word on that. I'm available for helping you with it (I will tell you later what I understand about your code). Besides, "the internet gets faster" isn't true in my case.

@arpit1997 @lamg
At the very beginning, I only considered my own situation (I like high definition video), and only one option is simpler from code implementation, but now I realize that this seems too 'arbitrary', you are right, we should give users the capability of choosing.
So,  here are my thoughts, download the highest definition video by default, and support downloading other formats

I'll start on this, as soon as I've made a progress, I'll submit a PR, you can help review.

// URLData data struct of single URL
type URLData struct {
	URL  string
	Size int64
	Ext  string
}

// VideoData data struct of video info
type VideoData struct {
	Site  string
	Title string
	// [URLData: {URL, Size, Ext}, ...]
	// Some video files have multiple fragments
	// and support for downloading multiple image files at once
	URLs    []URLData
	Size    int64
	Type    string
	Quality string
}

this is the data struct for now, and I think it shoude be changed to:
// URLData data struct of single URL
type URLData struct {
	URL  string
	Size int64
	Ext  string
}

// FormatData data struct of every format
type FormatData struct {
	// [URLData: {URL, Size, Ext}, ...]
	// Some video files have multiple fragments
	// and support for downloading multiple image files at once
	URLs    []URLData
	Quality string
	Size    int64
}

// VideoData data struct of video info
type VideoData struct {
	Site  string
	Title string
	Type  string
	// each format has it's own URLs and Quality
	Formats map[string]FormatData
}

any thoughts about this? By the way, if you got any suggestion about naming, just say it, feel free

The type map[string]FormatData seems fine for storing the information about available video formats, but if the user is going to select the format by typing that map's keys, then they should be easy to type. youtube-dl identifies formats using numbers, but I don't know if that is due some internal processing or if it's just the way YouTube returns data.
Example youtube-dl -F output:
[info] Available formats for $VIDEO_ID:
format code  extension  resolution note
249          webm       audio only DASH audio   57k , opus @ 50k, 21.81MiB
250          webm       audio only DASH audio   85k , opus @ 70k, 28.24MiB
140          m4a        audio only DASH audio  131k , m4a_dash container, mp4a.40.2@128k, 55.98MiB
171          webm       audio only DASH audio  135k , vorbis@128k, 54.15MiB
251          webm       audio only DASH audio  161k , opus @160k, 56.07MiB
160          mp4        192x144    144p   28k , avc1.4d400c, 30fps, video only, 5.67MiB
133          mp4        320x240    240p   53k , avc1.4d400d, 30fps, video only, 9.81MiB
278          webm       192x144    144p   73k , webm container, vp9, 15fps, video only, 12.79MiB
134          mp4        480x360    360p  113k , avc1.4d401e, 30fps, video only, 18.38MiB
242          webm       320x240    240p  133k , vp9, 30fps, video only, 21.64MiB
135          mp4        640x480    480p  190k , avc1.4d401e, 30fps, video only, 29.09MiB
243          webm       480x360    360p  224k , vp9, 30fps, video only, 35.65MiB
136          mp4        960x720    720p  316k , avc1.4d401f, 30fps, video only, 47.99MiB
244          webm       640x480    480p  357k , vp9, 30fps, video only, 56.50MiB
137          mp4        1440x1080  1080p  492k , avc1.640028, 30fps, video only, 78.33MiB
247          webm       960x720    720p  697k , vp9, 30fps, video only, 104.54MiB
248          webm       1440x1080  1080p 1346k , vp9, 30fps, video only, 185.69MiB
17           3gp        176x144    small , mp4v.20.3, mp4a.40.2@ 24k
36           3gp        320x240    small , mp4v.20.3, mp4a.40.2
18           mp4        480x360    medium , avc1.42001E, mp4a.40.2@ 96k
43           webm       640x360    medium , vp8.0, vorbis@128k
22           mp4        960x720    hd720 , avc1.64001F, mp4a.40.2@192k (best)

@lamg  It is the way youtube returns data, you can check that using "stats for nerds" in youtube.

The type map[string]FormatData seems fine for storing the information about available video formats, but if the user is going to select the format by typing that map's keys, then they should be easy to type.

If I'm not misunderstood, you mean that the optional format should be something like HD 720p, these more intuitive strings, right?

but I don't know if that is due some internal processing or if it's just the way YouTube returns data.

@MurtadhaS is right, It is the way youtube returns data, maybe Annie will do it the same way, like annie -f 22 URL etc.

Maybe a field in FormatData with a video format description would be useful from the user perspective.

the Quality is the video format description field, it's value is like 720p, HD.

@iawia002 In YouTube's case, would Quality store a string like audio only DASH audio   57k , opus @ 50k, 21.81MiB?

@lamg maybe in next version? Now I have done some basic functions
 Site:      YouTube youtube.com
 Title:     Multifandom Mashup 2017
 Type:      video
 Streams:   # All available quality
     [43]  -------------------
     Quality:         medium
     Size:            31.95 MiB (33505824 Bytes)
     # download with: annie -f 43 "URL"

     [18]  -------------------
     Quality:         medium
     Size:            24.81 MiB (26011062 Bytes)
     # download with: annie -f 18 "URL"
......


Separated Authentication functionalities from persistent functionalities.

Separated Authentication functionalities from persistent(IMO, Data.Abestractions is a good name) functionalities is a nice to have. And of course having two Nuget packages.
For example sometime we just need to store and retrieve user data and authentication done by identity server (e.g IdentityServer3).

This already is factored today, Security/HttpAbstractions handles the low level AuthZ decisions/ClaimsPrincipal.  Identity layers on top of that the concept of users, and 'sign in' via password social etc.  You can replace parts of identity or replace it entirely with your own authentication mechanism if desired

I think he might mean separate the AspId3 manager and store APIs from the SignIn manager. Right now the whole thing has a dependency on HttpAbstractions, whereas the core identity management (user management APIs) could be separate and a separate package that assumes the ASP.NET pipeline and cookie MW.


AttributeError: 'Namespace' object has no attribute 'read' How should I do?

Hello author, I encountered this error when running your code and cannot solve it. What is the reason? The environment and dependent libraries I configured according to your documentation are the same.
Traceback (most recent call last):
File "./main.py", line 21, in
config = Config(args)
File "/home/mcy/miniconda3/envs/python36/lib/python3.6/site-packages/config/init.py", line 709, in init
self.load(stream_or_path)
File "/home/mcy/miniconda3/envs/python36/lib/python3.6/site-packages/config/init.py", line 803, in load
items = p.container()
File "/home/mcy/miniconda3/envs/python36/lib/python3.6/site-packages/config/parser.py", line 285, in container
self.advance()
File "/home/mcy/miniconda3/envs/python36/lib/python3.6/site-packages/config/parser.py", line 130, in advance
self.token = self.tokenizer.get_token()
File "/home/mcy/miniconda3/envs/python36/lib/python3.6/site-packages/config/tokens.py", line 997, in get_token
c = get_char()
File "/home/mcy/miniconda3/envs/python36/lib/python3.6/site-packages/config/tokens.py", line 802, in get_char
c = self.stream.read(1)
AttributeError: 'Namespace' object has no attribute 'read'

I am not sure, but it seems like L21 of the "main.py" calls the init function of the external "config" module.
It is an unexpected behavior, because the purpose of the line is to generate a "Config" object of "config.py".
You may check this.

Thanks to the author for your timely answer. My problem has been solved after updating main.py.


Support latest Sveltekit version

Using this module throws a few errors on the latest svelte version:
request has been replaced with event - your example hooks.js
event.headers has been replaced with event.request.headers
event.path has been replaced with event.url.pathname and so on

Yes.
The module have been written on an old version of SvelteKit.
I need to update it to match newer version of SvelteKit.
I will try to do it next week

@netcodedev I just release the version 2.0.0.
It's now fully compatible with the latest versions of SvelteKit (from version 1.0.0-next.492 to the latest)

@MacFJA thank you for updating. Since the update I get the following error:
Error: Cannot find module './utils'
Require stack:
-<EMAIL_ADDRESS>    at Module._resolveFilename (node:internal/modules/cjs/loader:985:15)
    at Function.<anonymous> (file:///mnt/dev/dev/Uni/Bachelorpraktikum/ThesisPortal/node_modules/vite/dist/node/chunks/dep-5605cfa4.js:53408:24)
    at Function.Module._load (node:internal/modules/cjs/loader:833:27)
    at Module.require (node:internal/modules/cjs/loader:1057:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at Object.<anonymous> (/mnt/dev/dev/Uni/Bachelorpraktikum/ThesisPortal/node_modules/@macfja/sveltekit-session/index.cjs:3:13)
    at Module._compile (node:internal/modules/cjs/loader:1155:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1209:10)
    at Module.load (node:internal/modules/cjs/loader:1033:32)
    at Function.Module._load (node:internal/modules/cjs/loader:868:12)

What is the result of npm list @macfja/sveltekit-session ?

└─┬<EMAIL_ADDRESS>  └──<EMAIL_ADDRESS>

@MacFJA I'm kind of in a hurry. Do you think you can fix this until Mid January? (The earlier the better)

I will publish a new version of @macfja/sveltekit-session that will fix the issue

I just release a new version of @macfja/sveltekit-session (1.0.0)
Can you try with the updated version ?

I updated everything to the latest version
Now i get the following error:
TypeError: Cannot read properties of undefined (reading 'sessionHook')

The code: (error comes from the line with sessionHook()
export const handle = sequence(
	sessionHook(),
	casHandler(
		`${CAS_HOST}:${CAS_PORT}`,
		CAS_VERSION,
		(event) => event.url.pathname.startsWith("/profile/"),
		(event, user) => {
			const regexp = event.url.pathname.match(/\/profile\/(\w+)/)
			return user !== regexp[1]
		}
	)
)

I changed my code according to the example you provided in the casHandler-documentation:
import { serverHook } from "@macfja/sveltekit-session"
import { casHandler } from "@macfja/sveltekit-cas"
import { sequence } from "@sveltejs/kit/hooks"
import { CAS_HOST, CAS_PORT, CAS_VERSION } from '$env/static/private'

export const handle = sequence(
	serverHook,
	casHandler(
		`${CAS_HOST}:${CAS_PORT}`,
		CAS_VERSION,
		(event) => event.url.pathname.startsWith("/profile/"),
		(event, user) => {
			const regexp = event.url.pathname.match(/\/profile\/(\w+)/)
			return user !== regexp[1]
		}
	)
)import { serverHook } from "@macfja/sveltekit-session"
import { casHandler } from "@macfja/sveltekit-cas"
import { sequence } from "@sveltejs/kit/hooks"
import { CAS_HOST, CAS_PORT, CAS_VERSION } from '$env/static/private'

export const handle = sequence(
	serverHook,
	casHandler(
		`${CAS_HOST}:${CAS_PORT}`,
		CAS_VERSION,
		(event) => event.url.pathname.startsWith("/profile/"),
		(event, user) => {
			const regexp = event.url.pathname.match(/\/profile\/(\w+)/)
			return user !== regexp[1]
		}
	)
)

Now it doesnt find the casHandler:
TypeError: Cannot read properties of undefined (reading 'casHandler')

I found the issue.
The CommonJS generation is wrong and seem to don't export anything.

I just release a new version (2.0.1).
Hopefully it solves the issue

Look like the response from the ticket validation is not a valid XML :thinking:
Can you replace the content of the file<EMAIL_ADDRESS>with:
var xmlJs = require('xml-js');
function __awaiter(thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
}
const getCasHelper = (root, version, event) => {
    return {
        getValidationUrl(ticket) {
            let validationPath = "";
            switch (version) {
                case 2:
                    validationPath = "serviceValidate";
                    break;
                case 3:
                    validationPath = "p3/serviceValidate";
            }
            return `${root}/cas/${validationPath}?service=${encodeURI(this.sanitizedService())}&ticket=${ticket}`;
        },
        getLoginUrl() {
            return root + "/cas/login?service=" + encodeURI(this.sanitizedService());
        },
        sanitizedService() {
            const newUrl = new URL(event.url);
            if (newUrl.pathname.endsWith("/__data.json")) {
                newUrl.pathname = newUrl.pathname.substring(0, newUrl.pathname.length - "/__data.json".length);
            }
            newUrl.searchParams.delete("ticket");
            newUrl.searchParams.delete("x-sveltekit-invalidated");
            return newUrl.toString();
        }
    };
};
function getTicket(event) {
    if (!event.url.searchParams.has("ticket"))
        return undefined;
    const ticket = event.url.searchParams.get("ticket");
    return ticket.startsWith("ST-") ? ticket : undefined;
}
function redirect(url) {
    return new Response(null, {
        status: 301,
        headers: {
            location: url
        }
    });
}
function casHandler(casRoot, casVersion, authRequired = () => true, rejectAccess = () => false) {
    return function (input) {
        if (!authRequired(input.event)) {
            return input.resolve(input.event);
        }
        if (input.event.locals.session.cas) {
            if (rejectAccess(input.event, input.event.locals.session.cas)) {
                return new Response(null, {
                    status: 403
                });
            }
            return input.resolve(input.event);
        }
        switch (casVersion) {
            case 2:
                return cas23Hook(casRoot, 2, input.event);
            case 3:
            default:
                return cas23Hook(casRoot, 3, input.event);
        }
    };
}
function cas23Hook(casRoot, version, event) {
    return __awaiter(this, void 0, void 0, function* () {
        const casHelper = getCasHelper(casRoot, version, event);
        let ticket;
        if ((ticket = getTicket(event)) !== undefined) {
            const validation = yield event
                .fetch(casHelper.getValidationUrl(ticket))
                .then((response) => response.text())
                .then((response) => { console.log(response); return response })
                .then((response) => xmlJs.xml2js(response, { compact: true }));
            if (!Object.keys(validation).includes("serviceResponse")) {
                console.error("Unknown CAS validation response", casHelper.getValidationUrl(ticket), xmlJs.js2xml(validation));
                return new Response("Unknown CAS validation response", { status: 500 });
            }
            if (Object.keys(validation.serviceResponse).includes("authenticationFailure")) {
                return new Response(`Authentication failure: ${validation.serviceResponse.authenticationFailure._text}`, { status: 403 });
            }
            if (Object.keys(validation.serviceResponse).includes("authenticationSuccess")) {
                event.locals.session.cas = {
                    user: validation.serviceResponse.authenticationSuccess.user
                        ._text,
                    attributes: validation.serviceResponse.authenticationSuccess
                        .attributes
                };
                return redirect(casHelper.sanitizedService());
            }
            return new Response("Unknown CAS validation response", { status: 500 });
        }
        return redirect(casHelper.getLoginUrl());
    });
}
function getUsername(event) {
    var _a, _b;
    return (_b = (_a = event.locals.session) === null || _a === void 0 ? void 0 : _a.cas) === null || _b === void 0 ? void 0 : _b.user;
}
exports.casHandler = casHandler;
exports.getUsername = getUsername;

(Almost the same version as now, but not minified, without CAS version 1 and with a log added)
And see if the response is an XML and a valid XML
( :warning: Be careful if you share the content of the XML, as it can contain personal data! :warning: )

I replaced the content and now im not getting an error. But also no cookie is getting set and the ticket is not removed from the url

I replaced the content and now im not getting an error. But also no cookie is getting set and the ticket is not removed from the url
EDIT: played around a little and it seems like getTicket returns undefined
EDIT2: event.url reveals that searchParams is empty although the url contains the ticket. Maybe it gets called to early? href is still on the protected route /profile

Are you sure that the URL you see and the URL in event.url are the same ? There are several redirections that are done, so maybe you don't have the right one.
Also, the default configuration of @macfja/sveltekit-session don't work with serveless, as its default storage is the server memory

Do You maybe have some time to fix it via discord?

Do You maybe have some time to fix it via discord?

You can open a question on Svelte Discord, either in svelte-and-kit or ecosystem
We can start from there

I just opened a thread
https://discord.com/channels/457912077277855764/1023340103071965194/threads/1061696138866077766


Make ingesters go back to PENDING state if a transfer fails.

Fixes #454.
Supersedes #455

@jml I couldn't push to the other PR so I open this with the feedback.  PTAL.

Thanks!