Unit tests

Codecov Report

Merging #206 (4cfc27d) into master (22f65c8) will increase coverage by 1.61%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master     #206      +/-   ##
============================================
+ Coverage     45.55%   47.17%   +1.61%
- Complexity      493      512      +19
============================================
  Files           121      121
  Lines          2509     2510       +1
  Branches        263      263
============================================
+ Hits           1143     1184      +41
+ Misses         1277     1233      -44
- Partials         89       93       +4

Impacted Files
Coverage Δ
Complexity Δ

...n/java/seedu/budgetbaby/commons/core/Messages.java
87.50% <100.00%> (+1.78%)
1.00 <1.00> (ø)

...ava/seedu/budgetbaby/model/record/Description.java
60.00% <0.00%> (ø)
5.00% <0.00%> (+2.00%)

.../main/java/seedu/budgetbaby/model/month/Month.java
46.42% <0.00%> (+3.57%)
13.00% <0.00%> (+1.00%)

...ain/java/seedu/budgetbaby/model/BudgetTracker.java
65.27% <0.00%> (+4.16%)
15.00% <0.00%> (+1.00%)

...seedu/budgetbaby/model/BudgetBabyModelManager.java
46.15% <0.00%> (+4.27%)
25.00% <0.00%> (+3.00%)

.../seedu/budgetbaby/model/month/UniqueMonthList.java
41.75% <0.00%> (+4.39%)
15.00% <0.00%> (+1.00%)

...u/budgetbaby/model/record/FinancialRecordList.java
40.00% <0.00%> (+4.44%)
8.00% <0.00%> (+1.00%)

...seedu/budgetbaby/model/VersionedBudgetTracker.java
32.35% <0.00%> (+11.76%)
2.00% <0.00%> (+1.00%)

...edu/budgetbaby/logic/commands/DeleteFrCommand.java
90.90% <0.00%> (+90.90%)
9.00% <0.00%> (+9.00%)

Continue to review full report at Codecov.

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


postcss/sass update

Hey guys, do you know why github is getting old messages from the past? This is a new PR and it seems to be a weird behavior. Anyway, can somebody look into my pr? Thanks!

@sergiokopplin I'll check it out right now. Don't think I've experienced receiving old github messages, but I wouldn't be shocked 😄

thanks @strues


Footer Links

For Feature Requests
Desired Feature: Links to articles in Page footer
Why should you add it?
Due to the EU and US privacy law, it will be mandatory for most people to add a Privacy Policy to their BookStack installation. And according to the EU law, the Privacy Policy must be available on every accessible page on your website, so the best way here is to stay with the tradition and allow Footer Links.
And for German users there is a so called Legal Info mandatory, which includes full address details of the website owner, mostly it must include:

Full Name
Full Address
E-Mail
Phone Number
UStID

Best way to add it would be to be able to select from existing articles, pages to put in footer links.

This would be awesome.

Yes, I also recommend adding a footer.
1, increasing the space at the bottom editor for easy mobile phone add content.
2, increase privacy, copyright
3, increase the statistical information and other scripts, the content increased in the footer, it will not affect the page loading speed.
4, advertising space
Webmasters can add code to APP SETTINGS

I tried to add footer, but on the edit page, footer blocked the editor. How can I set css?

It looks like this isn't a priority at the moment, but has anyone had luck making their own modifications to add a footer? I'm unfamiliar with Laravel and its templating system, and pretty far from webdev in general these days, and would be grateful for any help.

@aidanfindlater @ApertureDevelopment
I'm not as familiar with European regulations but are these mandated to be located on a certain part of the page, or could they be located anywhere so long as they are accessible?
What counts as an accessible page?  Just public-facing pages?  Or also for the admin backend?

They have to be easily accessible from every page. That means the link has to be always visible, cannot be hidden and should not require a search from a search functionality to find. Thats why a footer would be perfect for that

For those interested (@ApertureDevelopment @iBooster @qianmengnet @aidanfindlater), you can see how this was implemented in the referenced PR.
Depending on your urgency, the following code may be sufficient to implement in your instance's "Custom HTML Head Content" settings editing the link href and label to suit your needs.

@james-geiger that was incredibly helpful and exactly what I was hoping for. Thank you!

Thanks to @james-geiger footer links will be part of the next feature release.
This interface will appear as shown below:

Since this feature is now in the main development branch I'll close this off.

Thanks to @james-geiger footer links will be part of the next feature release.
This interface will appear as shown below:

Since this feature is now in the main development branch I'll close this off.


Resolve failure in introspection following a console edit

We discovered that when a domain is restarted following an edit of configuration using the console, that the introspector script would sometimes fail reading beans that were no longer present.
This change wraps those bean lookups in a function that handles the exceptions better.

Ha, ha... It wouldn't show in the diff @markxnelson , but there was already a function there with that naming pattern.  I'm more than happy to change it.  It's "WA" for "work around" ;)


Not sure this regex does what you intend

On line 7429 of mo.js you use the following regex
nRgx = /(-|\+)?((\d+(\.(\d|\e(-|\+)?)+)?)|(\.?(\d|\e|(\-|\+))+))/gim;
where it seems like you are trying to use \e for an escape character but in javascript \e matches e literally unlike in other regex dialects

That regex looks like it is capturing scientific notation, so I think "e" was intended. I am not sure why those e's are escaped though.


Handle workspace files correctly

In my global configuration I have nothing relevant.
Now I have a file graalvm.code-workspace like:
{
	"settings": {
		"graalvm.home": "...\\graalvm-ce-java11-21.2.0",
		"graalvm.installations": [
			"...\\graalvm-ce-java11-21.2.0"
		],
		"netbeans.jdkhome": "...\\graalvm-ce-java11-21.2.0",
		"terminal.explorerKind": "integrated",
		"terminal.integrated.env.windows": {
			"GRAALVM_HOME": "...\\graalvm-ce-java11-21.2.0",
			"JAVA_HOME": "...\\graalvm-ce-java11-21.2.0"
		}
	}
}

When I open the file, 2 issues occur:
(1) I get the following error in the Output window:
[Error - 16:20:04] Server initialization failed.
Error: command 'dry_run' already exists
	at _.registerCommand (c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:94:109536)
	at Object.registerCommand (c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:103:20898)
	at W.register (c:\Users\me\.vscode\extensions\oracle-labs-graalvm.graalvm-0.5.11\dist\extension.js:2:320903)
	at W.initialize (c:\Users\me\.vscode\extensions\oracle-labs-graalvm.graalvm-0.5.11\dist\extension.js:2:320665)
	at S.initializeFeatures (c:\Users\me\.vscode\extensions\oracle-labs-graalvm.graalvm-0.5.11\dist\extension.js:2:337737)
	at c:\Users\me\.vscode\extensions\oracle-labs-graalvm.graalvm-0.5.11\dist\extension.js:2:330288

(2) the extension duplicates the configuration that I have in my workspace file in the global settings, appending:
    "graalvm.home": "...\\graalvm-ce-java11-21.2.0",
    "netbeans.jdkhome": "...\\graalvm-ce-java11-21.2.0",
    "terminal.integrated.env.windows": {
        "GRAALVM_HOME": "...\\graalvm-ce-java11-21.2.0",
        "JAVA_HOME": "...\\graalvm-ce-java11-21.2.0"
    }

This is problematic: the GraalVM extension isn't enabled globally, so it shouldn't change any global configuration either. If it's only enabled for the current workspace, it should only touch the workspace configuration. And since all required configuration is already provided in the workspace file, I expect it to do nothing at all in this case.

closed by:

https://github.com/microsoft/vscode/issues/167505

details see commits related to tunnel  in the main branch got no time to explain here more but watch the progress of the above issue and all this issues do close with it as the graal extension it self then runs as module in the browser. no settings needed.


Plan on youtube music

As you may have heard google has released a new service called youtube music which has lots of similarity with play music. There are news that google eventually plans to replace play music with youtube music.
The good thing about youtube music right now is less authorization headache and new information like destinction between singles and albums.
would be really good this library supported it.
Just as a recommendation and knowing everyone's opinion.

They have also said they don't plan on replacing Google Music until they've implemented all the functionality into YouTube Music.
As far as implementing it in this library, I'd definitely say it should be in a separate library. You don't just slap in a completely different service into a library because it's technically a replacement for it.
Also, the mobile APIs are all done using protocol buffers. Adds an extra pain to using the mobile APIs, especially since you need to be using much older versions of Android/iOS to actually capture these calls now.
So, for someone implementing a YouTube Music library, they're left with using the HTTP API... oh wait, there isn't one, because Google. So, you're left in the same boat as the Webclient in gmusicapi. It can be a giant pain to keep it functioning. Also, this kinda goes against it being less of an authorization headache.

Yup, I don't have any immediate plans to look at youtube music. I suspect I will eventually so I can keep autoplaylists running, though by the time I get to that someone else may have already figured out the few calls I need.
I agree that it should probably be a different library. One case I'd consider adding support directly to gmusicapi would be if it turned out that the apis were very similar.

I agree that it should probably be a different library. One case I'd consider adding support directly to gmusicapi would be if it turned out that the apis were very similar.

They're aren't terribly different to Google Music web calls at this point, though I consider that a negative. Though you do have to sift through a lot of cruft to figure out what's necessary and not.
Currently there's almost nothing to the functionality and less than a handful of calls.

PS
As I've already told a few people who have asked me if I would make a YouTube Music library, I'd have already made one if Google provided a proper web API like Spotify provides. Dunno if I'd make one before YouTube Music supported uploading your own songs, but I can't say I wouldn't for sure ^_^

I did a little research into the current state of YT Music API access.
While there is no dedicated API for YT Music currently, there is the YouTube Data API v3, which works to create playlists for YouTube Music. You can also search for entries from YouTube Music using the standard YouTube search by adding the term "Auto-generated by YouTube" to the search, which is present in all music-only tracks (with album cover art) generated by YouTube. So while it is a little hacky, playlist management is definitely possible right now

