Docker hub image cache doesn't seem to be working

We have a continuous integration pipeline on circleci that does the following:

Loads repo/image:mytag1 from the cache directory to be able to use cached layers
Builds a new version: docker build -t repoimage:mytag2
Saves the new version to the cache directory with docker save
Runs tests
Pushes to docker hub: docker push repo/image:mytag2
The problem is with step 5. The push step takes 5 minutes every time. If I understand it correctly, docker hub is meant to cache layers so we don't have to re-push things like the base image and dependencies if they are not updated.

I ran the build twice in a row, and I see a lot of crossover in the hash of the layers being pushed. Yet rather than "Image already exists" I see "Image successfully pushed".
Here's the output of build 1's docker push, and here's build 2
If you diff those two files you'll see that only 2 layers differ in each build:
< ca44fed88be6: Buffering to Disk
< ca44fed88be6: Image successfully pushed
< 5dbd19bfac8a: Buffering to Disk
< 5dbd19bfac8a: Image successfully pushed

9136b10cfb72: Buffering to Disk
9136b10cfb72: Image successfully pushed
0388311b6857: Buffering to Disk
0388311b6857: Image successfully pushed

So why is it that all the images have to re-push every time?
Environment info:
It seems they have their own fork of docker they're using in the env...
$ docker -v
Docker version 1.8.2-circleci, build a8b52f5