I made a thing for YouTube Music: https://github.com/sigma67/ytmusicapi/blob/master/ytmusicapi/ytmusic.py
It's not pretty, but it works for my purposes and doesn't hit the quota limits

They have also said they don't plan on replacing Google Music until they've implemented all the functionality into YouTube Music.

This is no longer the case. Google officially announced it will shutdown GMusic by the end of the year. So it probably not worth investing more efforts into development of this API.


Packaging & testing fixes

I attempted to use Binwalk OOTB on Windows, to not much success. This fixes some of that stuff (hopefully without breaking anything, too).

Use standard setuptools bits (entry points, manifest.in)
Remove some dead code
Use py.test for testing

Thanks a LOT for this PR! It finally makes binwalk work properly on Windows 10 too without doing lots of hacking to make it work. Really appreciate it!

@devttys0 Could you take a look at this? Apparently it helps others so would be nice to get merged...

@devttys0 I've rebased this on top of master for your consideration. You had apparently independently done some of the work I had done in this PR in #492 and #493... :)

@devttys0 Rebased once more.

@akx thanks for this, it helped me!
@devttys0 it would be great to get some feedback on this PR.

Rebased for the new year, with additional fixes for Windows compatibility.

Happy 2023! Rebased once again 🎉
Could e.g. @devttys0 take a look? 😁

Happy 2024! 🎆 Didn't rebase, because there's nothing happening in this repo!

Given that the project seems to be almost abandoned and that I could not find an email address for the main author I decided to make a fork to apply maintenance patches: https://github.com/OSPG/binwalk
I merge this PR on the fork

Is the official Windows build available @devttys0


Bug with electron

When used in electron I have to comment line 10 of index.js var ws = require('ws') for the module to work.
I don't now why.
I've come across that bug when playing with torrent-stream.

Have you changed your version of node recently? Try deleting your node_modules folder and running npm install again with the new version.

Just did and no results.
I don't know what the 'ws' module is, but it seems to me that it's not found.

Apparently electron is using io.js v3.1.0.Could this be the problem ?

The ws no longer uses any native dependencies, so this issue is almost certainly gone. Closing.


Added iOS Interactive Segmenter Options Utils, Implementation and Basic Tests

@schmidt-sebastian First PR for Interactive Segmenter


Conversion to np.array seems to work differently on Windows boxes than on Linux

So this line:
https://github.com/vukics/Wigner_Time/blob/bcc4d4152b2087b6d86a0341c29122d4e4187c3b/wigner_time/adwin.py#L133
leads to a
ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimension. The detected shape was (2,) + inhomogeneous part.
This occurs on both lab machines (Windows 10 & 11)
Workaround:
cycles = np.array([i[0] for i in output[0]] + [i[0] for i in output[1]])

If this is OS dependent then that's utterly mad!

@light-matters I have now tried this line with an output generated on my Arch Linux box, and it raises the same error.
I just assumed that you had tried that on Linux and it worked fine, that’s why I thought the error on Windows means that it works differently there.


Fix order by push down for joins

// note for reviewer: Although the push-down logic change is only in
// master, the bug is also present in 2.3 (but happening due to an issue in
// the MultiSourceSelect pushdown. I intent to backport the whole pushdown
// changes)
The Order operators tryOptimize implementation was specific to
UNION and didn't work in the case of JOINS where the outputs of the
new source are different from the outputs of the old source.
For example, here is how it works for Union:
select x from t1
union all
select y from t2
order by x

--------

ORDER [U.x]
UNION
    COLLECT [t1 | x]
    --
    COLLECT [t2 | y]

tryOptimize -->

UNION
    ORDER [x]
    COLLECT [t1 | x]
    --
    ORDER [y]
    COLLECT [t2 | y]

The logic how this symbol mapping takes place (U.x -> y in the example
above) was implemented in the Order operator, but that logic is
specific to Union. In a Join, the mapping must be different:
ORDER [t2.x]
JOIN [t1.x, t2.x]
    COLLECT [t1 | x]
    --
    COLLECT [t2 | x]

tryOptimize -->

JOIN [t1.x, t2.x]
    COLLECT [t1 | x]
    --
    ORDER [x]
    Collect [t2 | x]

Here the mapping is t2.x -> x (Field -> Reference).
In order to fix this, this commit moves the mapping logic into a
separate function that can be passed as argument to tryOptimize, so
that each parent operator can pass different implementation to its
children.

// cc: @andreidan @chaudum I think this is interesting for you as well

nice solution!

@seut pushed a fixup


Using an attribute selector to define at theme

Defining a custom theme using one of CSS's attribute selectors instead of a class selector allows for easier creation of a family of themes with slight variations. For instance, here's a redefinition of the Punk theme using an attribute selector:
*[class|="tooltipster-punk"] {
    border-radius: 5px;
    border-bottom: 3px solid #F71169;
    background: #2A2A2A;
    color: #FFFFFF;
}

*[class|="tooltipster-punk"] .tooltipster-content {
    font-family: 'Courier', monospace;
    font-size: 14px;
    line-height: 16px;
    padding: 8px 10px;
}

The *[class|="tooltipster-punk"] selector will match any element with a class of "tooltipster-punk" or with a class that begins "tooltipster-punk-". Now, we should be able to use a single property declaration to change the bottom border color of the tooltip, thus creating a variation on the Punk theme:
.tooltipster-punk-blue { border-bottom-color: blue; }

Unfortunately, defining the theme as above using an attribute selector does not appear to work. I've used this selector to define class families before, and I know that it works in my browser. It does not appear to be working with Tooltipster, however.
Here is a jsFiddle that demonstrates both that the CSS selector I'm trying to use does indeed work, and that jQuery also supports it. https://jsfiddle.net/5cb5vsra/1/

Hi, Tooltipster v4 has a new theme system that enables inheritance and does not require the wildstar, which is problably poor in terms of performance. Check it out on the v4 branch.


Wallet page: Перенос кнопок вверх

What is working wrong?
...Describe the bug briefly...
What should happen instead?
...Describe what do you think should happen instead in this situation...
Steps to reproduce

steps
to
reproduce

Your system charateristics

Browser:
OS:
Mainnet or Testnet:

Does this affect atomic swap flow?

[ ] yes
[ ] no

Are real funds at risk?

[ ] yes
[ ] no

Screenshots
... You can use Ctrl+V to place screenshots right into GitHub issue ...
Additional info


Add option to copy sender/recipient email addresses to clipboard

May you implement a copy funktion to the email adress? Currently there is only the possibillity to add the email to the contacts.

@cketti
Hi,
I'm currently working on this enhancement, I've added the option to copy those addresses to clipboard via a long click and a little toast that mentions that the addresses has been copied to the clipboard, Is this suit you ?
Also, I have a little question, when there is multiple addresses to copy at the same time, for example, when there is different recipients.
For the moment, I only add a little space blank between the addresses. Do you want to add something better? (Comma, etc ...)

just copying the one which the user actually long-clicked seems like the expected behavior there

Is this possible?
I'm working in the class view.MessageHeader, i create a method just like onClick()  (add the sender to contacts)
so I just have the choice between the area "From", "To" & "cc".
Is this possible to subdivide these area for each addresses inside?
Thanks for your help

I just realized I was thinking about the wrong dialogue. Sorry, never mind.

No problem, i will wait others answers ;)


Prerendered server route not found

Describe the bug
When using fetch on a server route, that is pre-rendered (export const prerender = true), the operation fails with a message of not found. It can't be requested externally either ie. through the browser. This only occurs when using the built version.
Reproduction
https://www.sveltelab.dev/s3p4ypow5f1hy0u
Run using
npm run build
npm run preview