$ docker info
Containers: 3
Images: 47
Storage Driver: btrfs
Execution Driver: lxc-1.0.8
Logging Driver: json-file
Kernel Version: 3.13.0-76-generic
Operating System: Ubuntu precise (12.04.5 LTS) (containerized)
CPUs: 2
Total Memory: 240.2 GiB
Name: box1289
ID: IDME:TMNA:PWC4:OQ4A:LMJR:K7RC:NUJ6:LDSZ:7JTN:I4B3:VO5G:HMSB
Debug mode (server): true
File Descriptors: 17
Goroutines: 28
System Time: 2016-01-22T12:32:38.134432556Z
EventsListeners: 0
Init SHA1:
Init Path: /usr/bin/docker
Docker Root Dir: /var/lib/docker
WARNING: No memory limit support
WARNING: No swap limit support
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled```

@thaJeztah

more info:
running docker push repo/myimage:mytag2 twice in a row gives me the desired Image already exists for all layers.
in addition, running:
$ docker tag repo/myimage:mytag2 repo/myimage:mytag3
$ docker push repo/myimage:mytag3

also gives me Image already exists for all layers

I think it's the save/load that's causing problems here. Docker caches hashes of the layers in /var/lib/docker, but without that cache, it has to push each layer from scratch. The cache is not carried along with tarballs produced by docker save. I believe CircleCI wipes the /var/lib/docker directory between runs, so you can't benefit from this cache.
Ideally CircleCI would offer a way to preserve the /var/lib/docker directory instead of relying on the save/load hack. However, it may be possible to work around this by backing up /var/lib/docker/*/checksum (for versions < 1.10) or /var/lib/docker/image/<graph driver>/distribution (for versions >= 1.10).

so assuming I did this right, that doesn't seem to work
I added  /var/lib/docker/image/btrfs/distribution to the cache directory (assuming btrfs is the right graph driver based on "Storage Driver" in docker info) and I still get full pushed T_T

ah. it seems what's going on is that the cache is saved after the dependencies step, which is obviously before deployment (docker push) runs...trying to come up with a good solution here - i'll keep updating the thread for anyone else who runs into this issue but as it's obviously not a docker issue i'll close it

@jtmarmon Did you ever have a good solution here?

For anyone else who ends up here:
There is a "better" solution needed to be implemented on the CircleCI side in terms of the cached dirs and stuff. However one issue is that CircleCI is on 1.8.x. The 1.9.1 upgrade greatly improves buffering for pushes. You can enable 1.9.1, see here: https://discuss.circleci.com/t/docker-1-9-1-is-available/1009.
This improved my buffer/push speed in Circle significantly.


Add GoDaddy to INTHEWILD.md

The use of enzyme is the official recommendation for react testing inside of GoDaddy.

Truth 💯 ... great work @lelandrichardson, @ljharb and everyone else who contributes. 🎉


RFM - uncrustify

Currently have a PR (https://github.com/StevenWolfe/choco-uncrustify/pull/1) with whom I believe to be the current maintainer, but haven't seen any movement.
Need an update or some stable version to be pushed
I can work on it, i just need it opened up

@stephengroat I've also tried to get in contact with the maintainer of this package, with no luck.
If you still want to become the maintainer of the package, just respond here as well as sending of a message to the site admins on the package page.
If you don't want to become the maintainer anymore, I could take over it myself (just let me know if you don't).

i'll maintain. might take me a few tries to get the exact syntax right, but i think there are enough examples floating around i can figure it out.
thanks!

👍
In that case, please send of a message to the site admins so we can get you added as a maintainer.
https://chocolatey.org/packages/uncrustify/0.64-alpha1/ContactAdmins

@stephengroat just wanted to follow up on this to find out what the status of the package is, are you getting anywhere or do you perhaps need some help?

@stephengroat before we close this with 'no update', can you confirm what stage this is at?

No response. Opening this up for maintainers.

Status: In progress

Waiting to be added as maintainer for this package.
Updated version ready to be pushed: https://github.com/chtof/chocolatey-packages/tree/master/automatic/uncrustify

Status: Review

Status: Published

https://www.chocolatey.org/packages/uncrustify/0.68.1

Can be closed.


nghttp2: 1.43.0 -> 1.47.0

Motivation for this change
Update nghttp2 apps and lib.
Refactor of the feature switches as there was some invalid combinations.
{c-ares,libev,openssl,zlib} are all strictly needed if we want to build
the applications but are unnecessary when building the lib alone.
Accordingly the overrides  in fetchurl and pythonPackages.nghttp2
are updated to use enableApp = false as they only want libnghttp2.
fetchurl bootstrapping just got lighter. :)
Also enable the checks whenever possible. To run them we need to set
TZDATA environment variable and the CUnit tool.
Those tests are made optionals as we don't want to scope cunit and
tzdata when bootstrapping fetchurl.
Also install the Bash completions for h2load, nghttp, nghttpd and nghttpx.
Finally, add c0bw3b as maintainer.
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

@ofborg eval

@ofborg test nghttpx

@ofborg build nghttp2
@ofborg test nghttp2

@SuperSandro2000 I will ask you to not edit my messages please.
There is no valid reason for your edits here.
If you want to launch ofborg commands you do that by posting a new comment under your own username.

There is no valid reason for your edits here.

There is. To not send out another mail to the people subscribed to this PR.


Notion title name without brackets

Hi @dvanoni, firstly, thank you so much for building and maintaining this extension, it is a lifesaver!
I've been using this extension, and was wondering if it's possible to have the citation name without the brackets. This would make in-line cross-referencing within Notion cleaner, as brackets can be added whenever needed outside of the link. Moreover, the Notion database would look better without brackets in all the entries, in my opinion.
Since many feature requests ask to modify the title property, a customizable option within the preferences may be beneficial. In the codebase, I see a getInTextCitation variable which can be modified as a possible resolution for this enhancement.
Best,
Darshan

Hi @shahdv, thanks for the feedback!
Can you share a little more about the exact format you'd like to use for the Notion page titles? Is one of the options mentioned here something that would work for you, or are you looking for something else?

I agree that this would be so helpful for in-text citations. The current structure (Author, YEAR) works great if you only have one work to cite and you don't need to provide the page number. But in APA, if you want to cite multiple works or include the page number, then that material needs to go inside the parentheses. For instance, (Author, YEAR, pp. 2-3). If the page title in notion was just Author, YEAR (no parentheses), then it'd be much easier to integrate a variety of in-text citation formats into papers in Notion.
Love Notero, but this would be the biggest improvement for my own writing needs (and perhaps others'). Thanks!

@shahdv @tccorrigan123, I've just pushed a new test build in #14 that now has an "Item Author-Date Citation" option that I hope will meet your needs. Feel free to give it a try and let me know what you think!

@shahdv @tccorrigan123, I've just pushed a new test build in #14 that now has an "Item Author-Date Citation" option that I hope will meet your needs. Feel free to give it a try and let me know what you think!

I tried out v0.4 and it works well! For new items, the beginning and ending parentheses are not added in the title field within Notion. I tried out the other page type options within preferences, and all of them work fine. Thanks for this much-needed update!
Just a couple of follow-up queries:

How do I modify the hundreds of older pages whose titles have parentheses?
Is there an option to revert back to the older format? (I checked the other options, but couldn't find the older format with brackets)

Once again, thank you so much for actively maintaining this extension!

@shahdv, good questions!

How do I modify the hundreds of older pages whose titles have parentheses?

The easiest way to currently modify many pages is to use a temporary tag as described in this section of the readme: How to bulk sync existing items

Is there an option to revert back to the older format? (I checked the other options, but couldn't find the older format with brackets)

It is possible. It requires you to set the "Quick Copy" format to American Psychological Association 7th edition in the Zotero preferences (which unfortunately may not be the format you really want to use). Once you select that format, you can achieve the previous Notion title format (with parentheses) by using the Item In-Text Citation option in the Notero preferences.

Let me know if this helps!

That's perfect! Works like a charm, thanks a ton!


Fullscreened debug builds of projects sometimes freeze temporarily shortly after starting

Godot version
v4.0.3.stable.official [5222a99f5]
System information
Windows 11, Intel i7-9750H, NVIDIA GeForce RTX 2060 (Driver Version 528.79)
Issue description
When the window is set to fullscreen, running a project in the debugger will sometimes freeze for several seconds or more.
Freezes appear to last a minimum of 2 to 15 seconds. After that point, clicking the window will cause it to flicker and then resume functioning normally. Tabbing out of the window and then back in can also unfreeze it, possibly faster than just waiting and clicking. The window will not unfreeze if you don't click or tab out.

The freezes occur a very specific amount of time after the project starts running - almost exactly 0.3 seconds.
Freezes have an estimated 25-30% chance of occurring.
The freeze is not visual-only, all the program logic will stop and then pick up where it left off when the window unfreezes.
The delta parameter of _process does not reflect the freeze. For example, I had a freeze that lasted 20 seconds. There were a handful of frames with high deltas (in the 0.1-0.15 range) but nowhere near 20 seconds.
Exported versions of projects do not appear to be affected.
It's not clear if this applies to all projects.
It's likely windows-only.

Other notes:

Once, while trying to reproduce this bug, my entire system froze and I had to restart with the power button.
While preparing my MRP, I deleted icon.svg. This appeared to fix the freezes (somehow). I also started getting the following error, which may be related to the freezing stopping: load_image: Error opening file 'res://icon.svg'.
I restored icon.svg and deleted it again, and after that I couldn't reproduce the bug even after restoring it again. Definitely seems like it's related somehow.
Exclusive Fullscreen produces the same results.

Edit: Deleting icon.svg in my original project (NOT the MRP) did not fix the issue there (and caused the same load_image error). There are no other svg files in the project, but there are some .png files. May be related to image files in general.
Steps to reproduce

Open the MRP and run it several times, closing if the window doesn't freeze.
Generally within about five tries, the freeze will occur.

Minimal reproduction project
FullscreenFreeze2.zip

I can confirm this. It seems like when run from editor, the display/window/size/mode - Fullscreen is treated as a Exclusive fullscreen. The main window still reports to being Fullscreen (get_window().mode == 3) but that doesn't seem to be the case as setting run/window_placement/rect to Force Fullscreen gets rid of the usual hitches when alt-tabbing. That would also explain why

* Exclusive Fullscreen produces the same results.


Move game logic from window to model

Guts the window class and moves logic to the model class. This adds about 20 tests. Resolves issue #68.

Great game logic improvements! Ran the game smoothly. Tests passed, except test_handle_primary_action_block_hit_is_stone_no_block_removed() (lines 181-186) which was NOT classified as a pass or fail.
Big improvement, thanks for updating!

Good catch, I forgot to rename the function below that one when I copied it.

The test test_handle_primary_action_block_hit_is_brick_block_removed() works perfect now. What was the problem? Is it naming issue?

The test test_handle_primary_action_block_hit_is_brick_block_removed() works perfect now. What was the problem? Is it naming issue?

Yes, there were two functions both named test_handle_primary_action_block_hit_is_stone_no_block_removed, the issue was fixed by naming the second one to test_handle_primary_action_block_hit_is_brick_block_removed


Incorrect test for parallelity in sparse/linalg/_onenormest.py suggests performance improvement

This issue regards latest master, (right now at commit 3c46ac1fcadc0b202c7bebeb88db9ec2fceb653c; that commit is unrelated to this issue), but exists probably since the inception of the function discussed below. This is a minor issue, because the likelihood of it occurring is very slim (but see below). It does however suggest a performance  improvement.
Problem description
I have been studying scipy's implementation of linalg.expm, which is an implementation of Algorithm 2.4 by Higham & Tisseur, and I believe that the test for two vectors being parallel in _onenormest is wrong, specifically this line in the function vectors_are_parallel: https://github.com/scipy/scipy/blob/master/scipy/sparse/linalg/_onenormest.py#L190, which reads:
def vectors_are_parallel(v, w):
    # Columns are considered parallel when they are equal or negative.
    # Entries are required to be in {-1, 1},
    # which guarantees that the magnitudes of the vectors are identical.
    if v.ndim != 1 or v.shape != w.shape:
        raise ValueError('expected conformant vectors with entries in {-1,1}')
    n = v.shape[0]
    return np.dot(v, w) == n

This function assumes that two vectors are parallel if their dot product is equal to their mutual number of rows. This is true if and only if they are vectors filled with +/- 1. Counter example:
x = np.array([1,1,1,1])
y = 0.5 * x
n_rows = x.shape[0] # 4
product = np.dot(x, y) # 0.5 * ||x||
n == product # false

The vectors x and y fulfill the condition of being in the range [-1, 1] and are clearly parallel, since y is a x scaled by 1/2. According to this algorithm, they are not parallel.
Discussion
The reason why this hasn't popped up as an issue yet is twofold:

When initializing the starting matrix X in Algorithm 2.4, on line 392 in the code, the first column has entries 1 / n_rows, while all other entries are sampled from x ~ Uniform(-1, +1). The likelihood of two columns having exactly the same entries (up to the last bit in 64 bit floating point) is extremely slim, but not zero (but can be treated as 0 for all intents and purposes).
When calculating the sign matrix and then checking for parallelity of its column, steps and (2) and (3) in Algorithm 2.4, or Lines 423 to 434, the sign matrix is indeed at first only populated with +/- 1, so the check would yield n_rows if two columns are parallel. When repopulating a parallel column though the same holds as in 1): there is a extremely small but non-zero chance that one can get two randomly generated columns, where one is an exact multiple of the other.

Possible steps

Leave the check as it is. The probability of a random number generator creating two columns where all corresponding elements are the exact same multiple of each other is almost zero (in particular for large matrices).
Change the check for parallelity: the entries of the vector u = v / w (where / is element-wise division) have to be all the same (considering we are also dealing with floating point precision, this seems very unlikely to actually ever work).

Performance improvement
If one chooses to leave everything as is, running vectors_are_parallel on randomly generated columns becomes redundant, because even if two parallel vectors would by chance be generated, the function wouldn't yield a correct result anyways. In particular, one can:

Remove https://github.com/scipy/scipy/blob/master/scipy/sparse/linalg/_onenormest.py#L393-L396
Change https://github.com/scipy/scipy/blob/master/scipy/sparse/linalg/_onenormest.py#L432-L434, so that only those columns are checked for parallelity, which are freshly calculated in https://github.com/scipy/scipy/blob/master/scipy/sparse/linalg/_onenormest.py#L283 and not yet resampled (in case they are found to be parallel to another column). All columns in S and S_old which have been randomly generated need neither be tested nor tested against. This requires keeping track of those column indices which have been resampled.

@SuperFluffy now that you understand this potential problem, is it possible for you to construct an example that does show the issue? And when I say example, I mean using a function that's in the public API of sparse.linalg (because vectors_are_parallel itself is not public).


add nix config snippet to restart sops-nix service

As home-manager does not restart the sops-nix unit automatically a snippet to instruct home-manager to do so is added.
Home-manager could be instructed to restart the user service from the sops-nix home-manager module instead. Usually home-manager restarts units which changed. Since the sops-nix unit does not change when secrets change this does not trigger automatically.
There are two options:

let sops-nix home-manager module compute a chained hash over all secrets and place it inside the unit file, so it changes every time the secrets change
use X-SwitchMethod and X-Restart-Triggers See nix-community/home-manager#3865

@mergify queue


Reduce election time

I try to reduce raft election time，After I modified the heartbeat timeout, I found that.
under low tps ，Election time is very fast, about 2s。but in high tps ，Election time is slow。
I looked at the code and found that time wasted in ，
messageStore.dispatchBehindBytes() == 0
This is waiting for the construction of the logical queue，Will it make a difference if I don't wait, is it necessary?
@Override public void handle(long term, MemberState.Role role) {
    Runnable runnable = new Runnable() {
        @Override public void run() {
            long start = System.currentTimeMillis();
            try {
                boolean succ = true;
                log.info("Begin handling broker role change term={} role={} currStoreRole={}", term, role, messageStore.getMessageStoreConfig().getBrokerRole());
                switch (role) {
                    case CANDIDATE:
                        if (messageStore.getMessageStoreConfig().getBrokerRole() != BrokerRole.SLAVE) {
                            brokerController.changeToSlave(dLedgerCommitLog.getId());
                        }
                        break;
                    case FOLLOWER:
                        brokerController.changeToSlave(dLedgerCommitLog.getId());
                        break;
                    case LEADER:
                        while (true) {
                            if (!dLegerServer.getMemberState().isLeader()) {
                                succ = false;
                                break;
                            }
                            if (dLegerServer.getdLedgerStore().getLedgerEndIndex() == -1) {
                                break;
                            }
                            if (dLegerServer.getdLedgerStore().getLedgerEndIndex() == dLegerServer.getdLedgerStore().getCommittedIndex()
                            ) {
                                //&& messageStore.dispatchBehindBytes() == 0) { // is this necessary？
                                break;
                            }
                            Thread.sleep(100);
                        }
                        if (succ) {
                            messageStore.recoverTopicQueueTable();
                            brokerController.changeToMaster(BrokerRole.SYNC_MASTER);
                        }
                        break;
                    default:
                        break;
                }
                log.info("Finish handling broker role change succ={} term={} role={} currStoreRole={} cost={}", succ, term, role, messageStore.getMessageStoreConfig().getBrokerRole(), DLedgerUtils.elapsed(start));
            } catch (Throwable t) {
                log.info("[MONITOR]Failed handling broker role change term={} role={} currStoreRole={} cost={}", term, role, messageStore.getMessageStoreConfig().getBrokerRole(), DLedgerUtils.elapsed(start), t);
            }
        }
    };
    executorService.submit(runnable);
}

in DLedgerRoleChangeHandler 77

This is how I understand it. If a slave node is elected as a master, the consumerqueue position is smaller than the previous master node, which may bring some consistency problems, such as "repeatable read"

I am not mean "repeated consumption", but "repeatable read". For example, if a user consumes a message with offset of 2, and then the maximum offset is 1 after the active/standby switchover, at this time, the message with offset of 2 will be inconsistently pulled.

I am not mean "repeated consumption", but "repeatable read". For example, if a user consumes a message with offset of 2, and then the maximum offset is 1 after the active/standby switchover, at this time, the message with offset of 2 will be inconsistently pulled.

The ultimate effect is repeated consumption ，Is that right？

The key point is that it may lead to consistency problems, not repeated consumption. Repeated consumption is allowed in rocketmq

例如对于 raft 的 leader transfer
oldLeader 必须等待 newLeader 追上自己, 才能实现 leader 的切换, 否则的日志会出现丢失的情况
例如:
oldLeader: 1 2 3 4 5 6
newLeader: 1 2 3 4
如果直接实现 NewLeader 切换, 那么 5 6 两条消息就会丢失, 即使其他的 follower 包含 5 和 6 的消息, 也会被迫和 newLeader 保持一致

例如对于 raft 的 leader transfer oldLeader 必须等待 newLeader 追上自己, 才能实现 leader 的切换, 否则的日志会出现丢失的情况 例如: oldLeader: 1 2 3 4 5 6 newLeader: 1 2 3 4 如果直接实现 NewLeader 切换, 那么 5 6 两条消息就会丢失, 即使其他的 follower 包含 5 和 6 的消息, 也会被迫和 newLeader 保持一致

并不是raft 日志，raft 日志由raft协议来保障了，我提出的是raft选举结束后到上报nameserver之间的一个环节，等待逻辑队列构建（consmerqueue ）的延迟变成0

If the new leader has a smaller offset of the queue, it causes an "out of range" problem, which will make the client reset the consumed offsets to the earliest  or the latest.

If the new leader has a smaller offset of the queue, it causes an "out of range" problem, which will make the client reset the consumed offsets to the earliest or the latest.

This may be @Cczzzz repeated consumption. If it will only lead to repeated consumption, it may be possible to sacrifice this part slightly. For example, the waiting time-out for building CQ is 30s

If the new leader has a smaller offset of the queue, it causes an "out of range" problem, which will make the client reset the consumed offsets to the earliest or the latest.

This may be @Cczzzz repeated consumption. If it will only lead to repeated consumption, it may be possible to sacrifice this part slightly. For example, the waiting time-out for building CQ is 30s

I want to keep the election time as short as possible, is it okay to skip this part

@Cczzzz Out of range is a serious problem, it will cause abnormal repetition from the min offset.
So it is not ok to skip it.
The better way is to improve the dispatch performance.
In fact, the 5.0 will use multi-threads to do the dispatch, which will gain much performance.

@Cczzzz Out of range is a serious problem, it will cause abnormal repetition from the min offset.
So it is not ok to skip it.
The better way is to improve the dispatch performance.
In fact, the 5.0 will use multi-threads to do the dispatch, which will gain much performance.

It will appear that the offset submitted by the client is greater than the consmequeue max offset ？so broker think it's illegal，starter from min offset.


Some fixes for minfi tools.

Was still not able to run bumphunter with provided test data and default form values, but we it is much closer.
The provided test data is quite large.
Also, I still really think that using loadRDS/saveRDS over load/save is a far better way of doing things and providing for cross compatibility between tools.

ping @nitesh1989


bugfix in swapprime!

Previously swapprime mapped pl1 -> pl2, but did not map pl2 -> pl1 (essentially duplicating mapprime). This commit changes swapprime so it maps pl1 -> pl2, pl2 -> pl1. It also
- uses mapprime rather than duplicating code.
- changes the API (single match rather than varargs, for convenience---so we can call mapprime---and consistency with mapprime.

Thanks for catching this and fixing it!

It looks like some of the tests are failing now (ones related to swapprime, which was clearly wrong before, so maybe the tests themselves are wrong).

Well, some of them are and some of them aren't: e.g. the test on line is wrong, but the test on line 111 is not---that ought to work as is.
I'll poke around.

So two things were going on here:
- the test on line 111 hit an edge case in my code---test was right, code was wrong.
- Most of the rest of the tests were wrong: they were written assuming swapprime! worked exactly like mapprime!. (Which may be what you folks intended, I don't know, but seems a little strange.)
I've updated the code to deal with the edge case 111 hit, and updated the rest of the tests to reflect the desired behavior.
I also added a couple more that more that more directly probed swaps of tagged indices.

Codecov Report

Merging #119 into master will decrease coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #119      +/-   ##
==========================================
- Coverage   91.55%   91.55%   -0.01%
==========================================
  Files          28       28
  Lines        2689     2688       -1
==========================================
- Hits         2462     2461       -1
  Misses        227      227

Impacted Files
Coverage Δ

src/ITensors.jl
100% <ø> (ø)
:arrow_up:

src/indexset.jl
94.11% <100%> (-0.48%)
:arrow_down:

src/decomp.jl
100% <0%> (+0.85%)
:arrow_up:

Continue to review full report at Codecov.

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

Great: thanks for catching this. Many of those tests were in error - you're right.
I think it's ready to pull. I wasn't 100% sure which convention we were deciding on for the optional arguments, but most of the functions in indexset.jl use match=nothing so I think it's good for swapprime to be consistent with that, yes.


changed global_variables_initializer line

Changed global_variables_initializer to initialize_all_variables on master.

Can one of the admins verify this patch?

I signed it!

@Goddard  global_variables_initializer is the new API in latest TF, why to change it back then ? I guess initialize_all_variables probably to be deprecated soon.

@Goddard , I ditto what @zuoxingdong said. If I'm missing anything, please let me know and we can re-open this PR.


Initializing query objects

hi,
I was able to initialize a querystring like this:

QueryContainer qry1 =new QueryStringQuery
                {
                    DefaultField = "content",
                    Query  = @"b"
                };

but i am unable to do it with FilteredQuery or range query
thank you

You would initialize them in the same manner...
QueryContainer filtered = new FilteredQuery
{
	Query = new QueryContainer(new MatchQuery(...)),
	Filter = new FilterContainer(...)
};

QueryContainer range = new RangeQuery
{
	GreaterThan = ...
};

Hopefully that clears things up?

@shoushouleb closing this for now.  Feel free to re-open you still need help.

Thank you, It worked.


Upgrade convention plugin to 0.10.1

To fix https://github.com/gradle/gradle-org-conventions-plugin/issues/28

The merge queue build has failed. Click here to see all failures.


move, not copy, getusermedia to separate file.

Description
Remove duplicate firefoxShim.shimGetUserMedia.
Purpose
Less code, and the duplicate was confusing people.

I wonder why I hadn't spotted this before ;). Thanks for this. LGTM.


[feat]  ready for development

Description
For PFE 2.0 to utilize the authentication state we need a component that will broker the login/logout process.  One exists in Product Trials currently.  Mike is exploring what it would look like to move that functionality into an “rh-auth” web component.
Example: https://heymp-product-trial-main.surge.sh/
Demo (click the login link in the nav): https://gitlab.corp.redhat.com/uxdd/rh-product-trial/-/blob/main/demo/index.html#L56-60
Acceptance Criteria

[ ] Design done
[ ] Development done

Image
No response
Link to design doc
No response
Other resources
No response

@heyMP where are we on this? Should we close this?


Add Keyboard chip and Tri-state buffer chip

Credit to @megarcher for everything in this PR, including making the tri-state buffer and fixing tri-state wires.
Credit to @UkrainianBanderasCat for the Keyboard chip.
Ref #71 (might not close entirely because buses don't work yet, @megarcher correct me if I'm wrong)

Closed as covered by #73


Can't import the egg

The Error only comes when i want to import this egg and if you need more screenshots and infos about my server system just ask.


Connection demo app: Verify Your Account modal

Appears when there is an eth.personal.sign prompt in MetaMask. Should show public address user’s eth address. Should show network indicator. If user cancels from MetaMask prompt, go to Connection Cancelled During Verification Modal. Should recommend specific verbiage for the MetaMask prompt. When successful, show toast with truncated user address.

[ ] PublicAddress
[ ] Trigger success toast message
[ ] Tests

Resolved by: https://github.com/ConsenSys/rimble-app-demo/issues/19


Full gpt transcripts logged

This is a little redundant because the user interactions and LLM responses are logged elsewhere but:

Going forward I don't think we should assume we can reconstruct the conversational state from user interactions and LLM responses. We may add features like summarization of code edits to save tokens or not send user requests verbatim (this already happens to some extent with special tokens like q.
It seems like a nice QoL feature to log the transcripts in the exact format needed for interaction with OpenAI apis.

Nice, makes sense to have a verbatim log instead of having to try to piece things together.
Is there a reason people would want to turn this off / not turn it on? Maybe we don't need an option

Nice, makes sense to have a verbatim log instead of having to try to piece things together.
Is there a reason people would want to turn this off / not turn it on? Maybe we don't need an option

I was thinking the transcripts would grow quadratically and it'd maybe be better to not include them by default but I guess they grow quadratically in number of conversational steps which should be pretty small. I think you're right there's no need to have this off by default so there's no need to have the setting.


maybe fixed plank make, works on my end.

foldered the scripts I changed.

Please make a PR to development instead of main.


Modify the ambari-server and ambari-agent

cbd version 1.3.0
centos: 7
deploying to DC/OS Marathon
I need to create or modify the ambar-server and agent models used by cloudbreak to get out of http_proxy hell as well as different tools I need to add to the container.
default_images:
hortonworks/ambari-server:2.2.1-v20
hortonworks/ambari-agent:2.2.1-v20
Id like to replace them with
internal-repo.myco.com/dev/ambari-server:2.2.1-local
internal-repo.myco.com/dev/ambari-agent:2.2.1-local
How do I tell cloudbreak to use the my mod'd containers? I've tried both the CB_DOCKER_CONTAINER_AMBARI and CB_DOCKER_CONTAINER_AMBARI_WARM vars and doesnt seem to change anything
Thanks in Advance,
@jsfeutz

Duplicated https://github.com/sequenceiq/cloudbreak/issues/1718


⚠ Bofrost.be has degraded performance

In 438ee3b, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1081 ms

Resolved: Bofrost.be performance has improved in 9b9ea9c.


Workflow auto starts after first push

im using back fill graph action. after the fist commit the workflow starts and then ends successfully but after an interval it starts again and then again , it keeps on committing
im using this code below
` on: push
jobs:
backfill-commits:
runs-on: ubuntu-latest
steps:
- uses: bcanseco/github-contribution-graph-action@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GIT_EMAIL<EMAIL_ADDRESS># replace me
MAX_DAYS: 365
MIN_COMMITS_PER_DAY: 1
MAX_COMMITS_PER_DAY: 5
`

hey Saad, not sure what's going wrong here. Any chance you could post your full .yml file(s) or link one of the actions runs that keep going?

Thanks for your reply buddy.
I really dont know what the problem was. I deleted the repo and then created a new one with the same steps. now its working fine .


Make download headers customizable

Requirements
Please take note of our contributing guidelines: ~~https://laravel-excel-docs.dev/docs/3.0/getting-started/contributing~~ https://docs.laravel-excel.com/3.1/getting-started/contributing.html
Filling out the template is required. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion.
Mark the following tasks as done:

[x] Checked the codebase to ensure that your feature doesn't already exist.
[x] Checked the pull requests to ensure that another person hasn't already submitted the feature or fix.
[ ] Adjusted the Documentation. <- will be done as soon as you signal to merge the pull request
[x] Added tests to ensure against regression.

Description of the Change
Before, CSV downloads would be sent with a mime type of 'text/plain'.
This made Firefox propose to open the file with a text editor instead of LibreOffice / Excel.
This change allows to send custom headers, including ['Content-Type' => 'text/csv'], to fix this pragmatically.
Why Should This Be Added?

I think, serving csv as text/plain instead of text/csv is a problem, it's most likely a common stake holder request to change the mime type
It's hard to find an alternative workaround (requires some digging)
The workaround without this fix would be a bit longwinded:

	$response = Excel::download(
            new MyExport($data), "{$filename}.csv",
            \Maatwebsite\Excel\Excel::CSV
        );

	// send the correct mime type
        $response->headers->set('Content-Type', 'text/csv');

        return $response;

With this fix:
	return Excel::download(
	    new MyExport($data), "{$filename}.csv",
            \Maatwebsite\Excel\Excel::CSV,
	    ['Content-Type' => 'text/csv']
        );

Benefits
Shorter code, no need to find a workaround. Will be documented.
Possible Drawbacks
Doesn't break the API. Doesn't change behavior.  Custom headers are optional.
Adding another optional parameter might make the API more complex than it needs to be. Maintaining the API with another optional parameter might be harder.
Verification Process
What process did you follow to verify that your change has the desired effects?

How did you verify that all new functionality works as expected?
How did you verify that all changed functionality works as expected?

Tests.

How did you verify that the change has not introduced any regressions?

Running all existing tests.
Applicable Issues
none, afaik.

@tpraxl thanks for your contribution. I'm fine with adding this. Can you PR the docs?

@patrickbrouwers Great. Documentation PR is done: https://github.com/Maatwebsite/laravel-excel-docs/pull/54

@tpraxl even though I don't mind having the headers param, I'm thinking that we maybe can always add the correct content-type when downloading. So based on the writer type add the correct content-type to the headers. Would you be willing to adjust your PR to add that?

@patrickbrouwers I originally thought about it when I dug into the code and avoided it for these reasons:

That would be more like a breaking change for those who actually do want to download csv files as text/plain
Also, there seem to be multiple valid / common options for the csv mime type
Setting the mime type dependent on the $writerType might get a bit messy
What about TSV and the other formats – might raise discussions that block the simple solution

My proposal:

Please merge this PR, so that we are able to easily workaround the issue. The docs now have helpful hints next to the CSV download example.
Maybe I'll look into it and create a 2nd PR for the new default mime type. But that should be a breaking change for the next major version.

Just a warning: I might not find the time or may become distracted from writing the 2nd PR. Actually, I'm pretty sure, I won't create it, because of focus shift.


[WFCORE-4760] Add release versions for WF 16-18

https://issues.jboss.org/browse/WFCORE-4760

@bstansberry thanks


Show something useful when failing to ssh into a project/environment

lagoon ssh -p education-sa -e master
panic: Failed to dial: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
goroutine 1 [running]:
github.com/amazeeio/lagoon-cli/lagoon/ssh.InteractiveSSH(0xc000141b80, 0x0, 0x0, 0x0, 0x0, 0xc000141bb0)
	/go/src/github.com/amazeeio/lagoon-cli/lagoon/ssh/main.go:17 +0x90a
github.com/amazeeio/lagoon-cli/cmd.glob..func48(0x1a6b280, 0xc0000def80, 0x0, 0x4)
	/go/src/github.com/amazeeio/lagoon-cli/cmd/ssh.go:58 +0x76b
github.com/spf13/cobra.(*Command).execute(0x1a6b280, 0xc0000deec0, 0x4, 0x4, 0x1a6b280, 0xc0000deec0)
	/go/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:830 +0x2ae
github.com/spf13/cobra.(*Command).ExecuteC(0x1a6ab00, 0x0, 0x0, 0x14d0b23)
	/go/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:914 +0x2fc
github.com/spf13/cobra.(*Command).Execute(...)
	/go/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:864
github.com/amazeeio/lagoon-cli/cmd.Execute()
	/go/src/github.com/amazeeio/lagoon-cli/cmd/root.go:61 +0x42
main.main()
	/go/src/github.com/amazeeio/lagoon-cli/main.go:8 +0x20

It was that the project name was incorrect after all, but the above errors lead me to believe that there was something wrong with the authentication. It could be somethings like "no such project" or "no such environment" (suggestions of close matches would be a plus 🙂😉)

Thanks @klonos will look into this. Agree the panic is a bit excessive 😆

Yup, as per discussions over Slack, something like Check that the project or environment you are trying to connect to exists might be best.


[♻ refactor] Use Postgres full text search for mentions (and maybe comment/title queries)

What is the reason to do this refactor ?
The mention query really slow down the app when used as a search query, it goes up to 800ms for a simple query, while other typical queries only take up to 30ms. this is bad, especially if we want to handle much more queries.
Describe the work that needs to be done

[ ] Add a new column for body & comment search and use vector search
[ ] Explore if it is possible to do the same thing with the in:body|comments filters to search with vectors instead of a simple ilike. For the title, there is already an index.

Additional context

 From ChatGPT help :
Using PostgreSQL's full-text search (FTS) is a good way to improve the performance of text-based searches, including mentions. Here's a guide on how you could modify your tables and queries to leverage FTS for searching mentions:

Add Text Search Vector Columns:
Add a tsvector column to the tables where you want to search for mentions. This column will store tokenized versions of your text.
ALTER TABLE issue ADD COLUMN body_search_vector tsvector;
ALTER TABLE comment ADD COLUMN content_search_vector tsvector;

Update Existing Rows:
Use the to_tsvector function to update the new tsvector columns:
UPDATE issue SET body_search_vector = to_tsvector('english', body);
UPDATE comment SET content_search_vector = to_tsvector('english', content);

Note: 'english' is the text configuration which determines how the text is tokenized. You can choose the one most appropriate for your data.

Indexes:
Create indexes on the tsvector columns to speed up full-text search queries:
CREATE INDEX idx_issue_body_search_vector ON issue USING gin(body_search_vector);
CREATE INDEX idx_comment_content_search_vector ON comment USING gin(content_search_vector);

Modify Queries:
When searching for mentions, use the @@ operator:
SELECT * FROM issue WHERE body_search_vector @@ to_tsquery('english', '@<username>');
SELECT * FROM comment WHERE content_search_vector @@ to_tsquery('english', '@<username>');

Remember, for mentions, the standard FTS might tokenize the '@' symbol away, so you might still need to combine this approach with LIKE/ILIKE for optimal performance.

Keep the tsvector Columns Updated:
If you insert or update rows in the issue or comment tables, make sure to also update the tsvector columns. You can do this using triggers in PostgreSQL which automatically update the tsvector columns when the body or content columns change.

Consider Using a Dedicated Text Search Extension: If you have very specific needs or require more flexibility, consider using an extension like pg_trgm with GIN or GiST indexes which can provide trigram-based search capabilities.

Always make sure to run performance tests to ensure that the new setup meets your performance expectations.

No needed


YouTube More Videos

Is there a way to turn off the "More Videos" in the youtube video when you stop the video in the Lightbox? Thank you.

Have you tried to add ?rel=0 at the end of the link of your video ?


chore(Accordion): generate default ids only once

Fixes https://github.com/stardust-ui/react/issues/1369

Warnings

:warning:
There are no updates provided to CHANGELOG. Ensure there are no publicly visible changes introduced by this PR.

  Generated by :no_entry_sign: dangerJS


Shift to inclusive engineering language

Please change whitelist to a more inclusive term like AllowList.
Due to the world wide push for the use of inclusive engineering language I have changed almost all instance of whitelist to allowList within my project. One instance of non-inclusive engineering language that I could not change comes from this library.
Please let me know if you would like me to make a PR for this. I didn't yet because I thought this would take coordination (potentially a major version change).

Already covered by other stories.


Allow the settings for commissions

From environment variable

done

they should move to the server side to be loaded from a couple of variables.

done, documentation updated.


Create LICENSE.md

The license file was missing in the main and 0.2.2 release causing the Windows version to fail.

I see that GitHub doesn't recognize the license file if it's Markdown formatted. Maybe I'll have to redo it with unstyled plain text so that it will work as LICENSE instead of LICENSE.md .


Update db-migration.sh

Closes #
📑 Description

✅ Checks

[x] My pull request adheres to the code style of this project
[x] My code requires changes to the documentation
[x] I have updated the documentation as required
[x] All the tests have passed

☢ Does this introduce a breaking change?

[ ] Yes
[x] No

ℹ Additional Information

Description by Korbit AI
What change is being made?
Remove the conditional warning for the production environment in db-migration.sh and update error handling to properly escape error messages before outputting them.
Why are these changes being made?
Removing the environment condition ensures warnings for missing schema version tables appear consistently across environments, aiding troubleshooting. The enhancement to error handling by escaping special characters allows for error messages to be properly formatted and readable in GitHub output logs, improving the debugging process.

Is this description stale? Ask me to generate a new description by commenting /korbit-generate-pr-description

Summary by CodeRabbit

Bug Fixes

Improved error handling for MySQL execution, ensuring error messages are properly formatted for output.
Simplified schema version table existence checks, providing consistent warning messages across environments.

Chores

Updated output management for error reporting, enhancing clarity for downstream processes.

@gstraccini codacy bypass


Issues when trying different loss functions

Hello!
Issue 1: Softmax
The first time when I tried to run the model with Softmax loss, I got the following error message:
File "softmax.py", line 24, in forward
    nloss   = self.criterion(x,label)
ValueError: Expected target size (100, 100), got torch.Size([100])

In the code the problem appeared to be in the areas inside a red box:

As it can be noticed from the comments in the above screenshot, x originally is of size (100, 10, 512), after going through an FC layer its size changes to (100, 10, 100), and then it is passed straight to torch.nn.CrossEntropyLoss() function. However, according to the official PyTorch documentation, this function requires the x to be of size (100, 100).
I have come up with a possible solution and was wondering whether the solution is reasonable and does not have any side effects on the model performance. The solution was to introduce additional transformations that will reduce (100, 10, 100) to (100, 100). It was done with the help of torch.mean(x, dim = 1, keepdim=False). As far as I know, such a method is legal in neural networks, more about the method can be found here.
So, the adjusted code looks like this:

In this way, the model with Softmax loss now runs and works perfectly fine. What do you think about this solution?

Issue 2: Amsoftmax, AAmsoftmax
The same issue as with Softmax loss was also detected while using Amsoftmax and AAmsoftmax losses. These errors were resolved in the same manner. Below are the adjusted codes:
a) Amsoftmax

b) AAmsoftmax

Issue 3: Triplet
The second issue that I encountered was involving the Triplet Loss. There were two main errors with that:
Error 1:
File "/home/sania_abushakimova/sf_pv/loss/triplet.py", line 26, in forward
    assert x.size()[1] == 2
AssertionError

From the above message, it seems that in the code the error comes from the part highlighted in a red box.

After analyzing other metric-based losses, I came to a conclusion that == sign must be replaced to >=. Please correct me if my assumption was incorrect. (The error was resolved though)
Here are the screenshots from other losses that contain the same assert statement.
a) Proto

b) AngleProto

c) Ge2e

Error 2:
File "SpeakerNet.py", line 112, in train_network
    top1    += prec1.detach().cpu().item();
AttributeError: 'numpy.float64' object has no attribute 'detach'

This problem was caused due to prec1 for some reason being a numpy array instead of a tensor.
Below is one piece from SpeakerNet.py:

In order to solve this problem, I manually converted prec1 to numpy array with the help of torch.tensor(prec1). It eventually did solve the problem, but I was wondering whether it was a legal solution.

Looking forward to your kind response, it will help me a lot with my research project!

Resolved

Excuse me, what is the result of using angleproto loss function? I got eer=2.6 minDCF=0.2. Is this normal? Does it belong to self-supervised learning method or supervised learning method?

Hi, @SaniyaAbushakimova did you find any discrepancy in results with this mean approach to avoid the assertion error?


Added Drizzle to README.md

✨ Codu Pull Request 💻
Fixes #1033

Pull Request details

Added Drizzle link to README.dm

Hey @leslyclopez11! Thanks for this. Would you update the PR template? You'll see that it has Fixes #(issue), which should take the issue number that you took (1030). Also just adding some PR details like in the template.
You can delete the Any Breaking changes and Associated Screenshots sections as they aren't needed for this PR.

Hey @leslyclopez11,
Thanks for this PR. You are almost there with your first contribution. 🥳
Can you please edit the PR to fill in the details Niall suggested. It may seem kind of pointless, but documentation provides clarity and and forms the foundation of any great project.

@John-Paul-Larkin @NiallJoeMaher sorry for taking so long to answer! I updated the PR details. Let me know if there is anything else I have to do!

🥳
Congrats on your first PR leslyclopez11.
PS Do you have a Linkedin profile you can share?

Omg, thank you so much! Yes, this is my LinkedIn: https://www.linkedin.com/in/lesly-catota-lopez-9a5110256


Propose moving mfem repo to llnl organization

Hi @tzanio --  I'd like to propose moving the MFEM organization into the LLNL organization. I can create an mfem team for you there to duplicate the mfem organization access.
Additionally, GitHub will handle page redirects from the old organization to the new if we do it as a transfer of the repositories.
Thoughts? Concerns?

Moving this discussion to internal email.


 It also implements sorting on the api side to allow for joint filter and sorted requests, and paves the way for pagination in a future update.
How is this addressed

Added new UI into the table display to present a filter and sort context menu
Added filtering logic to api calls
Re-modelled the state management in the component and api calls on filter/sort changes
Added request sorting to the API
Updated changelog

/test

Skipping tests as previous tests ran successfully before small md change went into main requiring merge
/test-force-approve

/test-force-approve


hello symboo

this is my first time to use git ,its just a test ,thanks

sorry, fixed typo. please check!

thank you for fixing!


7 - Update README file with initial changes

Added description with comparison image
Added features, preview gif and installation instructions

LGTM. make sure to squash first though.


[ISSUE-607]Add map ids info for each PartitionLocation to enable filtering for m…

…ap range reading
[FEATURE]Add map ids info for each PartitionLocation to enable filtering for m…
What changes were proposed in this pull request?
Why are the changes needed?

What are the items that need reviewer attention?
Related issues.
closes #607
Related pull requests.
How was this patch tested?
/cc @related-reviewer
/assign @main-reviewer

We should add metrics about the size of the RoaringBitmap for very large partitions and post here.


Update README.md

Summary & motivation
Update README: fix demo server URL + small note about demoing PaymentRequestButtonElement

Thanks for following up on the issue! :)
:+1:


Add Azure Container Registry helper for docker credentials using hamilton

Hi!
I am currently trying to get cosign to work with Azure Container Registry: https://github.com/sigstore/cosign/issues/1350
It is using the following project to get the token for ACR: https://github.com/chrismellard/docker-credential-acr-env
I would like to include a similar helper in hamilton that will be using hamilton instead of autorest.

As a reference I've started the discussion in go-containerregistry to move them to hamilton and they seem to like the idea: https://github.com/google/go-containerregistry/issues/1263
I think I'll rewrite the PR to not be a helper based on the docker interface but instead be a plain Exchange() function that takes an authorizer.
@manicminer any thoughts or ideas? 😊


Added the bitwise calculator!

Description
Added the bitwise calculator with functionality XOR, NOR, AND, OR, NAND, NOR
I have also added the Left shift and right shift operator function (not mentioned in the issue)
Fixes:  #912

Type of change

[x] New feature (non-breaking change which adds functionality)

Checklist:

[x] I have made this from my own
[x] I have taken help from some online resourses
[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings

ATTACH SCREEN-SHOTS / DEPLOYMENT LINK

I have also added the Left shift and right shift operator function (not mentioned in the issue)
Thank you :))


[Task]: Codegen optimization for Ballerina

Description
The final executable jar generated by the Ballerina compiler contains unused components. For example when we import a ballerina library, all the functions of that library are packed into the executable jar (regardless of their actual usages). This contributes to a significant increase in executable jar file size. An optimized jar can be beneficial in situations such a GraalVM native image generation. An optimized jar could reduce the GraalVM generation time and could contribute to the size reduction of the native executable.
Describe your task(s)

Eliminating unused Ballerina functions and type definitions with BIR level optimizations.
Eliminating unused Java native classes with bytecode level optimizations.

Related area
-> Compilation
Related issue(s) (optional)
No response
Suggested label(s) (optional)
No response
Suggested assignee(s) (optional)
@Thushara-Piyasekara

For BIR level optimizations 4 approaches were tried out,

Analyzing the AST and deletion through ASM.
Analyzing the BIR and deletion through ASM.
Analyzing the BIR and generating the optimized thin jars from scratch.
Analyzing only the used nodes and generating the optimized thin jars from scratch.

The 4th approach was chosen as the final approach. Following are brief explanations of each of these approaches.

Analyzing the AST and deletion through ASM
As the first approach, BLangPackage(AST) was analyzed and BlangInvocation nodes were divided into “USED” and “UNUSED”. This was done through creating a dependency tree of function invocations with “init” and “main” functions as the root nodes. All the subgraphs that were not connected to the root nodes were considered “UNUSED”.
Unused functions were later deleted from the thin JARs using an ASM method visitor.
Compared to BIR, the complexity of AST was high due to having a higher number of node kinds. Furthermore, it was not possible to track generated methods later introduced in the desuger phase. Due to these reasons we had to move the analyzer to the BIR phase.

Analyzing the BIR and deletion through ASM
Since the BIR phase is after the desugar phase, it is possible to analyze the generated functions as well. We had to write a BIR visitor that analyzed “BIRTerminator.Call” instructions to find the unused functions. Also it was possible to extend the analyzer to detect unused TypeDefinitions.
But a blocker was encountered when deleting the unused TypeDefinitions. The process for deleting the bytecode related to TypeDefinitions was complex compared to the deletion of functions. If we were to delete TypeDefinitions from the bytecode, it required deleting multiple instructions from different functions. Even if such an algorithm were to be implemented, it is inclined to break from future modifications to the codegen phase. Which would be hard to maintain. Therefore we had to resort to generating an optimized thin jar from scratch for each compilation.

Analyzing the BIR and generating the optimized thin jars from scratch
It was possible to generate optimized thin jars by cleaning up the unused function nodes and type definition nodes. Then by feeding that optimized BIR Pkg to the codegen phase we were able to retrieve an optimized thin jar for the respective pkg. Optimized thin jar was not written to the file system because it is finetuned only for that compilation. Instead it was persisted in memory and fed for the fat jar generation phase. This approach was working without any major drawbacks. But further optimizations for the algorithm were possible.

Analyzing only the used nodes and generating the optimized thin jars from scratch
All previous optimizers were located inside “CompilerPhaseRunnner” class. One of the drawbacks of being limited to that class was having to analyze the root pkg last. Since the topological order of the pkg queue was ascending from dependencies, it was not possible to analyze the root pkg first. Because we could not analyze the root pkg first we had to analyze all functions of other pkgs. It was inefficient because even though we analyzed all function dependencies, only the dependencies of root nodes were needed.
Therefore, we decided to move out of the “CompilerPhaseRunner” and analyze only the paths connected to the root node. This required major restructuring of the existing algorithm. But resulted in a more efficient algorithm.

Optimizing Native Dependencies
At compiler level only the ballerina source code could be analyzed. It was not possible to detect unused constructs of java library dependencies. Therefore we had to use a bytecode optimizer to optimize these dependencies. The chosen bytecode optimizer was written by a previous intern using the ASM library. We had to refactor it to support JDK 17 constructs and reduce the time consumption.\

22/01/2024 Update

Connected the native dependency optimizer to the compiler. Now the optimized fat jar is outputted by default into the target folder.
Having trouble with keeping the original fat jar in memory. As a temporarily workaround had to write and read from file system. Working on finding a cleaner way.
Working on triggering the optimizer only when bal build --optimize is entered.

GraalVM native executable comparison :- https://docs.google.com/document/d/1R0VTjlMSSCSSjTXWfJ5eK-ISKU5NDxWK2XHpQOebcWY/edit?usp=sharing

12/02/2024 Update

Happy path for bal build --optimize flag is working. Will have to improve the implementation later.
Added whitelisting for native classes that are accessed using Java Reflection API. Did it using json configs used by GraalVM.
Whitelisted a class directory that used sun.misc.Unsafe in netty library. Will have to find a proper way to whitelist them dynamically.
Working on cleaning the code.

19/02/2024 Update

Started testing the implementation by compiling nballerina compiler.
Found a bug related to BTypeSymbol PackageIDs being incorrect (Sent a PR fixing the issue. Have to add test cases).
Fixed a bug when there are multiple reference types for the same parent type.
Started research on a way to test the codegen optimizer. (Looked into batch scripts and makefiles).
Optimized nballerina compiler is not working as expected (Have to look into it).

26/02/2024

Optimized version of the nballerina compiler is working and passed all the nballerina unit tests.
Added test cases for #42171.
Sent PR for #42207 (Have to work on fixing the review suggestions).
Fixed a bug related to the analyzer not detecting function pointer references inside record fields.
Continued research on a way to test the codegen optimizer (Will start implementing soon).

11/03/2024

Implemented the initial version of bal test --optimize command to test the BIR optimization. (Had to whitelist the test suit functions by marking them as root nodes).
Had trouble making the analyzer work with the testable BIRPackages becasue they used the same PackageID as their parent BIRPackage.
Found out another intern from projectAPI team is working on generating testable fat JARs. Planned to wait for his implementation to get a testable fat JAR to test the NativeDependencyOptimizer.
Found a loophole in the current bal test --optimize implementation which could lead to false positive test results. Had a discussion with @hasithaa and decided to research on an alternative approach.
Started researching on how existing GraalVM supported frameworks test native executables.

25/03/2024

Researched on how the GraalVM native executables are tested. Research material can be found here.
Researched on the feasibility of using "isolation class loading" to isolate the build project environment and test environment to eliminate the possibility of false positive test results.
Had a discussion with @warunalakshitha and discussed on duplicate code generation for testable dependencies. Decided to do the implement the duplicate code generation inside codegen phase.
Implemented the initial version of the duplicate code generation for testable pkgs. Had to resort to a non optimal implementation due to certain limitations in codegen phase.
Started working on optimizing the codegen phase to achieve a more optimal implementation for duplicate code generation.
Sent a PR for https://github.com/ballerina-platform/ballerina-lang/pull/42346.
Started working on https://github.com/ballerina-platform/ballerina-lang/pull/42433

01/04/2024

Researched on bytecode instructions and how ASM generates bytecode.
Implemented chain invocation design for the runtime https://github.com/ballerina-platform/ballerina-lang/pull/42433
Implemented changes can be found in this document
Faced a failed integration test related to ballerina debugger after implementing the $moduleStop(). Started working on finding the root cause.
Sent PR for https://github.com/ballerina-platform/ballerina-lang/issues/42424

01/08/2024

Implemented a JSON report emitter to get the details of optimized BIR constructs.
Started writing test cases for single file projects. Test cases can be found in this repo.
Sent PR for https://github.com/ballerina-platform/ballerina-lang/pull/42582.
Sent PR for https://github.com/ballerina-platform/ballerina-lang/pull/42521.

26/05/2024

Added unit tests for the BIR level optimization. Test cases can be found here.
Implemented bal build --optimize --verbose command.
Implemented a JSON report emitter for native dependency optimization.
Added integration tests for the Bytecode level optimization. Test cases can be found here.
Added documentation for the project.
Added a slide deck for the code review presentation.


:sparkles: Implement stack pop_n

Pull request type

Please check the type of change your PR introduces:

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?

Issue Number: N/A
What is the new behavior?

Pop N elements from the stack at once is now supported

Can you rebase on main please


Added audit logging diagrams

Could we export these as bitmap (png / jpg) and link them into the README maybe?


Redfish bad image test for Host

This case is to check the Host should not get updated with bad image retain the last good image.

[ ] Bad MANIFEST
[ ] Missing image
[ ] Invalid Key

https://gerrit.openbmc-project.xyz/#/c/openbmc/openbmc-test-automation/+/24737/


Allow snapshotter to update its own state to idle when it is halted

When a snapshot script is halted it could finish a batch and set its own state to idle before it would halt the process.
// user land code
if (function_exists('pcntl_signal')) {
            pcntl_signal(SIGTERM, [$this, 'onPCNTLSignal']);
            pcntl_signal(SIGINT, [$this, 'onPCNTLSignal']);
}

public function onPCNTLSignal() {
        $this->projectionManager->stopProjection($this->snapshotStreamName);
}

To have this work the run loop must include declare(ticks = 1);.

declare(ticks = 1);

or
if (function_exists('pcntl_signal')) {
    pcntl_signal_dispatch();
}

where pcntl_signal_dispatch is better; see comment http://stackoverflow.com/questions/31284051/understanding-php-declare-and-ticks

that's not needed, the status is still running but timed out. This can be
read in the event-store-ui f.e. and show the status "timed out" (calculated
by status: RUNNING + lock timeout is old)
Sascha-Oliver Prolic
2017-03-02 0:29 GMT+08:00 Bas Kamer<EMAIL_ADDRESS>
declare(ticks = 1);
or
if (function_exists('pcntl_signal')) {
pcntl_signal_dispatch();
}
where pcntl_signal_dispatch is better; see comment
http://stackoverflow.com/questions/31284051/understanding-php-declare-and-
ticks
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/prooph/snapshotter/issues/19#issuecomment-283391212,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAYEvIcTiHe4xudYCCpTYgdBm6tErzw7ks5rhZzvgaJpZM4MP4FO
.

isn't its dangerous to halt projections at any random point while it is executing a batch? What happens when it did handle the emitted event but not written its own state f.e.?
pcntl_signal_dispatch is not as expensive as declaring ticks and it does allow for clean shutdowns which are nice to have. a GUI is nice, but until then I'm looking at phpmyadmin...

You should not stop your running projection manually. If it crashes for whatever reasons and cannot be sure about consistency anymore - restart your projection.


Fix path to atop for systemd service

I found that SystemD service file contains a mistake in ExecStart declaration.

Thanks!


Datum throws warning when you use hash_array and edit data on three levels

When you use a hash_array to configure data and then edit data on three or more different levels, Datum throws a warning and only uses the data from the highest two levels.
SSLCertificateImport:
    merge_hash: deep
  SSLCertificateImport\Certificates:
    merge_basetype_array: Deep
    merge_hash_array: DeepTuple
    merge_options:
      tuple_keys:
        - Name

If you then edit the data of this composite resource on level 1 and add data on level 2 and 3, the following error is displayed:
WARNING: Cannot merge different types in path 'SSLCertificateImport\Certificates' REF:[hashtable] | DIFF:[hash_array]System.Object[] , returning most specific Datum.

Troubleshooting info
Data Level 1
SSLCertificateImport:
  Certificates:
    - Name: SSLCertificate
      Location: LocalMachine
      Store: My
      Exportable: True
      Ensure: Present

Data Level 2
SSLCertificateImport:
  Certificates:
    - Name: SSLCertificate
      Ensure: Absent

Data Level 3
SSLCertificateImport:
  Certificates:
    - Name: SSLCertificate
      Thumbprint: A1B2C3D4E5F6

Actual result
SSLCertificateImport:
  Certificates:
    - Name: SSLCertificate
      Ensure: Absent
      Thumbprint: A1B2C3D4E5F6

Expected result
SSLCertificateImport:
  Certificates:
    - Name: SSLCertificate
      Location: LocalMachine
      Store: My
      Exportable: True
      Ensure: Absent
      Thumbprint: A1B2C3D4E5F6

Reproduction
If you download the following zip file and run the below commands, the first command will work (SPApplication.yml does not contain data) and the second with show the issue (SPSearchBackEnd.yml does contain data.
Level 1: SharePointServer.yml
Level 2: SPSearchBackEnd.yml
Level 3: StandardAcceptancePrimary.yml
$datum = New-DatumStructure -DefinitionFile .\Datum.yml

$srvApp = $datum.AllNodes.Standard.Acceptance.Primary.ServerApp
$dataApp = Lookup -Node $srvApp -DatumTree $datum -PropertyPath 'SSLCertificateImport'
$dataApp.Certificates

$srvSbe = $datum.AllNodes.Standard.Acceptance.Primary.ServerSbe
$dataSbe = Lookup -Node $srvSbe -DatumTree $datum -PropertyPath 'SSLCertificateImport'
$dataSbe.Certificates

Solution
I found that this issue is caused by the fact that PowerShell doesn't return an array when it only contains one item. This is causing the module later on to try to compare a hashtable with an array. By changing line 606 in Datum.ps1 by the following code the issue is fixed, forcing the item to be stored as an array:
                    if ($clonedReference.Certificates -is [System.Array])
                    {
                        [System.Array]$clonedReference[$currentKey]  = Merge-Datum @MergeDatumParams
                    }
                    else
                    {
                        $clonedReference[$currentKey]  = Merge-Datum @MergeDatumParams
                    }

Is this a good solution or do you see a different (better) solution?

@gaelcolas What do you think about this solution?


Finish GeoIP support

The next release (3.10.0) should have GeoIP support finished, with country flags visible on posts, configurable on a per-board basis, or globally enabled

[ ] Country flags on posts
[ ] GeoIP flag usage
[ ] Country detection via geoip (MaxMind GeoIP2/GeoLite2 DB)
[ ] Legacy GeoIP database support
[ ] Cloudflare IP via CF-IPCountry header

Currently, this is what will likely be used in gochan.json for GeoIP/flag configuration, though this may changed. Comments are included for explanation
{
	// SystemCriticalConfig.GeoIP should be a pointer in the BoardConfig struct, if it is non-nil,
	// GeoIP is assumed to be used
	"GeoIP": {
		// GeoIPType valid values:
		// "" or "none": not used, DBLocation and FlagOptions are ignored
		// "legacy": legacy/MaxMind GeoIP v1 (usually a .dat extension), may or may not end up being supported
		// "geoip2", "mmdb": MaxMind GeoIP2 database support
		// "cloudflare": Use Cloudflare's CF-IPCountry header, only usable if you are using Cloudflare and it is enabled
		"GeoIPType": "legacy",
		"DBLocation": "/path/to/db.{dat,mmdb}"
	},
	// BoardConfig.FlagOptions determines whether GeoIP is enabled for the board (or globally)
	// and what custom country flags are
	"FlagOptions" {
		"EnableGeoIPFlag": true,
		"EnableNoFlag": true, // if enabled, a "No flag" option will be available in the dropdown and if selected, the post won't show a flag
		"CustomCountries": [
			{"Name": "Benis", "Flag": "spurdo.png"},
			{"Name": "HONK!", "Flag": "clown.png"}
		]
	}
}

@Eggbertx This is indeed a nice feature. I would like to introduce the free IP2Location LITE IP geolocation database at https://lite.ip2location.com. If you find it a good fit for gochan, feel free to give me a ping.

Thanks for the suggestion, I see you have a Go package for it, so I'll take a look at that.

This issue is more or less complete as of 0f36a30, with the addition of the ip2location plugin from @ip2location's suggestion. Right now the plugin only supports the database file, not the web services since its API doesn't appear to be well documented (or I just wasn't looking in the right place).


Wrong selector name used in step 79 of building a magazine

Describe the Issue
In [(https://www.freecodecamp.org/learn/2022/aresponsive-web-design/learn-css-grid-by-building-a-magazine/step-79)]
step it is written
.list-header{
  font-size:1.8rem;
}

but in the html file there is no .list-header selector instead there is .list-title selector present.
Affected Page
(https://www.freecodecamp.org/learn/2022/aresponsive-web-design/learn-css-grid-by-building-a-magazine/step-79
Steps to Reproduce
In [(https://www.freecodecamp.org/learn/2022/aresponsive-web-design/learn-css-grid-by-building-a-magazine/step-79)]
step it is written
.list-header{
  font-size:1.8rem;
}

but in the html file there is no .list-header selector instead there is .list-title selector present.
Recommended fix or suggestions
either change the .list-header to .list-title or
remove the .list-header totally from the step to do.
Screenshots
No response

Page step 79 challenge
File: step 79 markdown file
the seed content doesn't have .list-header, and the step after it doesn't include it as well. we should swap .list-header with .list-title

This looks something that can be fixed by "first time" code contributors to this repository. Here are the files that you should be looking at to work on a fix:
File: https://github.com/freeCodeCamp/freeCodeCamp/blob/main/.github/workflows/no-prs-to-translation.yml
The fix would simply be to fix translions -> translations
Please make sure you read our guidelines for contributing, we prioritize contributors following the instructions in our guides. Join us in our chat room or the forum if you need help contributing, our moderators will guide you through this.
Sometimes we may get more than one pull requests. We typically accept the most quality contribution followed by the one that is made first.
Happy contributing.

I would like to work on this issue. Please assign this issue to me .

We don't give assignment unless to an old time contributor to the repo.


Fix typos in registry rework post

This fixes two minor typos in the registry rework post
Fixes #17

Preview URL: https://pr-18.neoforged-website-previews.pages.dev

Thanks!


Refactor deprecated torch.cuda.amp.autocast

What does this PR do?

fixing #520;

Before submitting

[x] Was this discussed/approved via a GitHub issue? Please add a link to it if that's the case.

This PR is only for torch>=2.4, so hold it here for future merge.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>6
Details

3 of 3 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.007%) to 83.34%

Totals

Change from base Build<PHONE_NUMBER>0:
-0.007%

Covered Lines:
11195

Relevant Lines:
13433

💛  - Coveralls


chore: Add missing package dependencies

Hi @CrimsonNynja 👋
Found your repo on #hacktoberfest list. Please have a look the PR solves the issue or not.

Before
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
warning " ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^15.0.0".
warning "@graphql-tools/merge ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^15.0.0".
warning "@graphql-tools/merge ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^15.0.0".
warning " ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^0.13.0 || ^14.0.0 || ^15.0.0".
warning "apollo-server ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^0.13.0 || ^14.0.0 || ^15.0.0".
warning " ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^0.13.0 || ^14.0.0 || ^15.0.0".
warning "apollo-server ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^0.11.3 || ^0.12.0 || ^0.13.0 || ^14.0.0".
warning "apollo-server ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^14.0.0 || ^15.0.0".
warning "apollo-server > apollo-server-core ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^0.13.0 || ^14.0.0 || ^15.0.0".
warning "apollo-server > apollo-server-core ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^15.0.0".
warning "apollo-server > apollo-server-core ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^0.13.0 || ^14.0.0 || ^15.0.0".
warning "apollo-server > apollo-server-core ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^0.13.0 || ^14.0.0 || ^15.0.0".
warning "apollo-server > apollo-server-core ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^0.13.0 || ^14.0.0 || ^15.0.0".
warning "apollo-server > apollo-server-core ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^0.13.0 || ^14.0.0 || ^15.0.0".
warning "apollo-server > apollo-server-core ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^0.13.0 || ^14.0.0 || ^15.0.0".
warning "apollo-server > apollo-server-core ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0".
warning "apollo-server > apollo-server-core ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>- 14".
warning "apollo-server > apollo-server-core ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>warning "apollo-server > graphql-tools ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^0.12.3 || ^0.13.0 || ^14.0.0 || ^15.0.0".
warning "apollo-server > graphql-tools ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0".
warning " ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^14.0.0".
warning " ><EMAIL_ADDRESS>has unmet peer dependency "graphql@*".
warning " ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>[4/4] 🔨  Building fresh packages...
success Saved lockfile.
warning No license field
success Saved 4 new dependencies.
info Direct dependencies
├─<EMAIL_ADDRESS>└─<EMAIL_ADDRESS>info All dependencies
├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>└─<EMAIL_ADDRESS>✨  Done in 6.61s.
yarn install v1.22.4
warning package.json: No license field
warning No license field
[1/4] 🔍  Resolving packages...
success Already up-to-date.
✨  Done in 0.50s.

After
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
warning "apollo-server ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>|| ^0.11.3 || ^0.12.0 || ^0.13.0 || ^14.0.0".
warning "apollo-server > apollo-server-core ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>- 14".
warning " ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>|| ^14.0.0".
[4/4] 🔨  Building fresh packages...
success Saved lockfile.
warning No license field
success Saved 4 new dependencies.
info Direct dependencies
├─<EMAIL_ADDRESS>└─<EMAIL_ADDRESS>info All dependencies
├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>└─<EMAIL_ADDRESS>✨  Done in 5.38s.
yarn install v1.22.4
warning package.json: No license field
warning No license field
[1/4] 🔍  Resolving packages...
success Already up-to-date.
✨  Done in 0.57s.

Closes #52 .

@haruelrovix Thanks for your work. Looks like some tests are failing with this build however. I think we may need to specify a specific graphql version.
You should be able to replicate this error on your local by running the tests from the generated code
See the errors here:
Ensure that there is only one instance of "graphql" in the node_modules
directory. If different versions of "graphql" are the dependencies of other
relied on modules, use "resolutions" to ensure only one version is installed.

Duplicate "graphql" modules cannot be used at the same time since different
versions may have different capabilities and behavior. The data from one
version used in the function from another could produce confusing and
spurious results.

Happy to merge this in if you can fix this

Thanks @CrimsonNynja ! The tests are green now ✅

Sweet
Merged


Cache Expiry and Persistence for "load_image_async" Function

Does this will not increase memory usage of the application in which easy_pil is used ?

I have an api which builds musiccard every second and I noticed my vps memory usage touched 1gb in just few minutes

Are you closing the editor after generating images ?

Yes, I am closing the editor after modifying the image. But my question is, why is the cache TTL set to 12 hours? I used easy_pil with FastAPI, which handles 22,000 images every day, but the API's RAM usage reached 7 GB in a single day. I think the load_image_async function is caching images for too long, which is causing the high RAM usag

So, do you think removing cache is better so you can implement your own caching strategy?
Also load_image loads the image from a link then opens it using Image.open() you need to close this too after the usage of the image is done
editor = Editor()

img = await load_image_async(url)
editor.paste(img, ...)

img.close()
bytes = editor.image_bytes
editor.close()

Let me know if this strategy helps reducing ram usage, ultimately all the images that you open must be closed to improve performance

So, do you think removing cache is better so you can implement your own caching strategy?
Also load_image loads the image from a link then opens it using Image.open() you need to close this too after the usage of the image is done
editor = Editor()

img = await load_image_async(url)
editor.paste(img, ...)
img.close()

bytes = editor.image_bytes
editor.close()

Let me know if this strategy helps reducing ram usage, ultimately all the images that you open must be closed to improve performance

Yes, remove the cache strategy and allow people to implement their own. Otherwise, many users won't see the source code and will start using it in production. Later, they may complain about memory leaks. Alternatively, you could implement an LFU-based caching system that caches up to a set limit.

ok I have removed the caching in version 0.4.0


Handle unicode in test names

Atom.to_charlist does not handle unicode well, but Atom.to_string seems to.
Atoms can include unicode as of a recent version of Elixir. We had added a ≤ in the name of one of our tests recently, which caused the xml file output by junit-formatter to be empty.

Awesome catch :)
Let's wait for CI and I will merge it. THanks a lot.

Hmm... it looks like there may be another issue. The XML is generated with the ISO-8859 character encoding, instead of UTF-8. We're looking into it now, to see if we can output the XML file with a different character encoding.

CI is almost certainly failing because UTF-8 support for atoms was added in Erlang 20.
You may not want to merge this, depending on what versions of Erlang you want to support. The documentation for Elixir 1.6 implies that the project does want to support Erlang 19, even though features like unicode in atom will raise errors.

Coverage remained the same at 94.545% when pulling 66fec3c51a7639b278d8b83bc4b70c67c39293b9 on sparta-science:master into 46dce5154896d1801a10e418f9c6281402ad2c18 on victorolinasc:master.

Coverage remained the same at 94.545% when pulling 66fec3c51a7639b278d8b83bc4b70c67c39293b9 on sparta-science:master into 46dce5154896d1801a10e418f9c6281402ad2c18 on victorolinasc:master.

I'm setting up different erlang versions with asdf to make some more tests. On OTP 20 everything looks good but if it breaks OTP 19 then we can't merge this unfortunately.
I will see if I can workaround this.
Thanks for bringing this up though!

Hmmm... so I think that the code changes are fine in both Erlang 19 and 20, it's the test that we added that is problematic. UTF-8 characters in test names will break in Erlang 19 regardless of how the formatter handles them.
We could try to make the test run conditionally based on Erlang version (if that's even possible), or we could remove 3 ≤ 4 test and trust the rest of the test suite to show that these changes don't break the formatter in general.
Do you have any preferences?

I think this could be an issue in ExUnit itself. If a string is not valid for a name on conversion to atom then it should give a better error than simply argument error or handle it there (and defenitely not here o junit-formatter).
I think I will open an issue there and perhaps open a PR there to handle this on ExUnit itself. What is your opinion?
If this is ok, then I'm fine with removing the test and just ensuring this does not break current implementation.

I've opened the issue here.
You can remove the test for now.
Thanks!

I will merge this and resolve locally.


[FEATURE] Adding example Dashboards/Viz for multiple data source feature

What solution would you like?
I'd like to see a Dashboards to demonstrate Multiple Data Source feature
Some basic requirement:

Add 2~3 remote data source connection, e.g. one connect to AWS OpenSearch 1.3, one connect to 7.10, one connect to premise cluster like playground (preview)
there are seed data in remote data source (could use example data, or create own)
create a few visualize which connect to remote data source
create a dashboards to show visualize

@kristenTian @zhongnansu @Flyingliuhub @BionIT

We can add a Dashboard following the sample revenue one, but with each visualization created 3 times as each from a different data sources.
The name of the vis/dashboard can be sth like - Global Revenue Dashboard. Showcase the dashboard is showing a global view from multiple data sources from different regions.

@kristenTian @zhongnansu are you guys able to pickup this with our support? Thanks

AWS connection support is still ongoing work tracking here. We can start with the rest. I am not familiar with the playground codebase. Can you point us where to make to change, if we want playground to start with visualization/data source that we pre-defined? @Flyingliuhub

I created the dashboard with the idea mentioned:

The open question to demonstrate this on playground is if we can mutate the sample data across different data sources to show case the multiple data sources.
@Flyingliuhub Recall playground have such use cases to generate sample data, is there something we can leverage?

I created the dashboard with the idea mentioned:

This looks great

[ ] could we add a mark down viz on top of Dashboard to brief about each Viz (from which data source) in Dashboards

[ ]  Before we find a way to automate it, could we at least create Dashboards in playground.opensearch.org (also reinvent playground) to show case multiple datasource to most of user.

[ ] Automate this dashboards/viz creation via automation tool or import/export saved object?

@kristenTian could you share the limitation with Saved Object API
@BionIT @Flyingliuhub is there best practices to import viz/dashboards, any doc could we reference?

we didn't write document, but there are some public document, like as https://docs.logz.io/user-guide/kibana/share-import-export and https://aws.amazon.com/blogs/big-data/export-and-import-kibana-dashboards-with-amazon-opensearch-service/

we didn't write document, but there are some public document, like as https://docs.logz.io/user-guide/kibana/share-import-export and https://aws.amazon.com/blogs/big-data/export-and-import-kibana-dashboards-with-amazon-opensearch-service/

above doc seems too generic, are we actually using it to create test data today?

I shared the steps for currently logic for import ndjson to @kristenTian , but we probably need to document it.


Coomand DeviceDetails not working

DeviceDetails
Extra parameter SerialNumber required
I see that you mentioned this command: curl  http://<IP_ADDRESS>/cgi-bin/dl_cgi?Command=DeviceDetails
When I try to use it I get the response:
{
"result":       "unknown command"
}
Can you provide more details on this command please?
How have you extracted the list of commands?

Can you ping this IP address ?

Can you provide more details on this command please?
How have you extracted the list of commands?

This was mostly observing and capturing all the calls made by the web console on the administrator's IP — a combination of Safari/Chrome for inspecting the HTTP calls and CharlesProxy for decoding packets as necessary.
This used to return a similar payload as DeviceList when passing in the serial as a URL parameter, but it may have been made redundant in a later build of the software.

Does the start command work? That should show the version of software you are running

Sorry for the late response.
This is what I get back from the Start command:
{"SWVER":"2022.3, Build 60430","SERIAL":"ZT214485000549A2020","MODEL":"PVS6","BUILD":60430,"FWVER":"1.0.0","SCVER":1630652920,"EASICVER":131329,"SCBUILD":1188,"WNSERIAL":16,"WNMODEL":400,"WNVER":3000}

Super odd ... (I got no ideas)


Remove the confusing preview tab on wiki editor

Fix #14196
Since there is already a button on toolbar to preview, it's unnecessary to add another tab to preview because it's confusing.

This seems will not fix #14196 since that bug only happens on 1.13.1, not on the master branch, and it's caused by https://github.com/go-gitea/gitea/commit/4f296f7436e35af0b72c03e01b6cca46266052c8. I do think removing the preview tab makes sense to me, but marking this patch as a fix for that issue is very confusing.

This seems will not fix #14196 since that bug only happens on 1.13.1, not on the master branch, and it's caused by https://github.com/go-gitea/gitea/commit/4f296f7436e35af0b72c03e01b6cca46266052c8. I do think removing the preview tab makes sense to me, but marking this patch as a fix for that issue is very confusing.

Not sure what is confusing about that tab, it is consistent with other markdown input UI, and until recently I didn't even discover this toolbar button.

Not sure what is confusing about that tab, it is consistent with other markdown input UI, and until recently I didn't even discover this toolbar button.


Auto-link doesn't work for titles ending in italics

How can the issue be reproduced
Have this title: # I have some text: in _italics_
What was expected
Can click the TOC entry and jump to my specific heading. (scroll location changes)
What actually occurred
The URL in the address bar changed, however I wasn't moved to my heading. (scroll location didn't chage)
What was the version of the involved component
v3.0.3 installed from package control.
If i use autoanchor="true" then everything works correctly, just w/o it i have the problem.
Possibly related: https://github.com/naokazuterada/MarkdownTOC/issues/109#issuecomment-354932113
Please see this and rename to a.md a.txt

@TheBestPessimist Thank you for reporting. I will look into this weekend! : )

@TheBestPessimist
Hi, your problem will be fixed in 3.0.4.
https://github.com/naokazuterada/MarkdownTOC/releases/tag/3.0.4
You also check it here. This doc wrote with my sublime.
I close this issue, but it's OK if you still have the problem after plugin auto updated.
Thanks.

I can confirm it works :)


Card Name Autocompletion is always in English, doesn't respect the locale

if i use trans ,and type # in comment,there is only en card's name.

and this is the right

This is not true. You are seeing English card names for the untranslated cards. Type in "el" for example, and you'll see Spanish card names.


I need to take customer detail via email instead of customer_id

I need to take customer via email_address instead of customer_id.

This is not currently supported but I will pass it along as a feature request. An email address may also be used on more than one Customer so it alone would not be sufficient as an identifier and all cases.


RFC: Automate dependency updates in Gradle projects with Dependabot

Issue
Our template is enabling Dependabot, but it's being used only to report Ruby dependency https://github.com/nimblehq/android-templates/pulls?q=is%3Apr+Dependabot. There is no config to report for Android project dependency updates yet.
Solution
We now can apply to use Dependabot to automate dependency updates in Gradle projects (Android) 🎉 . There is a nice article about this: https://proandroiddev.com/automate-dependency-updates-in-gradle-projects-with-dependabot-8f0092a89de9.
There were some issues with Dependabot before. However it's now 2022, they are resolved and released so the bot is ready to use in Android project:

https://github.com/dependabot/dependabot-core/issues/2238
https://github.com/dependabot/dependabot-core/issues/2219

Who Benefits?
Developers
What's Next?

[ ] Update to use corresponding Dependabot app.
[ ] Add dependabot.yml to report dependency updates for Android project.

@luongvo I like the idea, but I'm not sure if this will be feasible as we specify the versions in a separate file (Versions.kt)
Reference: https://github.com/dependabot/dependabot-core/issues/2238#issuecomment-803037677

@Tuubz I think we could keep this initiative in 2 steps:

Experiment with new Dependabot to automate dependency updates in Gradle projects.
Apply to use Dependabot to automate dependency updates in Gradle projects.


Make bootstrap.sh POSIX-test-compatible

Description

== isn’t compatible with some /bin/shs. = is the correct operator.
Motivation and Context

This issue affected @traumschule.
Types of changes

[X] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[X] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

LGTM, thanks !


Automatically set a particular attribute for each item that is added to the folder or tag

If I shift a new item with no dataview attributes to a folder with the database folder, I would like the plugin to be able to automatically assign a default value for a tag to it. I reckon this could build up to 'combined databases' using tags from smaller databases as well, for example:
smaller database A - automatically tagged with #example1
smaller database B - automatically tagged with #example2
smaller database C - automatically tagged with #example3
big database X - combines all of A/B/C by including #example1, #example2 and #example3

could be a subtask of
https://github.com/RafaelGB/obsidian-db-folder/issues/94
I am not sure if its a duplicated issue


Fix everything recent

Fixes #513
I hope?
Tested by parsing Elven Honorblade and swapping to Barmaid after. Everything seemed to work as expected.
This fixes all errors I could find anyway.

Nope, #513 still is there, see screencast:
https://user-images.githubusercontent.com/14833806/162734858-042a1d28-7a9b-45c9-84fd-42113eccc006.mp4
In addition updating the progress bar on top is now broken as well. I'll take a look how and if this is fixable without rolling back the re'init stuff


Docs and readme - rename to Kingfisher

https://github.com/open-contracting/kingfisher/issues/202
Also correct typo.
Also add source.
https://github.com/open-contracting/kingfisher/issues/201

This pull request should not cause any disruption to users (other rename ones will).

Yes, there will be several code changes to come and each one will have to have some doc changes to.
Thanks!


[IF-INTERLAY2-06], [IF-INTERLAY2-07] Minor suggestions on Issue, Redeem, and Replace specs

This PR suggests a few very minor fixes/alterations surfaced from @informalsystems' audit of interlay/btc-parachain at
75fd3e2
The only suggestion that has any substance is that in 655f606, please see that commit for details.

Fixed. Thanks!


Support for multiple envs by config

Currently only .env config is supported.
Multiple Configs should be supported.

Added in: https://github.com/Sprinting-Software/nestjs-primer/commit/09b11b6894e90ceeffad60336bc1e7630b1ab215


First attempt at object-orientation, and a script to run it

This is my first crack at an object-oriented approach to the projection pipeline. Here's a diagram of the logic.

Details:

The user uses the "git_nis" function to load 1+ data sets from NIS. Each data set will be an instance of the CumulativeUptakeData  class. Loading each data set individually seems necessary, because every NIS data set appears to have different column names and   require different filtering strategies.
The user creates an instance of the ProjectionSettings class, which has many attributes that describe the desired projections (e.g. start date, end date, and time interval of projections). A ProjectionSettings object also uses the loaded uptake data - and the rollout dates for each season represented therein - to establish the training vs. test portions of the loaded data as new attributes. The training portion is converted into an instance of the IncidentUptakeData class.
The user tells the ProjectionSettings instance to build a model. Currently only one model structure is supported, but this is where the user will be able to specify a model structure in the future. The ProjectionSettings object then creates a new attribute of class LinearIncidentUptakeModel. This is essentially a scikit-learn LinearRegression, which gets fit on the training data following the specified model structure and then produces projections according to the date range and interval originally specified. (While the loop-based method of projection is conducive to compounding uncertainty, uncertainty isn't included yet - just point estimates for now.) The projections are stored as IncidentUptakeProjections and CumulativeUptakeProjections objects, which are attributes of the LinearIncidentUptakeModel, which itself is an attribute of the ProjectionSettings.

I intend the nested structure to allow the user to declare just one projection scenario (i.e. the data to use for model fitting and the date range to make projections for). That projection scenario can contain multiple models, which each generate and contain their own projections. This should be conducive to evaluation and comparison.

I've also added my first attempt at writing a test.


fix minecraft close whenever same version relaunched

Launching the same version of minecraft again closes the previous one that is open.
Reason:
Natives folder gets recreated. This causes game to stop working.

Fixed