Logs
TypeError: fetch failed
    at fetch (file:///home/httpswwwsveltelabdev-n1l0/node_modules/undici/index.js:109:13)
    at async resolve (file://file:///home/httpswwwsveltelabdev-n1l0/.svelte-kit/output/server/index.js:2663:14)
    at async respond (file://file:///home/httpswwwsveltelabdev-n1l0/.svelte-kit/output/server/index.js:2529:22)
    at async fetch (file://file:///home/httpswwwsveltelabdev-n1l0/.svelte-kit/output/server/index.js:2291:20)
    at async Object.eval [as fetch] (file://file:///home/httpswwwsveltelabdev-n1l0/.svelte-kit/output/server/index.js:2230:12)
    at async load (file://file:///home/httpswwwsveltelabdev-n1l0/.svelte-kit/output/server/entries/pages/_page.server.js:15:15)
    at async load_server_data (file://file:///home/httpswwwsveltelabdev-n1l0/.svelte-kit/output/server/index.js:540:18)
    at async eval (file://file:///home/httpswwwsveltelabdev-n1l0/.svelte-kit/output/server/index.js:1900:18) {
  cause: HTTPParserError: Response does not match the HTTP/1.1 protocol (Content-Length can't be present with Transfer-Encoding)
      at Parser.execute (file:///home/httpswwwsveltelabdev-n1l0/node_modules/undici/lib/client.js:577:15)
      at Parser.readMore (file:///home/httpswwwsveltelabdev-n1l0/node_modules/undici/lib/client.js:518:12)
      at Socket.onSocketReadable (file:///home/httpswwwsveltelabdev-n1l0/node_modules/undici/lib/client.js:945:10)
      at EventEmitter.emit (https://httpswwwsveltelabdev-n1l0.w-corp.staticblitz.com/blitz.9c8944bc.js:35:156830)
      at emitReadable_ (https://httpswwwsveltelabdev-n1l0.w-corp.staticblitz.com/blitz.9c8944bc.js:35:729152)
      at _0xe8552e (https://httpswwwsveltelabdev-n1l0.w-corp.staticblitz.com/blitz.9c8944bc.js:44:152768)
      at https://httpswwwsveltelabdev-n1l0.w-corp.staticblitz.com/blitz.9c8944bc.js:44:152515 {
    code: 'HPE_UNEXPECTED_CONTENT_LENGTH',
    data: '{"data":"Test Data"}'
  }
}

System Info
(Github Codespace)
  System:
    OS: Linux 5.4 Ubuntu 20.04.6 LTS (Focal Fossa)
    CPU: (2) x64 Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
    Memory: 1.22 GB / 3.84 GB
    Container: Yes
    Shell: 5.0.17 - /bin/bash
  Binaries:
    Node: 19.9.0 - ~/nvm/current/bin/node
    Yarn: 1.22.19 - /usr/bin/yarn
    npm: 9.6.3 - ~/nvm/current/bin/npm
  npmPackages:
    @sveltejs/adapter-auto: ^2.1.0 => 2.1.0
    @sveltejs/adapter-vercel: ^2.4.3 => 2.4.3
    @sveltejs/kit: ^1.18.0 => 1.18.0
    svelte: ^3.59.1 => 3.59.1
    vite: ^4.3.8 => 4.3.8

Severity
serious, but I can work around it
Additional Information
This was already an issue that was apparently resolved
#8341
#8039
#8331
Supposed to be fixed in #8453
Also discussed on the discord server.

Okay I'm sorry, this seems to be my fault. The error seems to be something else. Even tho we did have some issues on the discord server, this probably doesn't have anything to do with it. Although, I did have this problem, it seems to have been solved by some experimentation. Sorry for all the confusion, for stealing a pretty cool issue number and wasting your time. I love you all.
I will now close the issue, and please don't stone me to death, even tho I probably deserve it.


ReadOptions::read_level is misleading

https://github.com/slatedb/slatedb/pull/260#discussion_r1863922717
pub enum ReadLevel {
    /// Client reads will only see data that's been committed durably to the DB.
    #[default]
    Commited,

    /// Clients will see all writes, including those not yet durably committed to the
    /// DB.
    Uncommitted,
}

Committed and Uncommitted is a common terminology for specifying isolations levels related to transactions. What we really want to specify here are "durability" guarantees.

+1 for this
i feel the Durability flag would be better placed at the DB level instead of on a per-get() basis.
the Durability level is more determined by the write side rather than the read side imo. and it'd be easier to reason about the semantics if we could assume all the get()s are consistent without uncommitted data.
we can choose to relax durability in the following ways, can can be useful for different scenarios:

Durability::Strong: await until put() is persisted to storage, the good enough default
Durability::Local: return quickly after put() is persisted to local disk's WAL, might be useful to accelerate the performance of massive writes.
Durability::BestEffort: return without awaiting, might be useful for use it for cache.

I like the Durability phrase. I suggest Durability::ObjectStore, Durability::Local (if/when we add that, see #162), and Durability::Memory,
I disagree that we want to remove it from get(). I think we have a few things going on:

put().await should wait to return based on the specified durability (like, block until written to object store, or written to memory)
get().await should return values based on the specified durability (like, read only from object storage/disk cache if ObjectStore, or from memtable/kvtable if Local).
transaction isolation level.

As @dmvk said, we should reserve committed/uncommitted for (3). For (1), we should update WriteOptions to be a Durability rather than await_durable: bool. For (2), we should replace ReadLevel with Durability.

As @dmvk said, we should reserve committed/uncommitted for (3).

in my memory nowadays Read Uncommitted is almost obsoleted in database engines nowadays. it not really benefits on performance over Read Committed, but introduced some risks on misuse 😲. in postgres, Read Uncommitted is still Read Committed underneath.

Haha, yea.. Perhaps we can just leave it as read committed for everything. I don't think it will cost us much to do so. It might actually make the implementation simpler since we only have one way to doing transactional reads.

Still fleshing out my thoughts, but for our use case it actually does make sense to read data that is not durable yet. We use SlateDB to materialize a log stored in Kafka. We write the kafka topic data with await_durable: false, and expect to be able to read that data once the put returns. On a failure, we just figure out the last offset that was durably written to SlateDB and resume replaying the topic from that point.

@rodesai I think this will continue to work in my proposal. You would put with durability = Durability::Memory, then get with the same setting.
The uncommitted that @flaneur2020 and I are talking about are when a transaction has been opened.

Ah right. Got mixed up. We should definitely clarify the naming 😝

in my memory nowadays the Read Uncommitted support in transaction is almost obsoleted in database engines nowadays.

In Kafka world, this is still pretty big. Especially with Read Uncommitted being a default 🙈

in my memory nowadays the Read Uncommitted support in transaction is almost obsoleted in database engines nowadays.

In Kafka world, this is still pretty big. Especially with Read Uncommitted being a default 🙈

the record is committed or not is determined by replicas in kafka, the uncommitted data is on disk, and still accessisble from public.
however in LSM engines, uncommitted writes are not publicly accessible at all, they are mostly buffered in different WriteBatches, and no one else can access this uncommitted data. this is different from postgresql's multi-version tablespace and innodb's UNDO log, which can be accessed publicly (also with some complexities like ARIES).
i kinda feel this WriteBatch approach is a better than the approaches in postgres & innodb, nowadays the memory is big, we do not have to maintain the uncommitted data on the disks.

Just catching up here. I think the main open question from the discussion above is whether or not we'd want to support reading uncomitted data at all. I think whether or not we aim to support this should be driven by whether we think it's useful for users. I tend to agree it doesn't seem very useful semantically. I think other systems offer it so you can trade off some isolation overhead (e.g. applying undo records, waiting for transactions to commit in kafka) for performance, but if we are relying on isolating txns in their own buffers this benefit isn't there.
One other thing I think we have to think through is how we want to handle the read Durability level for transactions/snapshots. We probably want to specify the durability level for the whole transaction, and then pick the snapshot seq num accordingly. E.g. if a transaction does a read with level Durability:object_store then we need to use the latest seq num that's been durably stored rather than the latest seq num committed to the db. And we have to make sure we use this seq num rather than the commit seq num when GC'ing the txn metadata.

back to this, i guess we could simply still use the committed seq num, as it's acceptible to lost the data from a committed transaction if durability is low. also, a single SET is also a transactional operation, if we accept losing a single SET at a durability level, losing a transaction write at this durability level should also be considered as acceptible.

I was thinking about how this plays with the transaction's erads rather than the durability of the result of the transaction, which I think are two separate things:

You specify a read durability level when starting a transaction. This specifies how durable the data read by the transaction needs to be. Since transactional reads are tied to a snapshot, this in turn means that the sequence number S for the transaction's snapshot needs to be one for which all writes up to S have been stored with the requested durability. Then, when committing the transaction we need to detect conflicts. The conflict detection needs to happen against all committed transactions with a higher sequence number than S. Basically, when selecting the sequence number for the transaction's snapshot we have to take into account the requested durability level.
When committing the transaction, you also need to specify a durability level. This durability level specifies when the commit will be acknowledged to the client.

You specify a read durability level when starting a transaction.

I feel this is where our perspectives differ, I tend to regard this durability parameter as one that only takes effect on the write side. while this approach would lack the ability to custom the seqnum during reads, it has a well understood the semantics: to be best effort, if the underlying storage lost data on writes, the dbms cluster simply lose it, while still keeps atomicity.
durability is a basic database capability, i'm also interest with how the other database systems handle this matter. 🤔

I feel this is where our perspectives differ, I tend to regard this durability parameter as one that only takes effect on the write side. while this approach would lack the ability to custom the seqnum during reads, it has a well understood the semantics: to be best effort, if the underlying storage lost data on writes, the dbms cluster simply lose it, while still keeps atomicity.

I think it's more a question of whether you should set the durability level for the db or for individual writes. If you can set it for individual writes, then I think you should be able to specify the durability level for reads (and therefore for transaction snapshots). Otherwise it's not possible to know for a given read whether or not the data is guaranteed to be durable, which I think is an important guarantee to offer.

I think it's more a question of whether you should set the durability level for the db or for individual writes.

make sense, i also have doubts about the benefits of allowing configurable durability levels for individual writes. better performance doesn't necessarily come from sacrificing durability. it makes more sense to first focus on improving performance while maintaining strong durability.
i now personally prefer to be conservative about exposing durability settings until we've confirmed there are huge performance benefits in the real world.

as above discussion, i cannot find any harm in removing ReadLevel without adding Durability, wdyt?

i now personally prefer to be conservative about exposing durability settings until we've confirmed there are huge performance benefits in the real world.

Do you mean at the write level or all-together?
An ability to define this at least on the DB level is pretty important imo.

durable=true: There are cases where you need to acknowledge writes to 3rd party, eg. when they do some action via rest api. This is pretty expensive, because it results in immediate flush to remote.
durable=false: This is case for Stream Processor State Backend (Flink) for example. You want to optimize for performance and amortize storage cost. Only point where you're actually forced to make things durable is on pipeline checkpoint (when you receive checkpoint barrier ... the checkpoint interval can range from seconds to minutes). In the meantime you still want to access non-durable data.

In the meantime you still want to access non-durable data.

I'm having some difficulty understanding the expected behavior in the LSM engine when using stream processing primitives.
I feel that 'commit' has slightly different meanings in replication and transaction contexts:

In replication, 'commit' ensures that stream data is confirmed by multiple replicas in a distributed environment to prevent data loss, the replication is ordered. one can write a record to the primary node, while this record still haven't been replicated to the replicas, the readers can read this record from the primary node.
In local transactions (excluding 2PC), 'commit' is an ACID operation that writes to local storage. whenever you run tx.commit(), it should ensures Durability.

in an LSM engine, data from an uncommitted transaction cannot be read by other readers. if we want to allow reading non-durable data, we'd need to relax the Durability requirement in ACID (like using 'fire and forget'), and it takes effect in the write path but not the read path.
so how to 'Allow reads of non-durable data' is what confuses me the most. could you please give an example in the KV engine's context about how to read non-durable data?

i dunno whether this example is relevant or not, like we have a MySQL cluster of 3 nodes with an async replication, we successfully committed one transaction inside the master node, but the master node dies. after electing a new master, the "committed" data in the transaction is acceptible to be lost in this setup.
if we want "increase the durability level", we can use semi-sync replication or group replication, it could ensure the data not lost at all even after switched the master.

The idea here is to give the client some leeway to specify the guarantees it wants so it can tradeoff performance for durability. E.g. in your db example the client could specify whether it wants to wait for replication to occur or be acknowledged immediately after the write is durable on one replica. Perhaps a better comparison would be read/write consistency levels in cassandra? A writer can specify the number of replicas that a write should be written to before it's acknowledged and a reader can specify the number of replicas that a read should consult before it's acknowledged. As long as the two add up to a sum that's greater than the number of replicas, reads are guaranteed to return what was previously written. Not a perfect comparison since the resulting properties are different, but an example of systems letting clients trade off some guarantees for performance.

I'm having some difficulty understanding the expected behavior in the LSM engine when using stream processing primitives. how to 'Allow reads of non-durable data' is what confuses me the most at the moment. could you help give an example about how to read non-durable data in the KV engine's context?

A stream processor is typically processing or directly writing data from some log that it knows is durably stored. Stream processors can take advantage of this and achieve better performance by not waiting for the writes they do to the kv store to be persisted durably. If the LSM engine restarts, the stream processor just needs to establish the point in the log that corresponds to what the LSM engine has stored durably and then restart processing/writing from that point in the log.

thank you for the explanation! this makes a lot of sense.
let me try summarize to confirm i understand correct: in the stream process workload, the log position and the process data are stored in the lsm engine in an atomic update. so it allowed to lose some writes after process restart, we can find the offset to compute again.
it seems that rocksdb is also taking this behaviour by default, it will not fsync() the WAL on put() unless we set sync = true in WriteOptions, and we can also set a sync interval to let it fsync() after several seconds to trade off several seconds' durability guarantee for write performance.
(now i am a bit confused about when do we really need to mark a durable flag on read? it seems there's no counterparty in the lsm engines family as far as i know...) (it seems ok to read unpersisted data when we start a transaction, we can ensure fsync() on the commit() operation, and ACID could still be guaranteed)


Proper i18n (Internationalization)

Dunno if I should work on this but its probably a good thing to add later on.

Point of reference is the duiqt website


Provide %codec% metadata field

For title formatting geekery it would be nice if your component would provide a value for the %codec% metadata field.
I'm not sure whether your component actually decodes the compressed audio stream. Perhaps libspotify handles that so your code might not be able to tell which codec was used. But in that case you can do a sensible guess: Spotify themselves mention Ogg/Vorbis is the format used at the bitrates your components ports (96, 160, 320kbps).
See: https://artists.spotify.com/faq/mastering-and-loudness#how-does-spotify-process-my-audio-files
As Ogg is just the container the correct %codec% value would thus be "Vorbis".

Implemented


Demolition of buildings: Abbot's cathedral

There is an option in the patch that prevents the AI from demolishing certain buildings when trying to gather gold when in danger / deep financial crisis.
However, this does not include the Abbot's cathedral which will still be demolished, rendering him nearly defenseless without any way to recruit melee troops...

@PitchNeeded Financial crisis or not, the AI also triggers the "demolish buildings" routine when in danger / fear, which happens when an attacking army substantially outnumbers the currently available own units of the defender.
I've seen the Abbot demolish buildings due to that even when having over 50k gold reserves, when he had just attacked (and thus had no own troops waiting on his keep anymore), and then got counter-attacked right after that.
This behaviour then had the consequence of the Abbot not being able to recruit monks... uargh... :D
The Abbot not recruiting monks (but only archers) when in fear is another issue, but destroying his cathedral without any reason is just soo pointless.
(And yes, fear-induced building demolition in general is not specific to the Abbot - it can happen for any AI character. Abbot just happens to be the only one using cathedrals for monks.)


Restore elementwise min/max on SIMD, with explicit naming.

Having these as free functions causes expression too complex issues due to overload vis-a-vis min. There are (at least) three plausible solutions:

Fix the typechecker. This is infeasable in the short term; or more precisely, we do not know how much work is involved.

Give these operations different names. Candidates discussed with core team include "pointwiseMin", "elementwiseMin", "lanewiseMin"; these all suffer from the flaw that when someone writes "min" in a SIMD context, they are essentially always looking for either the horizontal minimum (reduction) on a single vector or--more often--the lanewise minimum of two vectors (this operation). It would be odd to give the operation that people actually want the unnecessarily verbose name.

Make these operations static; this is, in effect, a different name, but it's one which frequently allows eliding the qualifier:

let x = v + .min(v, w)
After considerable back-and-forth discussion with core, we settled on pointwiseMin and pointwiseMax. These aren't perfect, but they are explicit, which is worth a lot.
This rounds out SE-0251.

@swift-ci please test

@swift-ci please test source compatibility

@swift-ci please test source compatibility

@swift-ci please test

Build failed
Swift Test OS X Platform
Git Sha - 4b94685d57ceb3993e2263a75fab04ac79308c55

Build failed
Swift Test Linux Platform
Git Sha - 8e13ea61cf03e2a6fbcc680c74c696faf5a713b6

Linux failure unrelated (base breakage).

@swift-ci please smoke test linux


Remote Access not Working over SSH Tunnel

VS Code:

Version: 1.71.2
Commit: 74b1f979648cc44d385a2286793c226e611f59e7
Date: 2022-09-14T21:12:14.256Z
Electron: 19.0.12
Chromium: 102.0.5005.167
Node.js: 16.14.2
V8: <IP_ADDRESS>-electron.0
OS: Linux x64 5.15.0-46-generic
Sandboxed: No

Python: 3.9
Jupyter ext: v2022.8.1002431955
Python ext: v2022.14.0
Operating systems:

TINY MACHINE: CLIENT
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.5 LTS
Release:	20.04
Codename:	focal

BIG MACHINE: HOST
Distributor ID:	RedHatEnterpriseServer
Description:	Red Hat Enterprise Linux Server release 7.9 (Maipo)
Release:	7.9
Codename:	Maipo

Expected Behavior
I expect to be able to access big machine which has the jupyter notebook port forwarded via an SSH tunnel on the client.
Current Behavior
VS Code continues to execute code on the client.
More details
Tiny and Big run in a protected environment. They can only communicate via SSH. As such, my typical workflow involves starting a jupyter notebook  on Big--the machine with compute power--via jupyter notebook --no-browser and forwarding port 8888 from the Big onto Tiny. Using the provided URL, I can then access Big machine from tiny:

http://localhost:9999/?token={token}

Everything works as expected using this URL in my browser. However, when I attempt to use the Jupyter extension in VS Code, the code is still running locally. As a test I ran import os; os.getcwd() which showed  /home/tinymachineuser.
Here is what showed up in the logs in VS Code.
info 22:58:21.421: Creating server with url : http://localhost:9999/
info 22:58:51.836: Execute Cell 0 /home/tinymachineuser/Untitled.ipynb
info 22:58:51.889: Cell 0 executed with state Success

I see nothing appear in the Jupyter notebook logs.

after you connect to the server with the Jupyter: Specify Jupyter server for connections, you also need to select a kernel from that server:

Are you able to see the kernels from the remote server? The default from a Jupyter server is typically called Python 3 (IPykernel) as shown in that screenshot.
(also make sure you're not sharing tokens to active servers)

I am not able to see the kernels from the remote server. All the
environments listed are local.
[image: image.png]
On Fri, Sep 23, 2022 at 2:32 PM Aaron Munger @.***>
wrote:

after you connect to the server with the Jupyter: Specify Jupyter server
for connections, you also need to select a kernel from that server:
[image: image]
https://user-images.githubusercontent.com/2019016/192033718-aaa6a5ba-0f61-4a89-82fd-32a57a038743.png
Are you able to see the kernels from the remote server? The default from a
Jupyter server is typically called Python 3 (IPykernel) as shown in that
screenshot.
(also make sure you're not sharing tokens to active servers)
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/vscode-jupyter/issues/11438#issuecomment-1256540726,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACUPVARRGMBD7ZBFADPXDDV7XZSTANCNFSM6AAAAAAQTTH4AY
.
 This is not obvious behavior and isn't documented anywhere that I can tell:
https://code.visualstudio.com/docs/datascience/jupyter-notebooks#_connect-to-a-remote-jupyter-server


Doc/rfc9000 transport zh.md

@chenzhanfeng Thanks, but it seems that this branch has conflicts that must be resolved before merged.


Feat/214 update pv remix pop up font and layout

Pull Request
Description
Updates the layout of the tooltip pop-up box on the pv-remix-chart.
I also changed the chart titles (National and GSP labels) to bold while on this branch.
Previous:

Design suggestion:

Updated with Source Code Pro as the code-ish font. This was the font mentioned in the design meeting this week:

It was particularly challenging to try to put the OCF Forecast + numbers alone in bold and not bold the PV Live numbers since they are all part of the same array of data being mapped and styled together. So would welcome any suggestions.
Fixes #214
How Has This Been Tested?
This was visually tested by running the app locally.

[ ] Yes

Checklist:

[x] My code follows OCF's coding style guidelines
[x] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have checked my code and corrected any misspellings

I'll leave it to @braddf to suggest any improvements for the approvements, see you comment above and it be hard to mix 'OCF Forecast + numbers'

@rachel-labri-tipton you can merge away


Make uid/gid configurable & change group of files - part 2

Description
Make uid/gid configurable & change group of files.
This is a follow-up for https://github.com/stackabletech/docker-images/pull/849 (please check there for details).
This includes ( :heavy_check_mark:   means all tests have been run)

The missing bits for Hive :heavy_check_mark:
Kafka :heavy_check_mark:  (fixed https://github.com/stackabletech/kafka-operator/pull/766 while doing this)
(Kafka Testing Tools)
(KCat)
NiFi :heavy_check_mark:  (fixed https://github.com/stackabletech/nifi-operator/pull/687 while doing this)
Omid :heavy_check_mark:
OPA :heavy_check_mark: (implemented https://github.com/stackabletech/opa-operator/pull/633 while doing this)
Spark :heavy_check_mark:

There are still a few tools missing and they'll come in a follow-up PR
Definition of Done Checklist

Not all of these items are applicable to all PRs, the author should update this template to only leave the boxes in that are relevant
Please make sure all these things are done and tick the boxes

- [x] Changes are OpenShift compatible
- [x] Add an entry to the CHANGELOG.md file
- [x] Integration tests ran successfully

TIP: Running integration tests with a new product image
The image can be built and uploaded to the kind cluster with the following commands:
bake --product <product> --image-version <stackable-image-version>
kind load docker-image <image-tagged-with-the-major-version> --name=<name-of-your-test-cluster>

See the output of bake to retrieve the image tag for <image-tagged-with-the-major-version>.

And to answer your question: Yes, it builds locally and I did run all tests (see the issue description) and it all looks good.


Clean Up Default Resource Group Deployments

This is not really a bug fix, more of an improvement. If we need to deploy a default resource group with the workspace. We might run into the issue of a limit of 10 resource group deployments per subscription level. In this case, we can look for previous default resource group deployments that are succeeded with the pattern we use: "DeployResourceGroup" and clean them up before trying to deploy the workspace which would fail.
Also added the ability to correctly parse the ARM pattern for the Resource Group Deployment, which was not included before. Causing an error in CLIv2 (does not affect workspace deployment, just the printing of status during creation).
If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

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


Card corners in standard list mode

While in the home page articles don't have corners in standard list mode like in the example index file.

This is my params.toml file
[homepage]
  layout = "background" # valid options: page, profile, hero, card, background, custom
#  homepageImage = "bbt.jpg" # used in: hero, and card
  showRecent = true
  showRecentItems = 5
  showMoreLink = true
  showMoreLinkDest = "/post"
  cardView = false
  cardViewScreenWidth = true
  layoutBackgroundBlur = true # only used when layout equals background

Am I missing some configuration?

Hello @edo44 closing this issue. It seems that you are comparing two different styles that are not supposed to have the same style to begin with. Feel free to start a discussion if you have any questions regarding the configuration of the theme.


Map improvements

I will rework in the next week the map starting with the regions and in the process will fix some mistakes (like Chittagong Hills not being part of Chittagong region) and will the move over to the province.bmp. I want to do it for my enjoyment but I would be happy if it get's merged into the main mod.
I will mostly change things in accordance to development chance. Things like Vietnam having only two regions for a country with (today) over 100 mio. inhabitants. In the province.bmp I want also change Southeast Asia.

Finished Asia+Greece Region redraw. Next I will change the Provinces in Korea, Vietnam, Cambodia, (Laos) and Thailand in that order.
[https://drive.google.com/drive/folders/1pT_p2q93GtZrC_PSnTVihT7-NPe9Hli4](Here are the Files)

True or other names -
For Asia :
False : Antalaya - True : Antalya.
False : Hudavendigar - True : Bursa.
False : Golan Hights - True : Golan Heights.
False : Lactia - True : Latakia.
False : Iraqi Kurdistan - True : Turkmeneli.
False : Antioch - True : Antakya or Hatay
False : Rojava - True : Ayn el-Arab


Error when creating or updating GCM device via admin

Is anyone else seeing a validation error when trying to create or update a GCM device_id via the admin screen?  I am seeing this use mysql and postgresql.

fixed by #189


using router5 link in react-redux

I just opened a pull request to use deku-router5 Link component. I am not sure it was the correct way to use deku-router5 Link but it seemed to work okay.
For the react-redux example I would like to see how we can use the  react-router5 Link component.
I tried the following but came up with an error: Uncaught TypeError: this.router.addListener is not a function
import React, { Component, PropTypes } from 'react';
import { Link } from 'react-router5';

class Nav extends Component {
    constructor(props, context) {
        super(props);
    }

    render() {

        return (
            <nav>
                <Link routeName='inbox' routeOptions={{ reload: true }}>Inbox</Link>
                <Link routeName='compose'>Compose</Link>
                <Link routeName='contacts'>Contacts</Link>
            </nav>
        );
    }
}

export default Nav;

Thanks

You shouldn't need to use react-router5 Link with react-redux, and you shouldn't need to use deku-router5 with deku-redux.
react-router5 uses the listeners plugin to be notified by state changes, and update itself. It receives state updates directly from the router. When using redux, you get state updates from your store, and you don't need (shouldn't use) stateful components like Link. The error you get is because router5-listeners package is not used (and should not be used).
Same thing is true with deku-router5, although deku-router5 Link component is not stateful but receives prop updates from the source route. With deku-redux, your links should only receive state updates / prop updates from the store, not by a route value set on your tree.
without redux:

deku-router5
react-router5

with redux:
(notice how redux is between deku/react and router5)

deku-redux + redux-router5
react-redux + redux-router5

Okay that makes sense, so they are stateful components and should not be used with redux.
Would it make sense to add a Link component to deku-redux and react-redux? Would each Link component in a redux app be exactly the same, hence it is just boilerplate.

Well I think it would make sense to add a Link component which would remove the boilerplate of getting the router from source (Deku) or context (React) and building an href with a route name and route params.
However, they are three ways links can be used which leads to different implementations

Links receive as a prop if they are active or not (typically in a menu which uses connect)
Links receive the active route as a prop (with connect) and figure out if they are active (typically for a link which would be on its own)
Links can have no active property / DOM state (active class name)

What they have in common: they need to compute their href.
But:

It cannot be in react-deux or deku-redux because they have nothing to do with router5.
It cannot be in react-router5 or deku-router5 because they already have their Link component which shouldn't be used with redux.
It shouldn't be in redux-router5 because it has no ties with React or Deku

So it would be in a repository called

react-redux-router5
deku-redux-router5

:laughing:

So the link component in react-router5 and deku-router5 cannot have support for redux.
I do notice in my react-router-redux example which was very similar to the official example, the only one I could find actually... the Link component from react-router is used, however it imports pushState from redux-router.
So when you mention the three ways the Link component can be used: Is this just for when Linking in redux, or common to redux and a simple react/deku application?

Links receive as a prop if they are active or not
Links receive the active route as a prop (with connect) and figure out if they are active
Links can have no active property / DOM state (active class name)

It would be great if we do not need to add additional repos react-redux-router5 and deku-redux-router5 as that would be very confusing as there is already redux-router5 repo which deals with the integration of redux with router5.
I am happy at the moment, with just adding a separate Link component, as it all seems to work well with this setup and I feel it is better than having an additional dependency. Linking in your examples is very easy with the named routes and passing the context.router through as props.
Thanks

That got me thinking, so thank you for raising that issue :smile: :+1: .
I won't rename redux-router5 because both redux and router5 are view agnostic. That is not a definite no, but redux-router5 needs to evolve and mature a bit and I don't want to be left with two repos sharing the same code.
However, I think react-router5 and redux-router5 can provide the Link component, I just need to refactor. The problem is the current Link component being stateful. I need to make it stateless and provide a routeChange HOC which would add a route change listener and pass route as a prop to the Link. That will make things a lot more composable and reusable.
When using React (or deku) and router5 without redux:

Your link component is Link + routeChange HOC (a named component should be created rather than leaving it up to the developer to have to do it all the time)
If you have a menu and don't want to register a listener per link, you can use the stateless Link component and wrap your menu of links with routeChange HOC.

When using redux, nothing changes. Instead of using the routeChange HOC, you use the connect HOC. Whether you choose to bind to your state individual links or a menu of links or anything else...
:tada:

I like the sound of the Link component being stateless, that makes sense to me. It would be great if within a redux/router5 app I could easily link to other containers as in a plan react/router5 app:
<Link routeName='product' routeParams={ id: product.id } >
{product.id}
</Link>

This currently works well in a plain react/router5 app but is more difficult when using redux.
You mention a routeChange HOC. How does that work, would we still add the <Link /> component when linking, and the routeChange HOC is just a wrapper around that?
When using redux, you mention that you can use the connect HOC. That sounds good, but I'm a bit confused on how it would work, I probably just need to see how you implement it.
For some background, at the moment the easiest way for me to link between containers in my redux/react/router5 app is to use the navigateTo action:
import { actions } from 'redux-router5';

function ProductContainer (props) {
  const { route } = props;

  return (
    <div onClick={ () => props.navigateActions.navigateTo('home') }>
    Link back to home
   </div>
  );
}

function mapDispatchToProps(dispatch) {
  return {
    ProductActions: bindActionCreators(ProductActions, dispatch),
    navigateActions: bindActionCreators(actions, dispatch)
  }
}

export default connect(routeNodeSelector('friends'), mapDispatchToProps)(ProductContainer)

You mention a routeChange HOC. How does that work, would we still add the  component when linking, and the routeChange HOC is just a wrapper around that?

You would add a "Link" component (possibly named something else, see below). HOCs are not really wrappers, because they don't wrap a component instance. They are a component themselves using a base component to create an enhanced new Component <Component> = <Component>(<Component>).
The use of connect or routeChange HOCs have the same goal: passing down route as a prop to a stateless Link component. The only difference is where it gets that route property from.
When using redux, it comes from your state (aka the single source of truth). connect subscribes to your store and passes down a portion of your state as props. If you follow instructions here, a connected Link component is defined by const ConnectedLink = connect(state => state.router)(Link).
When not using redux and using router5 listeners plugin, it comes from the router directly. routeChange would register a route change listener with the router and pass down route change data to a component: const ConnectedLink = routeChange(Link).

Closing this. react-router5 has withRoute and routeNode HOCs + a BaseLink component. It also has a Link component which is withRoute + BaseLink.
I use BaseLink with redux (it needs the router in context)


Math mode 2D argument parsing fails when last argument is a code expression

Description
Suppose we have this function:
let foo(..ops) = {
    return ops.pos();
}

When I call it in math mode with only content arguments it works correctly like this:
foo(
    1, 2;
    3, 4;
)
(([1], [2]), ([3], [4]))

However if the last argument before the semicolon is a code literal it breaks:
foo(
    1, #2;
    3, 4;
)
(([1], sequence([2], [ ], [3]), [4]),)

// expected output
(([1], 2), ([3], [4]))

Reproduction URL
No response
Operating system
Linux
Typst version

[X] I am using the latest version of Typst

The semicolon terminates the code expression rather than being interpreted as a delimiter in the list. So it's quite similar to this issue: https://github.com/typst/typst/issues/4401


Correct errors & bugs in norm_layer*

Description
This PR correct the following errors in the norm_layer*

Uniformize parameter initialization across c++ and cuda versions

Call the set_cap_factor_update update in the cuda version

Correct a typo in batchnorm2d_fwd_mean_var_cuda()

Remove the epistemic variance term from the normalization std

Correct an error in the forward's variance calculation

See the working document for theoretical details about the corrections made.
Changes Made

For both the c++ and cuda versions, the weight parameters are now initialized as float scale = 1.0f / this->num_weights;
Add this->set_cap_factor_udapte(batch_size); in the norm_layer_cuda.cu for both the Batch- and Layer-Normalization.
In batchnorm2d_fwd_mean_var_cuda(), the following typo was corrected: tmp_mu_ra_2 = tmp_mu_ra * tmp_mu_a -> tmp_mu_ra_2 = tmp_mu_ra * tmp_mu_ra
The epistemic variance term has been removed from the variance calculations as well as from the input and outputs
The formulation for the forward's variance calculations have been updated with the new one available in the working document.

Note for Reviewers
Although the corrections mentioned above are required from a theoretical standpoint, they are not solving the performance issues observed for the resnet18 applied on Cifar10.
I have tested the changes proposed on CPU & CPU using the classification.py MNIST benchmark with the FNN_LAYERNORM and FNN_BATCHNORM architectures. One thing I noted on that benchmark is that layer-normalization is working properly for both CPU and GPU. On the other hand batch-normalization works properly on CPU but fails to learn (i.e., error = ~90%) on GPU. I suspect that this is cause by a bug in batch-normalization but I have not been able to pinpoint the source yet.

@lhnguyen102 Thank you for the review. I have already implemented the changes requested and I will fully test the changes tomorrow morning and let you know if everything is all good.

@jamesgoulet thank you! look forward to testing it on my side

@lhnguyen102 I was able to test all the new changes. It is ready to merge whenever you are ready.

@jamesgoulet you had the memory leak. Here is the command I've used for memory checks compute-sanitizer --tool memcheck build/main test_fc_mnist
CUDA Runtime Error at: /home/ha/Tagi/cuTAGI/src/data_struct_cuda.cu:438
unspecified launch failure
========= Target application returned an error
========= ERROR SUMMARY: 40 errors

You also have the memory leak in CPU as well. Here is the command I used valgrind build/main test_fc_mnist
==40624== LEAK SUMMARY:
==40624==    definitely lost: 221,336 bytes in 56 blocks
==40624==    indirectly lost: 1,230,720 bytes in 12 blocks
==40624==      possibly lost: 411,352 bytes in 7 blocks
==40624==    still reachable: 224,851,996 bytes in 169 blocks
==40624==         suppressed: 0 bytes in 0 blocks
==40624== Rerun with --leak-check=full to see details of leaked memory
==40624==
==40624== For lists of detected and suppressed errors, rerun with: -s
==40624== ERROR SUMMARY: 522 errors from 3 contexts (suppressed: 0 from 0)

I think the issue is from the previous PR and the issue comes from BatchNorm. I'll work on fixing that bug

@jamesgoulet the issue comes from my test...your modifications do not cause the memory leak isue. Just push the fix for the test. All is good now.


Add possibility to add new applications and versions by JSON file upload

Up till now in order to add a completely new application or add a new version of an existing application the administrator or application manager had to use the appropriate wizard and enter all the required fields manually through the Portal.
Since a proper backend API endpoint(s) already exist (which are actually already used by the initialization scripts) we need to give the Portal users possibility to upload application / version specifications in form of pre-filled JSON files.
Appropriate button should be added on the application list view next to the existing Add button. It should be named "Add (JSON)" and once clicked open a modal allowing user to upload a JSON file (optionally copy paste the raw content of the file).
Also on the cogwheel menu next to each application an additional item "Add version (JSON)" should be added allowing for uploading JSON spec of an application version.

@kbeyro in general both application and application version addition via the JSON file works fine.
Comments to be addressed:

after application is uploaded, the users gets redirected to an incorrect application preview page (probably issue with app base vs app version identifiers)
some JSON content validation should be in place and user should be properly informed if there is any kind of issue with the uploaded spec (e.g. JSON content is malformed)


Ignore regular writes by cupsd to its own files

The CUPS daemon update its /etc/cups/subscriptions.conf file regularly, no need to create noise in the logs about this.
/kind bug
/kind cleanup
/kind feature
/area rules

@petterreinholdtsen: The label(s) kind/bug, kind/cleanup, kind/feature, area/rules cannot be applied, because the repository doesn't have them.

In response to this:

The CUPS daemon update its /etc/cups/subscriptions.conf file regularly, no need to create noise in the logs about this.
/kind bug
/kind cleanup
/kind feature
/area rules

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Thanks for your pull request. Before we can look at it, you'll need to add a 'DCO signoff' to your commits.
:memo: Please follow instructions in the contributing guide to update your commits with the DCO
Full details of the Developer Certificate of Origin can be found at developercertificate.org.
The list of commits missing DCO signoff:

134d33d Ignore regular writes by cupsd to its own files

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: petterreinholdtsen
Once this PR has been reviewed and has the lgtm label, please assign mstemm for approval by writing /assign @mstemm in a comment. For more information see the Kubernetes Code Review Process.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[Lorenzo Susini]

Hello @petterreinholdtsen, I am not familiar with cupsd but just
wanted to ask a question, are we sure that these are the only file it
is writing? After installation, I am seeing in /etc/cups that there
are also other files and directories.

The files listed are the ones that I am aware of are automatically
updated without human interaction.  Other files (as well as these) are
updated by cupsd when printers and settings are configured, but I
suspect a log entry might be in order when that happen?

Maybe we can con consider using startswith /etc/cups instead of
in. Just a question, in any case sgtm

It depend on how fine grained the rule should be.  Everything under
/etc/cups/ "belong" to cupsd, so it would not be surprising that it
updated one of its own files.
--
Happy hacking
Petter Reinholdtsen

Since this rule has been noisy historically, I'd use startswith. Moreover, I see no security implications and as you said "not surprising" cupsd writing to its own files. This is my opinion, let's wait for other people to join the conversation

[Lorenzo Susini]

Since this rule has been noisy historically, I'd use
startswith. Moreover, I see no security implications and as you said
"not surprising" cupsd writing to its own files. This is my opinion,
let's wait for other people to join the conversation

I have no problem with a less specific test.  Patch updated to use
fd.name startswith /etc/cups/ instead.
--
Happy hacking
Petter Reinholdtsen

[schie]

I'm not sure if this macro is actually useful. In the ruleset we have
already never_true macros and I would avoid adding a new one if not
strictly required.

The macro is there to allow a site to control the behaviour using local
overrides.
--
Vennlig hilsen
Petter Reinholdtsen

/milestone falco-rules-0.2

/kind feature

/area rules

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close.
Provide feedback via https://github.com/falcosecurity/community.
/lifecycle stale

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.
Provide feedback via https://github.com/falcosecurity/community.
/close

@poiana: Closed this PR.

In response to this:

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.
Provide feedback via https://github.com/falcosecurity/community.
/close

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

It is unclear to me what more I can do to make this acceptable into the
default rule set.  Should I drop the option to allow the override and
always ignore changes in /etc/cups/?
I have rebased the change on top of the current main branch.
--
Happy hacking
Petter Reinholdtsen


Add 'FormFactor' property to UnionOperations.

The 'FormFactor' property for UnionOperations is undocumented (ie: not in the API dump), but is still needed for UnionOperations.
Its probably better to add this to your auto generator thing for classes instead of adding it manually, but this is good enough for now.

Can you add this to the automated procedure instead of directly adding it?
Look in the Plugins folder.

To elaborate, the plugin should be ran as a BuiltInPlugin, as it gives CoreScript level access.

One other thing worth mentioning. I was aware of this property, but I didn’t think it’s inclusion was necessary. They added it to prevent the FormFactor property from being changed when FormFactor still induced size constraints, but those constraints have since been removed. then it has been removed.

https://github.com/CloneTrooper1019/Roblox-File-Format/commit/4e1fdc0a22cdf801187dc87ef40f8cdf4d8be0a7
I think this commit should fix the issues you brought up.


Can not send email

the kapacitor conf
[smtp]
enabled = true
host = "smtp.exmail.qq.com"
port = 25
username =<EMAIL_ADDRESS>password = "xxxxxx"
from =<EMAIL_ADDRESS>to =<EMAIL_ADDRESS>#no-verify = false
global = true
state-changes-only = true
#idle-timeout = "30s"

the log
[cpu_alert:alert2] 2016/08/11 09:59:30 E! smtp service not enabled, cannot send email.

but the stmp can send mail by mailx ,why?

@Chentongxuedefanhua Can you share the logs from Kapacitor during startup with debug logging turned on? Thanks

@nathanielc Thank you for your reply. it works with the same conf..... maybe the smtp was worng yesterday


WIP: add ceph source CRD

Signed-off-by: Yuval Lifshitz<EMAIL_ADDRESS>Implementing ceph source CRD, controller etc. following this guide

[ ] do end2end test
[ ] write documentation
[ ] write unit tests
[ ] update dependencies after https://github.com/knative/eventing-contrib/issues/1571 is fixed
[ ] update release notes

@yuvalif we've moved the ceph source to its own sandbox repo: knative-sandbox/eventing-ceph
Could you please move this PR there? thanks!

@yuvalif we've moved the ceph source to its own sandbox repo: knative-sandbox/eventing-ceph
Could you please move this PR there? thanks!

sure. will do

@yuvalif we've moved the ceph source to its own sandbox repo: knative-sandbox/eventing-ceph
Could you please move this PR there? thanks!

@lberk we probably need to fix documentation here
as its refers to eventing-contrib repo and not the knative-sandbox org

this PR is closed in favor of: https://github.com/knative-sandbox/eventing-ceph/pull/5


Show 2 confirmation popup, when connecting to the pontem wallet successfully and then switch to another account

I test the example online aptos-wallet-adapter  , when connecting to the pontem wallet successfully and then switch to another account that has never been connected before, I see 2 confirmation popups.
Is there any way to fix this?

I think this is a Pontem wallet behavior - where they expect an(y) account to approve the connection to the dapp


Support i18n

Hi,
that would be great if this text panel could support internationalisation, using handlebars-i18n and i18next and a separate resources editor for the JS object/dictionaries of translation.
Thanks.

@amarant Thank you for opening the issue. I like the feature and we will plan it for the upcoming release.

@amarant We just added a custom JavaScript Code section, which can be used to define your own Handlebars Helpers.
Interesting if we could support internationalization using a custom Handlebars Helper, which will return a proper message depending on Grafana's selected language.
I asked the Grafana team if Internationalization is supported in plugins, and the answer was "no". I need to check where we can get the value for the current language and add it to the available parameters.

@amarant I looked at handlebars-i18n and created a basic implementation using a new JavaScript Code Editor.
Please take a look and let me know if it works for you.
Content:
{{translate "Hello"}}

Default Content:
{{translate "Default"}}

const messages = {
  "Hello": {
    'en': 'Hello',
    'fr': 'Salut',
    'es': 'Hola'
  },
  "Default": {
    'en': "The query didn't return any results.",
    'fr': "La requête n'a renvoyé aucun résultat.",
    'es': "La consulta no arrojó ningún resultado."
  },
}

const locale = getLocale();

handlebars.registerHelper('translate',
  (message) => messages[message][locale] ?? messages[message]['en']);

Thanks, it works well and I can use the dynamic browser language instead of the grafana selected language with navigator.language.
But it seems the default style for links is the same as normal text, and I can't set my own style with markdown.

@amarant We are working on adding an additional editor for CSS Styles. Will be a part of the upcoming release.

@amarant We just added a custom styles editor.

You can try from the CI artifact. I have more issues to review and will release new version later today or tomorrow.


fix: generate models cannot log in certain cases

Description
This PR fixes an issue where the oclif logging function does not have access to the jsonEnabled function internally.

/rtm


Basic things don't work

Google,

your demo app doesn't work
marker onClick method doesn't work

implementation 'com.google.maps.android:maps-compose:2.5.3'
implementation 'com.google.android.gms:play-services-maps:18.1.0'

compileSdk 33, minSdk 26, targetSdk 33
Pixel 4a Emulator
macOS Monterey 12.5 with Apple M1 Max

Your demo app doesn't work:

clone
build
run
click any button

expected: I can see Basic Map, Map in Column and so on
real: nothing happens, just progress bar

Marker onClick method doesn't work

@Composable
fun MapContent(city: City) {
    val singapore = LatLng(city.latitude, city.longitude)
    val cameraPositionState = rememberCameraPositionState {
        position = CameraPosition.fromLatLngZoom(singapore, 12f)
    }
    GoogleMap(
        modifier = Modifier.fillMaxSize(),
        cameraPositionState = cameraPositionState,
        uiSettings = MapUiSettings(zoomControlsEnabled = false)
    ) {
        Marker(
            state = MarkerState(position = singapore),
            onClick = {
                Timber.tag("Zhopa").d("click")
                true
            }
        )
    }
}

expected: some "click" words in Log
real: nothing

Google?

Google?

@nowiwr01w have you added an API key?

@polivmi1 sure

Can't reproduce. @nowiwr01w Please make sure you have followed the instructions in the README. If after that you still do not see the screen, please provide the error message from the Log in any future bug reports.


Update cache.js

Larger griddedcache to account for offset hex packing on hex grids
Makes it stop throwing errors and freaking out if you try to route a token on the bottom or right (depending on the direction of the hexes) 1/4 of a hex map.

I looked at the spacing chart here:
https://www.redblobgames.com/grids/hexagons/
canvas.grid.h would give you the point to point height.  But if you're trying to divide the canvas dimensions by that to get the number of hexagons, you'd want the vertical spacing instead since they're offset from each other and thus are packed more tightly than squares would be.
Looks like the vertical spacing is 3/4*h.
But happy to be proven wrong if I'm not looking at that right.

You're right. Thanks for the PR!


etcdctl member list should return member IDs in a consistent format

When I run etcdctl member list, i get the member ID back as a hex string.   However, when I run etcdctl member list -w json, I get the member IDs as decimal strings.  This is especially unfortunate when using jq to parse the output as jq mangles anything that looks like a large integer to a double-size int, meaning that the etcd member ID breaks (and this has been raised with the jq team and they insist the behavior of jq is allowed, see for example stedolan/jq#369).
Using --hex=true or --hex=false seems to have no effect on the etcdctl output.
etcdctl should return the member ID in a consistent number format regardless of the output format.  Ideally it should always default to hex strings since that gets around the jq number-parsing issue.

Also, the member ID probably should be quoted as a string rather than left bare as a number, even if in decimal form.

We can get the member ID from the text listing, but we have to treat it as unstructured data (apart from comma-separation) rather than having a nice solid jq pipeline for it.  Other JSON parsers exist but jq is pretty universal so we'd like to be able to use it for this too instead of using a different tool just for this one thing.  It also makes things harder in this specific instance because what we're doing is parsing out the member ID based on the endpoint URL using jq, and then using that member ID to operate on the peer in question.  If the member ID gets mangled by jq then we can't do that in one step like we could otherwise.
Just to throw out some ideas:

Can --hex be made to work here?
Maybe a new CLI flag like --ids-as-strings can be introduced for JSON output to trigger id-quoting behavior?
Can "short ID" support be added to etcd (with a flag like --short-ids to enable the behavior), like what Docker allows with container IDs or git allows with commit hashes?  Numbers less than 2^53 won't be mangled by jq, so if the ID can be output and input as a number less than that value then it'll work fine.

Moving discussion to https://github.com/etcd-io/etcd/issues/9975.


Best way of dealing with connection timeout issues

Sorry I've been out of touch for a while. I wanted to check-in and see if there were any updates on handling connection timeouts. My previous approach was as follows:
import tornadis
from tornadis.exceptions import ConnectionError

results = yield client4.call("HGETALL", redis_key)
if isinstance(results, ConnectionError):
	yield client4.connect()
	results = yield client4.call("HGETALL", redis_key)

Is there a more optimal solution, or should I continue with this approach?

Still getting these errors, when I connect to my redis server locally:
  [E 150918 14:13:10 ioloop:588] Exception in callback None
      Traceback (most recent call last):
        File "/opt/anaconda/lib/python2.7/site-packages/tornado/ioloop.py", line 840, in start
          handler_func(fd_obj, events)
        File "/opt/anaconda/lib/python2.7/site-packages/tornado/stack_context.py", line 275, in null_wrapper
          return fn(*args, **kwargs)
        File "/opt/anaconda/lib/python2.7/site-packages/tornadis/connection.py", line 200, in _handle_events
          self._handle_read()
        File "/opt/anaconda/lib/python2.7/site-packages/tornadis/connection.py", line 212, in _handle_read
          chunk = self._read(self.read_page_size)
        File "/opt/anaconda/lib/python2.7/site-packages/tornadis/connection.py", line 255, in _read
          raise ConnectionError("error during socket.recv: %s" % e)
      ConnectionError: error during socket.recv: [Errno 60] Operation timed out

I'm working on a doc update. I will include this.
But to reply here:

you don't run master (in latest commits, there is no exception raising any more)
if you run master or latest release, Client object is in auto(re)connecting mode by default so you don't have to reconnect manually

Full example:
https://github.com/thefab/tornadis/blob/master/examples/coroutines.py
Note that reconnection is automatic (without exception at all) but "exception returning" command is (of course) not sent another time (you have to do this manually if it's relevant to you).


Azure SQL VMs - How do I configure the storage via Az CLI?

I'm unable to find anything in the Az CLI documentation regarding the storage configuration of Azure SQL VMs created via az sql vm create.
I'm specifically looking for how one should add more disks.  The functionality seems to be in ARM (I can export a template in the portal that creates an Azure SQL VM with disks configured as I require), however I cannot find it in the Az CLI documentation.
Thanks

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: a502befd-c5a3-8aa4-3f03-a65133e73583
Version Independent ID: 33f1db2e-73f1-e786-c1d1-6a9bb570de7b
Content: az sql vm
Content Source: latest/docs-ref-autogen/sql/vm.yml
Service: sql-database
GitHub Login: @rloutlaw
Microsoft Alias: routlaw

sql

Hello, just looking for an update please.
Is this possible via "az sql vm create"?  I see all the other functionality like SQL backups, enabling R Services, and so on are present... but disk layout is missing.
Am I just looking in the wrong place?

Unfortunately disk configuration is not currently supported through az cli.


Godot 4: impossible to restart after creating a TextureAtlas from PNGs

Godot version
v4.0.dev.20211108.official.596865366
System information
Windows 10 64bit - Vulkan API 1.2.141 - GeForce GTX 1660 SUPER
Issue description
When you create a TextureAtlas  from PNGs Godot as you to restart and can not start anymore without remove PNGs .import files.
I didn't find any related issue in the past months on GitHub tracker. I only tried it on Windows. I thing it's the same with other images. Same behavior in Godot_v4.0-dev.20211027.
Steps to reproduce

Create a blank project
Add PNGs (I used https://www.kenney.nl/assets/toon-characters-1)
Select PNG in editor (Screenshot 1)
Select "Import" tab on left sidebar
Import as TextureAtlas
Select "Atlas file" and give it a name (the name does not matter)
Select "Reimport" button
Select "Save Scenes, Re-Import, and Restart" button
Wait the engine restart and display a blank pop-up named "Load Errors" (Screenshot 2)

Minimal reproduction project
texture-atlas_before.zip
texture-atlas_after.zip

@gustavi Can you reproduce this on 3.4 as well, or only in master?

3.4 : 🟢 atlas works
4.0-dev.20210727 : 🔴 broken
4.0 : 🔴 broken

(tested on Windows only)

Still valid in 6a9115b


Internet unreachable with proxy-pac-with-proxy.pug

Ran into an issue with my set up where I had to copy proxy-pac.pug's content to proxy-pac-with-proxy.pug in order for the internet to be reachable again.
I don't have any insight into why this doesnt work and why this fix works.  But it do.

Hi @nchudleigh,
Sorry for the doc, it may be unclear. If you have a company network proxy, you should put its address or leave false otherwise (true is probably what's making it fail):
https://github.com/typicode/hotel/blob/master/src/conf.js#L14-L16
So here, if you don't have an existing network proxy, simply remove "proxy": true" line and restart hotel stop && hotel start`.
On a side note, in recent versions, Hotel will use default values if they're not present in ~/.hotel/conf.json. So if you only want to change the tld, your conf could look like this:
{
  "tld": "deb"
}

Let me know if it helps.

That helps a lot will give that a shot, thanks.


rptun: Strip rpmsg and rptun. Extract common rpmsg api in rptun.c to rpmsg.c, rpmsg provide rpmsg_ops to each backend for specific implementation.

Summary
nuttx/driver/rpmsg: new folder, extract common rpmsg api in rptun.c to rpmsg.c.
rpmsg provide rpmsg_ops to each backend for specific implementation.
Impact
Clarify the functions of rptun and rpmsg so that rpmsg can adapt to other types of transport layers.
Testing
Tested in sim vela, 86panel, n62. Verification function is normal.

@wyr8899 Let's fix the CI problem.

please rebase to the last master the ci break is fixed, @wyr8899


[SPARK-11887] Close PersistenceEngine at the end of PersistenceEngineSuite tests

In PersistenceEngineSuite, we do not call close() on the PersistenceEngine at the end of the test. For the ZooKeeperPersistenceEngine, this causes us to leak a ZooKeeper client, causing the logs of unrelated tests to be periodically spammed with connection error messages from that client:
15/11/20 05:13:35.789 pool-1-thread-1-ScalaTest-running-PersistenceEngineSuite-SendThread(localhost:15741) INFO ClientCnxn: Opening socket connection to server localhost/<IP_ADDRESS>:15741. Will not attempt to authenticate using SASL (unknown error)
15/11/20 05:13:35.790 pool-1-thread-1-ScalaTest-running-PersistenceEngineSuite-SendThread(localhost:15741) WARN ClientCnxn: Session 0x15124ff48dd0000 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
	at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
	at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
	at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350)
	at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1068)

This patch fixes this by using a finally block.

Reviewable's diff makes it clear that this patch is 99% whitespace changes: https://reviewable.io/reviews/apache/spark/9864

Test build #46428 has started for PR 9864 at commit ea9d063.

Test build #46428 has finished for PR 9864 at commit ea9d063.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

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

Merged build finished. Test FAILed.

/cc @zsxwing for review.

You can look at https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/46428/artifact/core/target/ to see that this ended up fixing those spurious log messages.

Reviewable's diff makes it clear that this patch is 99% whitespace changes: https://reviewable.io/reviews/apache/spark/9864

You can also use https://github.com/apache/spark/pull/9864/files?w=1 to ignore space changes :)

LGTM

Woah, cool! I didn't know about that GitHub feature. I'm going to merge this into master and branch-1.6.


signature not valid

source code
from huobi.client.account import AccountClient
from huobi.client.generic import GenericClient
from huobi.client.market import MarketClient
from huobi.client.trade import TradeClient
from huobi.constant import CandlestickInterval

from huobi import privateconfig

if __name__ == '__main__':
    generic_client = GenericClient()
    ts = generic_client.get_exchange_timestamp()

    market_client = MarketClient()
    list_obj = market_client.get_candlestick("btcusdt", CandlestickInterval.MIN5, 10)

    account_clinet = AccountClient(api_key=privateconfig.p_api_key, secret_key=privateconfig.p_secret_key)
    ls = account_clinet.get_account_balance()
    for l in ls:
        l.print_object()

ls = account_clinet.get_account_balance()
my api_key and sercet_key is valid, but this line will raise exception
huobi.exception.huobi_api_exception.HuobiApiException: ('ExecuteError', '[Executing] api-signature-not-valid: Signature not valid: Incorrect IP address [IP地址错误]:<IP_ADDRESS>')

Same for me. I tried multiple keys and none of them work.

@xswwhy actually your error is invalid IP address. Check if you bind any IP address.
My error is different:
(3) ➜  huobi_Python git:(master) ✗ python example/account/get_balance.py
Traceback (most recent call last):
File "example/account/get_balance.py", line 10, in
list_obj = account_client.get_balance(account_id=g_account_id)
File "/Users/changluo/Documents/GitHub/huobi_Python/3/lib/python3.6/site-packages/huobi_client-2.0.0-py3.6.egg/huobi/client/account.py", line 41, in get_balance
File "/Users/changluo/Documents/GitHub/huobi_Python/3/lib/python3.6/site-packages/huobi_client-2.0.0-py3.6.egg/huobi/service/account/get_balance.py", line 24, in request
File "/Users/changluo/Documents/GitHub/huobi_Python/3/lib/python3.6/site-packages/huobi_client-2.0.0-py3.6.egg/huobi/connection/restapi_sync_client.py", line 116, in request_process
File "/Users/changluo/Documents/GitHub/huobi_Python/3/lib/python3.6/site-packages/huobi_client-2.0.0-py3.6.egg/huobi/connection/restapi_sync_client.py", line 121, in request_process_product
File "/Users/changluo/Documents/GitHub/huobi_Python/3/lib/python3.6/site-packages/huobi_client-2.0.0-py3.6.egg/huobi/connection/impl/restapi_invoker.py", line 67, in call_sync
File "/Users/changluo/Documents/GitHub/huobi_Python/3/lib/python3.6/site-packages/huobi_client-2.0.0-py3.6.egg/huobi/connection/impl/restapi_invoker.py", line 30, in check_response
huobi.exception.huobi_api_exception.HuobiApiException: ('ExecuteError', '[Executing] api-signature-not-valid: Signature not valid: Incorrect Access key [Access key错误]')


ARIES-1751 - Fix typo in namespace URL

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Aries-rsa-pr/25/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Aries-rsa-pr/26/


After update to 4.0 I got many lint errors, is there a way to use old eslint setup?

I just updated to new CRA, at first it wasn't working until I added 2 new tsconfig rules ("jsx": "react" &      "noFallthroughCasesInSwitch": true) after that I was able to run my app but I got many new warnings, most of them are complain on no semicolons in interfaces (I don't use them in my project at all, due to prettier config). Also it complains on optional properties.

Is there a way to use old linter rules somehow, and if not could you guide me on how to ignore those warnings? I don't have a certain eslint config in the project. I also wasn't able to find the solution for this.

@flppv your problem look more linked with eslint than react. You should have a look on how to disable rules in eslint.

I think the new default rules are pretty sensible, but you can disable them or turn them into warnings (instead of errors) using your .eslintrc.json file.

I think the new default rules are pretty sensible, but you can disable them or turn them into warnings (instead of errors) using your .eslintrc.json file.

I didn't have any my eslint configs, that's why I asked the question.
However, I had to create it and write all the rules. I think that the fact that everyone who didn't have configs will gonna be must to create it after update should have been announced in breaking changes.


[WIP]Add fastertransformer t5 integration test

Description
Add an intial fastertransformer t5 integration test to test the workflow. Will add more tests after this.

Testing: job on personal devo branch - https://github.com/deepjavalibrary/djl-serving/actions/runs/4138893628/jobs/7155865025


Added Effective go book in programming

What does this PR do?
Add resource(s)
For resources
Description
Added a book Effective Go - The Go Programming Language provided by GoLang Team
How do we know it's really free?
This book is provided by the Go Team which is always available on Go website , check the link
For book lists, is it a book? For course lists, is it a course? etc.
It is a book
Checklist:

[x] Read our contributing guidelines.
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction).
[x] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

@dstark5 Great submission, but the free-programming-books-subjects.md is for programing resources that are general and not specific on just one language. The books/free-programming-books-langs.md is where the language specific books listed.

Thank you will do it properly