Integrate OpenSearch Dashboards release functional tests into CI process

Is your feature request related to a problem? Please describe
We want to integrate OSD release test https://github.com/opensearch-project/opensearch-dashboards-functional-test into the infra CI. We have already verified that it can run in Github Action env.
(See this sample run https://github.com/opensearch-project/opensearch-dashboards-functional-test/runs/3705023275?check_suite_focus=true)
Describe the solution you'd like
The overall process would be:
For security enabled cluster,
checkout opensearch-dashboards-functional-test from Github
run npx cypress run --spec "cypress/integration/security-enabled/*.js"

For security disabled cluster,
checkout opensearch-dashboards-functional-test from Github
run npx cypress run --spec "cypress/integration/security-disabled/*.js"

(One call out is that opensearch-dashboards-functional-test imports another library repo https://github.com/opensearch-project/opensearch-dashboards-test-library through NPM registry.)
Describe alternatives you've considered
We could just use the Github Actions https://github.com/opensearch-project/opensearch-dashboards-functional-test However, it is isolated outside of the org workflow.
Task breakdown

[x] https://github.com/opensearch-project/opensearch-build/issues/834
[x] https://github.com/opensearch-project/opensearch-build/issues/852
[x] https://github.com/opensearch-project/opensearch-build/issues/837

[x] https://github.com/opensearch-project/opensearch-build/issues/1079
[x] https://github.com/opensearch-project/opensearch-build/issues/1080
[x] https://github.com/opensearch-project/opensearch-build/issues/1134
[x] https://github.com/opensearch-project/opensearch-build/issues/1081

[x] https://github.com/opensearch-project/opensearch-build/issues/838

[x] https://github.com/opensearch-project/opensearch-build/issues/1161
[x] https://github.com/opensearch-project/opensearch-build/issues/1170
[x] https://github.com/opensearch-project/opensearch-build/issues/1171
[x] https://github.com/opensearch-project/opensearch-build/issues/1177
[x] https://github.com/opensearch-project/opensearch-build/issues/1228
[x] https://github.com/opensearch-project/opensearch-build/issues/1211

[x] Jenkins integration

[x] https://github.com/opensearch-project/opensearch-build/issues/1259
[x] https://github.com/opensearch-project/opensearch-build/issues/1264
[x] https://github.com/opensearch-project/opensearch-build/issues/1269
[x] https://github.com/opensearch-project/opensearch-build/issues/1322
[x] https://github.com/opensearch-project/opensearch-build/issues/1323
[x] https://github.com/opensearch-project/opensearch-build/issues/1371
[x] https://github.com/opensearch-project/opensearch-build/issues/1372
[x] https://github.com/opensearch-project/opensearch-build/issues/1373
[x] https://github.com/opensearch-project/opensearch-build/issues/1381
[x] https://github.com/opensearch-project/opensearch-build/issues/1482
[x] https://github.com/opensearch-project/opensearch-build/issues/1489

[x] Update functional test repo

[x] https://github.com/opensearch-project/opensearch-dashboards-functional-test/issues/44
[x] https://github.com/opensearch-project/opensearch-dashboards-functional-test/issues/39
[x] https://github.com/opensearch-project/opensearch-dashboards-functional-test/issues/49

Fast Followups

[x] https://github.com/opensearch-project/opensearch-build/issues/1190
[x] https://github.com/opensearch-project/opensearch-build/issues/1191
[x] https://github.com/opensearch-project/opensearch-build/issues/1707
[x] https://github.com/opensearch-project/opensearch-build/issues/1708
[ ] https://github.com/opensearch-project/opensearch-build/issues/1709
[ ] https://github.com/opensearch-project/opensearch-build/issues/1728

Since test-workflow haven't officials support dashboards/cypress yet, we will try to run this on the old Jenkins Workflow next week with repository integtest.sh.
We will migrate it to test-workflow once it is ready.
Thanks.

what's the gap to run cypress? is there an open issue to track, want to know more

Is there an issue to track we need two parameters need to run test?

[Triage] @tianleh Could you add individual tasks that would align to the PRs that you are creating where this task is broken into more digestible pieces?

[Triage] @peterzhuamazon is tracking this item, and the costing reflects this.  If it makes sense to break this apart into more than one item please do what works best for you.

Task breakdown

[x] https://github.com/opensearch-project/opensearch-build/issues/834
[ ] https://github.com/opensearch-project/opensearch-build/issues/852
[ ] https://github.com/opensearch-project/opensearch-build/issues/837
[ ] https://github.com/opensearch-project/opensearch-build/issues/838

My POC work https://github.com/tianleh/opensearch-build/tree/add-test-support is working. Focusing on moving the POC code to official repo

Added more subtasks under https://github.com/opensearch-project/opensearch-build/issues/837 to make incremental progress. The update is in the top section of this issue. ("Is your feature request related to a problem? Please describe")

To be able to create work parallelization among CI/CD engineers, I am thinking about creating new Github issues for some code optimization/enhancement feedback received from PR review (instead of directly addressing them as part of its originating PR).
Then my engineering capacity won't be the bottleneck of the launch of the whole task #604 . To ensure ownership of those new issues, I will be the first owner and then coordinate among the team for the actual implementation work.
The leadership team is expecting the Dashboards CI (plugin as well) to be complete (GA) by 12/15/2021 Thus for those new Github issues, we will also define their priority as pre GA or post GA and focus on pre GA ones.
@seraphjiang @dblock @peternied @kavilla

To be able to create work parallelization among CI/CD engineers, I am thinking about creating new Github issues for some code optimization/enhancement feedback received from PR review (instead of directly addressing them as part of its originating PR).
Then my engineering capacity won't be the bottleneck of the launch of the whole task #604 . To ensure ownership of those new issues, I will be the first owner and then coordinate among the team for the actual implementation work.
The leadership team is expecting the Dashboards CI (plugin as well) to be complete (GA) by 12/15/2021 Thus for those new Github issues, we will also define their priority as pre GA or post GA and focus on pre GA ones.
@seraphjiang @dblock @peternied @kavilla

If a piece of feedback on a PR is not a must have and is being deferred because it's too much work for the PR, opening an issue for that is the right thing to do so we don't forget, anyway.

To track PR/Issue related to release integ test, I created a new label ci-test-automation
To track those PRs which have been approved/merged with comments, I created a new label comment-to-followup
(Once remaining comments are resolved in follow up PRs, I will remove the label)

Added a few items to track our work with infra team about upgrading to Chromium to

stabalize the test
support Reporting plugin

@tianleh Whats the status of this issue?

@tianleh @peterzhuamazon @kavilla Can you please update the current status of this issue?

Closing this issue as we are now using opensearch-functional-test repo to run tests for all dashboards plugin. No action items pending from infra side.
Please re-open if you think any items are pending.
Thanks!


Creative Test page inappropriately expands iframe with transition

According to the 1.0.1 version of the spec, for $.sf.expand(),

Tweening or animation is not supported in the SafeFrame so any animation must be processed by the external party within the container and call this method whenever it needs to expand to its maximum size.

However, in the creative_test.html example page, there's a transition set in the styles:
#topAdWrapper div, #topAdWrapper div iframe {
    transition: width 0.4s ease-in-out, height 0.4s;
}

Coupled with the alignment changes made by ext.js, this causes a leftward expanding ad with its own animation to jump to the left while expanding, giving a false impression that there is a problem with the creative.

This issue lies in the test page and not with the framework. The fix is to remove this style rule in order to not give the user a false impression as to ad behavior.


Element patch for a critical E2EE vulnerability

Just wanted to point out that the app should be updated to version 1.8.5 which seems to be the new release that recently patched a critical E2EE vulnerability as can be read here :
https://matrix.org/blog/2021/09/13/vulnerability-disclosure-key-sharing/

See my pull request here: https://github.com/portapps/element-portable/pull/40
You can download the new binaries here : https://github.com/HawkLiking/element-portable/actions/runs/1230727510

Available: https://portapps.io/app/element-portable/#download


EcoCampus: Questions to EcoCampus Facility Managers

This is a repository for questions and data we would like to verify with EcoCampus FMs.
Please put all of your questions in this issue @JIMENOFONSECA @gabriel-happle @shizhongming @BhargavaKrishnaSreepathi

Fresh water supply temperature (to chillers and dhw heaters), refers to #519.

Chilled water network: pipeline layout/ pipe diameter/ pipe insulation/ water flowrate. (asked Samira, still waiting for her reply)

temperature setpoints

temperature set-backs and off periods.

humidity setpoints

@shanshanhsieh @gabriel-happle when is there gonna be a meeting anytime soon?

@shanshanhsieh I do not see this happening. please close the issue and copy the information somewhere else


libpkgconf: 2.1.0 -> 2.1.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/pkgconf/versions.
meta.description for libpkgconf is: Package compiler and linker metadata toolkit
meta.homepage for libpkgconf is: https://github.com/pkgconf/pkgconf
meta.changelog for libpkgconf is: https://github.com/pkgconf/pkgconf/blob/pkgconf-2.1.1/NEWS
Updates performed

Version update

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2.1.1 with grep in /nix/store/gn1i5r8p4bj2hndkv2wlw97zgpxlzppm-pkgconf-2.1.1
found 2.1.1 in filename of file in /nix/store/gn1i5r8p4bj2hndkv2wlw97zgpxlzppm-pkgconf-2.1.1

Rebuild report (if merged into master) (click to expand)

16 total rebuild path(s)

16 package rebuild(s)

First fifty rebuilds by attrpath
bdep
bpkg
build2
cava
cavalier
entangle
libbpkg
libodb
libodb-sqlite
libpkgconf
muon
muonStandalone
onagre
opensmtpd
pkgconf
pkgconf-unwrapped

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/gn1i5r8p4bj2hndkv2wlw97zgpxlzppm-pkgconf-2.1.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A libpkgconf https://github.com/r-ryantm/nixpkgs/archive/0789195938e236cbca35543f5825f501bd23fd13.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/0789195938e236cbca35543f5825f501bd23fd13#libpkgconf

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/gn1i5r8p4bj2hndkv2wlw97zgpxlzppm-pkgconf-2.1.1
ls -la /nix/store/gn1i5r8p4bj2hndkv2wlw97zgpxlzppm-pkgconf-2.1.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

15 packages built:

bdep
bpkg
build2
cava
cavalier
entangle
libbpkg
libodb
libodb-sqlite
libpkgconf
muon
muonStandalone
onagre
opensmtpd
pkgconf

Maintainer pings
cc @zaninime @AndersonTorres for testing.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-already-reviewed/2617/1432


Add a feature documentation and convert readme files to pdf

I added a feature documentation. Also, I converted some md files to pdf.
I personally don't really see any benefit from using pdf files, but we were requested to provide them. Maybe, we can simply delete them afterwards. :D (Only using MD files has the advantage that you can easily edit them without having to convert them to pdf all the time. Also, you can view md files on GitHub easily, so I really only see disadvantages here.)

Looks good for me, but I'm not sure, if we need to change the pdf and add our new pages from this week too.


Add a method for mapping Mut<T> -> Mut<U>

Objective
When designing an API, you may wish to provide access only to a specific field of a component or resource. The current options for doing this in safe code are

*Mut::into_inner, which flags a change no matter what.
*Mut::bypass_change_detection, which misses all changes.

Solution
Add the method map_unchanged.
Example
// When run, zeroes the translation of every entity.
fn reset_all(mut transforms: Query<&mut Transform>) {
    for transform in &mut transforms {
        // We pinky promise not to modify `t` within the closure.
        let translation = transform.map_unchanged(|t| &mut t.translation);
        // Only reset the translation if it isn't already zero.
        translation.set_if_not_equal(Vec2::ZERO);
    }
}

Changelog

Added the method map_unchanged to types Mut<T>, ResMut<T>, and NonSendMut<T>.

I don't quite understand why this is necessary? What are you planning to use it for?

I think #4413 is related.

Clever. If we can improve the docs I'm on board.

Should this method be unsafe? There's no memory safety issue, but the "caller pinky promises not to mutate" part seems like it shares the sentiment.

Should this method be unsafe?

I don't think there's any need for it to be unsafe, but I'm willing to change it if the consensus disagrees with me.

 Until we can declare our own function colours in Rust, we can't really mark those 🤷

@TheRawMeatball should this close #4413 if it's merged?

bors r+


Project stuck exporting

reported on slack:https://embl-ebi-ait.slack.com/archives/C9XD6L0AD/p1617740148087100
Project= TranscriptionalHeterogeneityInLatentAndReactivatedHivInfectedCells, uuid=eaefa1b6-dae1-4414-953b-17b0427d061e
is still exporting after 12+ hours does it need to be re-triggered?

The exporting of the project

CD4_T_cells_in_brain uuid=e5d45579-1f5b-48c3-b568-320d93e7ca72
had also been stuck.

I am happy to confirm that the export of this project is now complete after the Ingest issue was resolved.

Duplicate of #290?

sorry! Yes, not sure how I managed that


utils changes

ups, messed it up :) sorry
it's ready now

completed and working calculateMidpoint()
added inMiles parameter to calculateDistance()
updated basic tests accordingly

Coverage increased (+0.04%) to 97.26% when pulling 1ff0c5be4df49dc2b120d306839d74a78dd2fd58 on pavloDeshko:master into acd206cbdc4f46a2b7d177ff84c8d5eb3f4556de on elliotstokes:master.


⚠ Bofrost.de has degraded performance

In f36c5df, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1023 ms

Resolved: Bofrost.de performance has improved in b13f8d7 after 6 minutes.


Change cursor color?

I rarely use Jupyter so this is likely a dumb question: but is this theme supposed to alter the cursor color? It's staying the default lime green for me which is hard to see with almost any theme.
Is it possible to set or override this? I took a very quick look at the CSS in dev tools but didn't immediately see what class was responsible for the cursor color. Thanks!

Hello there @prurph !
It is indeed possible to set the cursor color in Jupyter Lab theme, we just have to set the CSS variable --jp-editor-cursor-color.
Our Catppuccin theme is in fact already setting it as this:
--jp-editor-cursor-color: var(--ctp-plt-rosewater);

So the cursor will be in the color "rosewater" of the corresponding Catppuccin flavor that is being used.
In case of the Latte flavor, it is #dc8a78.
I've just tested the Latte flavor (both in Firefox and Chrome) and it seems to working:

Not sure why your cursor is green. Also, don't know why it is as a "block cursor", and not a "line cursor".
Is it a JupyterLab setting?
Which browser are you using? Could you test in other browsers?

Hi there! The issue seems to be that I'm using vim mode (Settings → Enable Vim Mode). The cursor is the green block in normal mode. In insert mode the line cursor is colored as it should be. I had tried a few ways of overriding it with custom css but your snippet inspired me to dig in a little. The correct variable is --jp-vim-cursor-color link, but overriding this in custom css requires attaching !important (it looks like the vim styles are injected after custom user styles).
The final fix is:
/* ~/.jupyter/custom/custom.css */
:root {
  --jp-vim-cursor-color: var(--ctp-plt-rosewater) !important;
}

and voila 💅

I would be happy to prep a small PR to add this to to the catppuccin plugin if you think this is appropriate, but I couldn't figure out where these extensions are writing their data to disk so I could do a quick sanity check of whether the change in catppuccin would even have an effect; I suspect the variable might just get overridden by the vim plugin (because I needed to add !important or it wouldn't work). I didn't see anything in any of the directories jupyter --paths that had actual data in it to test.
If you know offhand how I could quickly test this locally by manually editing some plugin files I'd be happy to do this; otherwise the custom.css is an easy solution for other users. Thanks for the help and the spirited theme! 😸

Hey @prurph. Great discovery!
So the main issue is that the style comes from an external plugin, that sets its own cursor, with a hard-coded color.
This probably affects any Jupyter Lab theme, not only catppuccin. Ideally this should be a fix/feature of the plugin, either to allow the user to set its own color, or to inherit the color from the jupyter css styles instead of associating a hard coded fixed color.
That being said, I would be happy to try making a gambiarra to make catppuccin theme compatible with the vim plugin. I'm afraid that it might not be possible tough.
I tried setting the jp-vim-cursor-color (with !important flag) like you said, inside the variable.css file of the catppuccin theme, but it seems to have no effect. I don't have much experience with advanced CSS composition, so maybe you will be more effective than I am!
You can test and modify the catppuccin theme locally by doing this:

Clone the repository: git clone https://github.com/catppuccin/jupyterlab.git;
Load the environment where your Jupyter Lab will run;
Change directory to be on the root of the repository;
Install the theme from local folder: pip install -e .;
Open Jupyter Lab: jupyter lab;

So you could keep editing the repository and theme files, reinstalling and reopening jupyter lab.
Please let me know if you can figure out a way to make it work 😺

@gabrielmagno obrigado pelas direções! I opened https://github.com/catppuccin/jupyterlab/pull/10, which correctly changes the block cursor with the vim extension on my machine. Not sure if you installed or have installed the vim extension in your tests, but if not then there will be no visible effect: this only causes the block cursor in vim insert mode to correctly match the color of the regular line cursor.
If you think it's weird to have another extension's variable set by catppuccin I totally get it; perhaps in that case we could abandon the PR and just add a note to the readme describing how vim users could create a custom.css file to override it themselves. Thanks!

Solved by #10


Obtain metrics for validation dataset during training

Describe the feature
When validation flag is selected in api/train.py, EvaluationHook gets inmediately registered (see here). Nevertheless, metrics are only computed over training dataset once each training epoch is done, since EvalHook only implements after_train_epoch method.
I consider it would be more interesting to obtain those metrics over validation dataset and it's not clear to why this has no been activated.
Motivation
It's good to use validation data to understand how your model is learning with the number of epochs. Losses are crucial for this and you can infer a lot by comparing training and validation curves. But some times loss values are not enough for the problem you are dealing with, slight changes in losses may end up on large differences in model performance.
Additional context

One plausible solution for this problem would be to change EvalHook replacing its after_train_epoch with after_epochmethod:

class EvalHook(Hook):
...
def after_epoch(self, runner):
        if not self.every_n_epochs(runner, self.interval):
            return
        from mmdet.apis import single_gpu_test
        results = single_gpu_test(runner.model, self.dataloader, show=False)
        self.evaluate(runner, results)

Drawbacks: This is far from optimal since we would be feeding validation data twice, one per computing loss values and other for validation metrics.

Adapt code to save batch predictions after each iteration of runner.val() method. This requires a large number of modifications in the source code:

Modify apis.train.batch_processor()  and detectors `forward_train()' method to return bboxes when required.
Evaluate and accumulate bbox results per batch
Compute metrics from accumulated batch results

Drawbacks: It would require a large refactor of code base. Runner module is affected so mmcv package would be also afected.
We are interested in this feature and willing to develop it. I'm open this discussion to serve as a debate about the changes to be made

Evaluation hooks use the validation dataset instead of training dataset, see here for details. after_train_epoch() only indicates that it is triggered after each (or several) training epochs, and runner.val() is never called because we specify workflow=[('train', 1)] in config files.

I see, thanks your that explanation @hellock, we missed that point!

is there any way that i can compute the metrics on trianing set?

is there any way that i can compute the metrics on training set?


Issue with Release 3.5.0

My company had our dependency for react-plaid-link set to ^3.2.0 and today after the release of version 3.5.0 on a new deploy we started to get the following error:
Oct 13 22:09:43 ip-172-31-2-133 web: Error: Cannot find module '/var/app/current/node_modules/react-plaid-link/dist/index.js'. Please verify that the package.json has a valid "main" entry
Oct 13 22:09:43 ip-172-31-2-133 web: at tryPackage (node:internal/modules/cjs/loader:427:19)
Oct 13 22:09:43 ip-172-31-2-133 web: at Function.Module._findPath (node:internal/modules/cjs/loader:640:18)
Oct 13 22:09:43 ip-172-31-2-133 web: at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1014:27)
Oct 13 22:09:43 ip-172-31-2-133 web: at Function.Module._load (node:internal/modules/cjs/loader:873:27)
Oct 13 22:09:43 ip-172-31-2-133 web: at Module.require (node:internal/modules/cjs/loader:1100:19)
Oct 13 22:09:43 ip-172-31-2-133 web: at require (node:internal/modules/cjs/helpers:119:18)
Oct 13 22:09:43 ip-172-31-2-133 web: at Object.<anonymous> (/var/app/current/dist/<redacted>.js:14:23)
Oct 13 22:09:43 ip-172-31-2-133 web: at Module._compile (node:internal/modules/cjs/loader:1198:14)
Oct 13 22:09:43 ip-172-31-2-133 web: at Object.Module._extensions..js (node:internal/modules/cjs/loader:1252:10)
Oct 13 22:09:43 ip-172-31-2-133 web: at Module.load (node:internal/modules/cjs/loader:1076:32)
Oct 13 22:09:43 ip-172-31-2-133 web: at Function.Module._load (node:internal/modules/cjs/loader:911:12)
Oct 13 22:09:43 ip-172-31-2-133 web: at Module.require (node:internal/modules/cjs/loader:1100:19)
Oct 13 22:09:43 ip-172-31-2-133 web: at require (node:internal/modules/cjs/helpers:119:18)
Oct 13 22:09:43 ip-172-31-2-133 web: at Object.<anonymous> (/var/app/current/dist/<redacted>.js:14:72)
Oct 13 22:09:43 ip-172-31-2-133 web: at Module._compile (node:internal/modules/cjs/loader:1198:14)
Oct 13 22:09:43 ip-172-31-2-133 web: at Object.Module._extensions..js (node:internal/modules/cjs/loader:1252:10)
Oct 13 22:09:43 ip-172-31-2-133 web: at Module.load (node:internal/modules/cjs/loader:1076:32)
Oct 13 22:09:43 ip-172-31-2-133 web: at Function.Module._load (node:internal/modules/cjs/loader:911:12)
Oct 13 22:09:43 ip-172-31-2-133 web: at Module.require (node:internal/modules/cjs/loader:1100:19)
Oct 13 22:09:43 ip-172-31-2-133 web: at require (node:internal/modules/cjs/helpers:119:18)
Oct 13 22:09:43 ip-172-31-2-133 web: at Object.<anonymous> (/var/app/current/dist/<redacted>.js:8:72)
Oct 13 22:09:43 ip-172-31-2-133 web: at Module._compile (node:internal/modules/cjs/loader:1198:14) {
Oct 13 22:09:43 ip-172-31-2-133 web: code: 'MODULE_NOT_FOUND',
Oct 13 22:09:43 ip-172-31-2-133 web: path: '/var/app/current/node_modules/react-plaid-link/package.json',
Oct 13 22:09:43 ip-172-31-2-133 web: requestPath: 'react-plaid-link'
Oct 13 22:09:43 ip-172-31-2-133 web: }
Oct 13 22:09:43 ip-172-31-2-133 web: ><EMAIL_ADDRESS>start-prod
Oct 13 22:09:43 ip-172-31-2-133 web: > NODE_ENV=production node dist/server/server.js
Oct 13 22:09:46 ip-172-31-2-133 web: node:internal/modules/cjs/loader:435
Oct 13 22:09:46 ip-172-31-2-133 web: throw err;
Oct 13 22:09:46 ip-172-31-2-133 web: ^

This was with no other changes and the issue was resolved by changing the version in our package.json to ~3.4.0

We're aware of a build issue with 3.5.0, could you upgrade to 3.5.1? Let us know if you're still having trouble after upgrading to 3.5.1.


[WIP] Add KeyMap and Network

This is still in progress, but all the tests are passing and this shows the general idea so far. I wanted to show this early since it is such a large PR.
I would love to hear any feedback about things that seem off. For instance, do the relationships between the objects make sense (e.g. Source requires  a network)? Could any new method names be clearer? Are there any concerns with ember-orbit integration that I've missed?
Some clean up I still need to do:

[ ] KeyMap#push currently expects all of the keys for a record to be present. However when pushing a relationship identity, this might not be the case. I need to add tests for this and update KeyMap#push.
[ ] I need to review the APIs used in the tests to initialize the keyMap. As I was working I used network.keyMap.push, network.initializeRecord, and serializer.deserializeRecord to achieve similar goals. These tests need to be more intentional about what methods they use.
[ ] Solidify public API of network and keyMap with tests and _names where needed.
[ ] Add documentation to any new methods.
[ ] Some other TODO items documented in comments.
[ ] Rebase against master

@mitchlloyd Besides a few naming suggestions and the items you've listed, this is looking really good!

There’s a couple of things that I’m not quite sure about:

Injecting Network into Sources, I see Network as the container so it seems more natural to inject Schema/KeyMap
Methods hanging directly off network like network.initializeRecord(), perhaps again because I see Network as the container initializeRecord() feels like it should belong to something within the network

@opsb I'll explore possibly removing the methods from network and just using it as a container. My first thought was that there would be a lot of co-ordination between the keyMap and the Schema. However I eventually found that the keyMap and Schema didn't need to know about each other.

@mitchlloyd ICYMI, we discussed this a little more over in gitter

My first thought was that there would be a lot of co-ordination between the keyMap and the Schema. However I eventually found that the keyMap and Schema didn't need to know about each other.

@mitchlloyd I think this realization confirms the direction that @opsb and I discussed in gitter: that keyMap and schema can be passed directly into each Source's constructor without using Network as a container. This will allow us to hold off on the introducing the Network class until we have a clearer idea if it's needed in addition to the Coordinator.
So this leaves the question - what to do with initializeRecord and initializeId? As @opsb pointed out, these methods are pretty much only used by serializers during the deserialization process. It seems like we could just move this logic over to the JSONAPISerializer for now (or perhaps create some helper methods in a separate module). Note that normalize will still be needed on Schema.
I think these are relatively minor changes compared to the bulk of the work you've done here with this refactor. Let us know what you think here or in gitter.

This is ready for another look!

Woot! Will review soon @mitchlloyd 👍

Looks great - thanks again @mitchlloyd :shipit:


Update init.py

Enable ArrowFlight with unencrypted TCP connection

looks good to me, will merge when you fix your comment. Thanks @TibbersDriveMustang

enabled arrowFlight with auth2, ready to merge


Delete this

Apparently it's impossible to delete issues:
https://github.com/isaacs/github/issues/253
That's annoying.

@jcjohnson That sucks, I was posting this for a method of using a combination of models to create higher quality images, but I figured the wiki is a more appropriate location.


Remove hack to get target of GetAccessor symbol

Fixes #27663
Essentially reverts #17483
Previously we had this special hack for following the target of the GetAccessor when it's transient.
Now we handle transient symbols appropriately by calling checker.getRootSymbols(sym) in forEachRelatedSymbol.

@sheetalkamat Please re-review


[Play] - New Score Animation

Issue:
It was determined that the new score animation (when a player is awarded points) isn't noticable enough on the screen.
Resolution:
The animation was adjusted to add a rotation and to increase the duration.
Relevant code:

ScoreIndicator.tsx:

 '@keyframes newScoreUp': {
    '0%': { transform: 'translateY(-110%) rotate(0deg) scale(1.0)' },
    '10%': { opacity: 1, transform: 'translateY(-110%) rotate(0deg) scale(1.2)' },
    '15%, 25%': { opacity: 1, transform: 'translateY(-110%) rotate(-12deg) scale(1.2)' },
    '20%, 30%': { opacity: 1, transform: 'translateY(-110%) rotate(12deg) scale(1.2)' },
    '40%': { opacity: 1, transform: 'translateY(-110%) rotate(0deg) scale(1.0)' },
    '100%': { transform: 'translateY(0)' },
  },

Preview:
https://github.com/rightoneducation/righton-app/assets/79417944/31922372-dcd9-43a4-9115-c1e6396edab2

That looks good @drewjhart!
Could we adjust the animation to be 4 stages instead:

The wiggle lasts 1.5s with a 0.5s pause after
There is a slight move up about half the height ease-in-out 0.3s
The slide down and fade is ease-in 1s
(Optional) the blue score grows and shrinks back 1s

That looks good @drewjhart!
Could we adjust the animation to be 4 stages instead:

The wiggle lasts 1.5s with a 0.5s pause after
There is a slight move up about half the height ease-in-out 0.3s
The slide down and fade is ease-in 1s
(Optional) the blue score grows and shrinks back 1s

Sweet, thanks! I'll make the above adjustments

Hey @amarax, I've updated the animation per your comments. Here's a preview:
https://github.com/rightoneducation/righton-app/assets/79417944/779f5a8d-9279-40e9-a022-4059174f6646

@drewjhart could we add the easing for the translateY transforms for animation phases 2-3? Sorry to be nitpicky haha. If you don't have time we can just ship it as is!

hahaha all good. Could you explain further though? Currently for the green pill we have:
  animation: `
   newScoreUpWiggle 1500ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
   newScoreUpBounce 300ms ease-in-out 1500ms,
   newScoreUpFadeDown 1000ms ease-in-out 1800ms
  `,

Is the effect not showing properly though?


chore(main): release 3.0.1

:robot: I have created a release beep boop
3.0.1 (2024-09-16)
Bug Fixes

duplicate tags in help (#226) (34049a8)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v3.0.1
:sunflower:


Workaround missing navbar @768px for dspace and custom templates

Attribution: Donated by The Library Code
Description
Workaround: missing navbar @768px in dspace and custom templates
Instructions for Reviewers
If the screen is 768px wide, the navbar is not showing.
The treatment of the bootstrap breakpoints in DSpace is inconsistent.
md is defined as 768px <= md < 992px.
The statement
@media screen and (max-width: map-get($grid-breakpoints, md)) {}
which is in some instances used at the moment for referencing break intervals BELOW md, includes the lower md border which should be excluded.
The sass mixin
@include media-breakpoint-down($name, $grid-breakpoints) {}
or function
breakpoint-max($name, $grid-breakpoints)
which are meant to be used in this case, for some unknown reason don't seem to work atm, so the usage of
@media screen and (max-width: map-get($grid-breakpoints, md)-0.02) {}
is a solution for the moment, but this is only a workaround.
The usage of "-0.02" instead of e.g. "-0.01" is a workaround for a rounding error in Safari.
See also:
https://getbootstrap.com/docs/4.6/layout/overview/
Checklist
This checklist provides a reminder of what we are going to look for when reviewing your PR. You need not complete this checklist prior to creating your PR (draft PRs are always welcome). If you are unsure about an item in the checklist, don't hesitate to ask. We're here to help!

[x] My PR is small in size (e.g. less than 1,000 lines of code, not including comments & specs/tests), or I have provided reasons as to why that's not possible.
[x] My PR passes TSLint validation using yarn run lint
[x] My PR doesn't introduce circular dependencies
[x] My PR includes TypeDoc comments for all new (or modified) public methods and classes. It also includes TypeDoc for large or complex private methods.
[x] My PR passes all specs/tests and includes new/updated specs or tests based on the Code Testing Guide.
[x] If my PR includes new, third-party dependencies (in package.json), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation.

@artlowel, my pleasure. Thank you for reviewing.


Can't open remote jupyterhub notebooks.

Type: Bug
Now that '"Jupyter: Specify Jupyter Server for Connections" is deprecated, there seems to be no way to open existing notebooks. Is there some workaround?
VS Code version: Code 1.77.3 (Universal) (704ed70d4fd1c6bd6342c436f1ede30d1cff4710, 2023-04-12T09:19:37.325Z)
OS version: Darwin x64 21.6.0
Modes:
Sandboxed: No

/extJupyter

It looks like this is caused by the Jupyter extension. Please file the issue to the Jupyter extension repository. Make sure to check their issue reporting template and provide them relevant information such as the extension version you're using. See also our issue reporting guidelines for more information.
Happy Coding!


[BUG] condition sentence is always true in rng.js

Before you begin...

[X] I have searched the existing issues
[X] I am not using version 13.x of node  (if so, please upgrade)

Description of the problem

Recipe for reproducing
No response
Additional information
No response
Environment
No response

poolPtr is set to 0 after pool population https://github.com/uuidjs/uuid/blob/1110ae66cc7602793619b51047b59affba93d19a/src/rng.js#L9
and incremented with every invocation of the rng() here https://github.com/uuidjs/uuid/blob/1110ae66cc7602793619b51047b59affba93d19a/src/rng.js#L11
Therefore the expression does NOT always evaluate to true.


Set window title on Wayland

Fixes #1582.
Fixes #1875.

I've decided to refactor the platform-specific window builder a bit to remove pointless duplication. It should work fine on all platforms, however it still needs a sanity check and some testing.

I can confirm no regressions on X11 inside Linux, nice refactoring.


The font of drop down menu above trend charts need to be fixed.

Describe the bug
The drop-down menu which is used to show state-wise active/recovered/deceased charts has a different font from the site theme.
To Reproduce

Go to home page of the website.
Click on drop-down menu of states
See error

Expected behavior
Font should match with that of the website and menu shouldn't have thin white border.
Screenshots

Desktop:

OS: Windows 10 Home
Browser Firefox
Version 77.0.1

This is probably a browser issue

/claim

Hi, tried to take it up but after some debugging found out that both have font-family of 'archia', font-weights are different though. Any suggestions/comments would be helpful. thanks !

Hi, tried to take it up but after some debugging found out that both have font-family of 'archia', font-weights are different though. Any suggestions/comments would be helpful. thanks !

This seems like a browser based issue, I'm trying to find a workaround for it.


Clear keychain storage on first launch

Clear it in the first installation is not a perfect solution.
Is there a way to clean it just before the app removed?

Clear it in the first installation is not a perfect solution.
Is there a way to clean it just before the app removed?

Hi @CasperMok - There is no callbacks when the app is deleted and the app won't even be running when the user chose to delete it. I believe the commonly adopted way to clear-up is on the first launch.


Peer review

I downloaded the project on 17 February at 16:53.
Running & Playing

I was able to download and run the project without any problems
It was fun to play against your AI, it seems that the AI makes good moves and is challenging to beat. Good job!
It could be a nice addition to your game to let the player choose if they want to start, or if they want the AI to start
Also, maybe add some more instructions to the beginning of the game:

First, maybe it's nice to mention that 5 in a row wins, just for completeness
Also, maybe clarify that you don't need to enter anything after Choice: and will be prompted to enter the row and column
later. This of course becomes clear when you try it out, but initially I was unsure if I needed to enter a tuple.

I would also recommend adding row and column numbers at the sides of your board (like in chess). Since the command line game board is quite small, it's hard to count which row and column number I want to play

Code
Overall, your code is clear and nice that you added explanatory docstring comments.
General

I saw you already noticed you still need to account for draw, so that's a good next step
You could also add the option to immediately play again from the command line. This could involve creating functions to reset the board and other progress in the game, e.g. all moves made

UI class

I would recommend that instead of creating new instances of the Board, AI and Logic in the UI class constructor, you take them as arguments, so you would create the UI class like this UI(board, ai, logic). I think this is better practice, if I remember correctly from the ohjelmistotekniikka course material. You can then create the instances in index.py instead
Also, maybe create separate variables or constants as inputs for the minimax (lines 77-78), so these are easily changeable, e.g. when you want to adjust the depth.

Logic class

You can remove the empty init I think, Python should create it automatically

AI class

Your functions here seem very good, and I like that your evaluation considers also open ends, and not only number of own symbols in a row

Tests

All tests passed for me, very nice
Maybe add tasks to run your tests and create coverage reports more easily (see ohjelmistotekniikka course materials), and/or add instructions for which commands to use into your README. Just to make it easier for the next reviewer.
It seems you already noted this, but the next step here should be creating tests for your minimax.

Overall, really good job!

Thank you very much for your insights. I will gladly start working on the issues you raised and they should be solved during this upcoming week.

19.02.2024

Added Row, Column numbers to UI, now visible during play.

Added more detailed instructions at the start of the game.

Fixed redundant code in Logic.py, refactored UI-class code to index.py-file.

TODO: Add draw, Add minimax testing, Add X and 0 both as playable pieces, Add restart directly from command line.

For the final release ended up adding draw + more minimax testing.
Not in final release: Add X and 0 both as playable pieces, Add restart directly from command line.


[Custom app]: error message appear if delete app from new conversation

EPAM AI DIAL chat version
0.17.0
How to reproduce
Precondition:
user created custom application, application was NOT published
Steps:

Click New conversation button
On central part click 'See full list'
Select created but not published application
use context menu of the app and delete app

Actual result
error message is displayed

Application was deleted
Expected result
Application should be deleted without any error messages
Nearest model (or assistant, or app) from recent should be selected for this chat
Confidential information

[X] I confirm that do not share any confidential information

Return the ticket to developer as due to some other cases to be consistent we need to change the expected result:

Now there is no unnecessary error message -> ok

If to delete from the custom app from the current "New conversation", the first model from recent is set -> bug due to changed expected result We need to set the default icon and selected 'Not allowed model'

Be sure to do the same for other New conversations, which are not focused. Expected: default icon and selected only "Not allowed model". Now it should be fixed and it looks in the following way:

Icons for the conversation with history appears after browser refresh -> bug Icon should be reset to default immediately.

For the conversation with history no need to select recent model -> bug

https://github.com/user-attachments/assets/11db130d-b570-4622-8df0-9b7f6a60c09f

Verified on staging env successfully


Update Mailing-Lists.md

Added links to new apereo.org lists.

Thanks

Woohoo! thanks @jimhelwig Keep 'em coming :)


Choosing between Active and Duplicated

To compute gradients with Enzyme on a non-mutable array (like SArray), I need to annotate it as Active. Otherwise, if I do this
using StaticArrays, Enzyme
s = SVector(1.0, 2.0)
ds = zero(s)
Enzyme.autodiff(Reverse, sum, Active, Enzyme.Duplicated(s, ds))

there is no way to recover the derivative because ds doesn't change.
My default setting in DI is to mark arrays as Duplicated. Is there a user-facing function in Enzyme that I could call to pick a better-suited annotation?
Ping @ExpandingMan

For whatever reason this seems to be a much bigger problem for reverse mode.  Forward mode usually seems to "just work" and I don't always understand why.  I think more extensive documentation about all the various mode arguments would be useful, as well as more examples.

yeah we should probably add better docs on, offhand probably see https://enzyme.mit.edu/getting_started/CallingConvention/#types and https://enzyme.mit.edu/index.fcgi/julia/stable/faq/#Mixed-activity
Forward mode doesn't have active so there's never a choice needed

The typical problem is for the generic pullback inside DI. In this line, I pick a return activity according to a very simple rule of thumb
https://github.com/gdalle/DifferentiationInterface.jl/blob/3470e1424d667ffe79112c3b8429c9c0ca0e81e5/DifferentiationInterface/ext/DifferentiationInterfaceEnzymeExt/reverse_onearg.jl#L74
But it is wrong for SArrays, and for mixed activity. I presume Enzyme has some automatic activity guesser inside?

Yup, an internal function Enzyme.Compiler.active_reg_inner. But note that it is definitionally type unstable

Would you be open to documenting it so that it can be used by DI? Type instability is less of an issue thanks to the preparation mechanism, which we only use at the beginning.

sure to docs, but it definitely should remain an internal function since it takes a recursive descent state that might need to be modified as we build out more activity analysis infra and I don't want to force a breaking change for that.

If it is used by DI it will have to be part of the public API. But just being part of the public API doesn't necessarily mean that its behavior has to stay exactly the same. I would be fine with a public function whose docstring says something like
    Enzyme.Compiler.active_reg_inner

Pick the most appropriate activity annotation for a given object and AD mode. This function is subject to change as Enzyme's activity analysis progresses, but its goal will remain the same.

I mean if you're willing to keep up with any changes to the ABI in patch releases (the threshold which I would refer to something as an internal function), I'm happy to put a docstring on it.
I don't expect that to happen often (or frankly much at all), but it's definitely not something that should force an Enzyme breaking change since as we just saw that often requires a whole ecosystem sweep.

What would be the consequences of such ABI changes on the activity analysis? I still don't fully understand what the ABI does ^^ #1345

There's the higher-level Enzyme.guess_activity(::Type, ::Enzyme.Mode) that seems like could be made public without much trouble? https://github.com/EnzymeAD/Enzyme.jl/blob/4d4c546dbafb048f7fe73195925bbd81a8d1105a/src/compiler.jl#L859-L860

Oh right I forgot that existed, yeah that one is fine to make public, since we can still change any of the args to active reg inner with ease

Opened #1955 with a teeny tiny docstring


build android fail

I try to build model for android according to the guide.
when i run ./prepare_libs.sh fail, error message:
➜  android git:(main) ./prepare_libs.sh
+ rustup target add aarch64-linux-android
info: component 'rust-std' for target 'aarch64-linux-android' is up to date
+ mkdir -p build
+ cd build
+ touch config.cmake
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=/Volumes/OSX-HHD/java/android-ndk-r21d/build/cmake/android.toolchain.cmake -DCMAKE_INSTALL_PREFIX=. -DCMAKE_CXX_FLAGS=-O3 -DANDROID_ABI=arm64-v8a -DANDROID_NATIVE_API_LEVEL=android-24 -DANDROID_PLATFORM=android-24 -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON -DANDROID_STL=c++_static -DUSE_HEXAGON_SDK=OFF -DMLC_LLM_INSTALL_STATIC_LIB=ON -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON -DUSE_OPENCL=ON
-- Forbidding undefined symbols in shared library, using -Wl,--no-undefined on platform Android
-- Building for Android
-- Didn't find the path to CCACHE, disabling ccache
-- VTA build with VTA_HW_PATH=/Volumes/OSX-HHD/java/relax/3rdparty/vta-hw
-- Build VTA runtime with target: sim
-- Enabled runtime search for OpenCL library location
-- Android Vulkan_INCLUDE_DIRS=/Volumes/OSX-HHD/java/android-ndk-r21d/sources/third_party/vulkan/src/include
-- Skip finding SPIRV in Android, make sure you only build tvm runtime.
-- Build with contrib.random
-- Build with contrib.sort
-- Build with contrib.hybriddump
-- Git found: /usr/bin/git
-- Found TVM_GIT_COMMIT_HASH=e6c57ab9b2a1812a728fbbaef1b87d064aa6ef41
-- Found TVM_GIT_COMMIT_TIME=2023-05-09 23:15:39 -0700
-- Building with TVM Map...
-- Build with thread support...
-- CLANG_VERSION 9.0
-- Performing Test FILE_PREFIX_MAP_SUPPORTED
-- Performing Test FILE_PREFIX_MAP_SUPPORTED - Failed
-- Added "-fuse-ld=lld" to linker flags -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libgcc_real.a -Wl,--exclude-libs,libatomic.a -static-libstdc++ -Wl,--build-id -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments
-- VERSION: 0.1.98
-- Configuring done
CMake Error at CMakeLists.txt:115 (target_link_libraries):
  Error evaluating generator expression:

    $<LINK_LIBRARY:WHOLE_ARCHIVE,tvm_runtime>

  Expression did not evaluate to a known generator expression

CMake Error at CMakeLists.txt:115 (target_link_libraries):
  Error evaluating generator expression:

    $<LINK_LIBRARY:WHOLE_ARCHIVE,tvm_runtime>

  Expression did not evaluate to a known generator expression

CMake Error at CMakeLists.txt:115 (target_link_libraries):
  Error evaluating generator expression:

    $<LINK_LIBRARY:WHOLE_ARCHIVE,tvm_runtime>

  Expression did not evaluate to a known generator expression

-- Generating done
CMake Generate step failed.  Build files cannot be regenerated correctly.

i move
target_link_libraries(mlc_chat_cli PRIVATE "$<LINK_LIBRARY:WHOLE_ARCHIVE,tvm_runtime>")

to:
target_link_libraries(mlc_chat_cli PRIVATE mlc_llm_static sentencepiece-static tokenizers tvm_runtime)

can build succ.

How can we build cli for android with vulkan?


.hidden-* broken for subpixel display widths between breakpoints.

Consider the following two spans:
Visible on xs, sm and md
Visible from lg on, I can be longer

The idea is that only one span is displayed at any given time. The blue one should be displayed on xs, sm and md viewports, while the red one is for lg and xl viewports.
However, in my laptop, when the width of the viewport is reported to be 991px, both spans are displayed.
Here's the reduced test case: JS Bin
To reproduce, manually change the width of the Output iframe until the reported width reaches 991px.
I think that this happens because Chrome reports a width of 991.4 pixels (I've used Chrome DevTools to check this). And the relevant media queries for Bootstrap's hidden responsive utilities are as follows:
@media (max-width: 991px) {
  .hidden-md-down {
    display: none !important;
  }
}
@media (min-width: 992px) {
  .hidden-lg-up {
    display: none !important;
  }
}

This means that, when the width of the viewport is between 991px and 992px (and mine seems to be 991.4px), none of the media queries above evaluates to true, so both spans end up being displayed.
I know that these pixels are not real pixels, but logical CSS pixels, abstracted by the browser. Despite this, I think that Bootstrap should not depend on how the browser converts real pixels to CSS abstracted pixels in order to behave as expected.
Maybe the media queries can be modified to include decimals?
I.e. @media (max-width: 991.999999px)
Here's the idea: JS Bin
OS: windows 10 home
browser: chrome v 55.0.2883.87 m
hardware: asus ux303u notebook pc
display configuration: 3200 real pixels wide, but screen is OS-zoomed to 250% recommended setting

This has come up in a couple issues I think, but I don't see that there's anything we can do about it. Modifying media queries to use crazy decimals doesn't seem like the ideal answer either as it'll just bring up more questions and potential confusion.
For the time being, I'm thinking this is a won't fix. Ideally this is something that is resolved with browser vendors who have the power to control how their pixels are rendered more than us.

FWIW filed https://github.com/w3c/csswg-drafts/issues/984

note that the CSS Mediaqueries spec now includes this note https://github.com/w3c/csswg-drafts/pull/1083 - now we can unfortunately only wait until browsers add solid support for the more appropriate range context queries...


Seas of blood in Get-DbaBackupHistory

hey Stuart,
can you take a look at this?

-Force fails hard on sql2016 in the lab
Should Force be -Raw instead? unsure, but maybe
We had a user complain about the parameterset error since it's so vague. Any chance you can do manual validation with if and Stop-Function?

Thank you,
Chrissy

It will have been broken for ages......
Raw!=Force
Force forces the raw SQL output via a select * 🤮skipping dbatools aliases
Raw returns the dbatools aliases output with aliases
Put an extra test in for $force so we just dump the stuff out.
Due to my incompetence with git this was fixed in PR #4675

LOL np, thank you 🙇


Added projects to list events

#2492  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @tommylau523 and the rest of your teammates on  Graphite


icichimoku future values missing?

According to https://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:ichimoku_cloud
for icichimoku cloud the values are shifted forward. Where can I get these values, are they discarded?

Hi @bizso09 ,
Thank you for the advice. But, I think the current implementation of the indicators is good.
Ichimoku indicator is plotted 26 periods in the future, you can read about this:
https://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:ichimoku_cloud
http://www.kumotrader.com/ichimoku_wiki/index.php?title=Ichimoku_components#Senkou_Span_A
https://stackoverflow.com/questions/28477222/python-pandas-calculate-ichimoku-chart-components

okay, thanks. I'm new to pandas. Could you explain how I can get the values. My understanding of pd.shift() is that it discards the values or replaces them with nan
In [2]: pd.Series([1,2,3,4,5])
Out[2]:
0    1
1    2
2    3
3    4
4    5
dtype: int64

In [3]: pd.Series([1,2,3,4,5]).shift(2)
Out[3]:
0    NaN
1    NaN
2    1.0
3    2.0
4    3.0
dtype: float64

The most recent values 4, and 5 are now missing

You are right, pd.shift function works in this way.
But, I think Ichimoku implementation need to use pd.shift() because we need to move time forwards 26 periods (normally) into the future.

It seems to me that the period is shifted forward for display reasons. When the indicator is plotted in a trading terminal, it's visually more appealing to see the cloud towards the right. Still, the trader uses these future values to make decisions.
However, when we shift the values in pandas, those values are discarded. Therefore, we don't have access to those values any more. Hence we use stale information, which is incorrect
Therefore, there is clearly a bug in the current implementation.
I have two suggested solutions:

Do not shift the values, as it is purely for cosmetic purpose.
Shift the values, but ensure that the returned series indexes future dates, so that the values can be retrieved after shift.

Hi @bizso09 ,
Finally, I have decided to parameter this idea about the visualization of shifted values. So, the users can decide about this. By default, the function doesn't shift the data.
What do you think?
Thank you.

Hi @bizso09 and Darío,
My fork of 'ta' currently returns two DataFrames of Ichimoku, data up to the current date and the future Span values.  There is one caveat in creating the future Spans and that is the time frame of the data.  Currently it only calculates future Business Days and not any other time frames.  Unfortunately I have not had the time to incorporate other time frames yet, but I could use some help in that department in making it more robust.
Here is an example of my Ichimoku Results, mind the dates... that's some Bokeh code I have to fix.

What do you think?  Suggestions?
Thanks,
KJ


chore(master): release 0.1.1

:robot: I have created a release beep boop
0.1.1 (2023-02-02)
Bug Fixes

change loa representation from string to int (2a9bba0)
error propagating (8872849)
policy config and sensitive values (ddd9a5f)

Documentation

add description to avoid rendering as read-only (86ac467)

Miscellaneous Chores

deps: update everything (1b2b9c4)
deps: update everything (4e9d562)
deps: update everything (7e93d0e)
deps: update goreleaser/goreleaser-action action to v4 (1bef9a9)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/indykite/terraform-provider-indykite/releases/tag/v0.1.1 :sunflower:


Revert "chore: Remove server side filtering flag (#27663)"

This reverts commit eb567c0af5c80711821630c11aa749d9bd1d7856.
Description
This PR moves the server-side filtering feature back to under a feature flag by reverting #27663. We feel that we are not ready to release this feature to the public yet.
PR fixes following issue(s)
Fixes # (issue number)

if no issue exists, please create an issue and ask the maintainers about this first

Media

A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video

Type of change

Please delete options that are not relevant.

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 not work as expected)
Chore (housekeeping or task changes that don't impact user perception)
This change requires a documentation update

Testing

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration.
Delete anything that is not relevant

[ ] Manual
[ ] JUnit
[ ] Jest
[ ] Cypress

Test Plan

Add Testsmith test cases links that relate to this PR

Issues raised during DP testing

Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR)

Checklist:
Dev activity

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] PR is being merged under a feature flag

QA activity:

[ ] Speedbreak features have been covered
[ ] Test plan covers all impacted features and areas of interest
[ ] Test plan has been peer reviewed by project stakeholders and other QA members
[ ] Manually tested functionality on DP
[ ] We had an implementation alignment call with stakeholders post QA Round 2
[ ] Cypress test cases have been added and approved by SDET/manual QA
[ ] Added Test Plan Approved label after Cypress tests were reviewed
[ ] Added Test Plan Approved label after JUnit tests were reviewed

/build-deploy-preview skip-tests=true

/ok-to-test

/build-deploy-preview skip-tests=true

/ok-to-test


[EmbeddingAPI] Add usecase for XWalkView API setOnTouchListener

-Add usecase for XWalkView API setOnTouchListener
-Cover the XWalkActivity and XWalkInitializer two ways
Impacted tests(approved): new 2, update 0, delete 0
Unit test platform: [Android]
Unit test result summary: pass 2, fail 0, block 0
BUG=https://crosswalk-project.org/jira/browse/XWALK-5884

@Shao-Feng please help to review.


hawktracer-to-json generates timestamps in incorrect unit

Chrome tracing format expects timestamps and durations to be in microseconds, but hawktracer-to-json outputs data in nanoseconds. hawktracer-to-json should convert timestamps and durations to microseconds before saving it to json file.

Thank you @brunogouveia :)


run SCION as services on Windows

Currently there seems to be no way to cleanly terminate a SCION service on Windows. Typing Ctrl-C terminates the program without running cleanup code.
This PR allows running SCION as services on Windows. Applications detect automatically whether they were started as a service or as console applications and will react to control request appropriately. If running as console application Ctrl-C is handled correctly.

This change is


memecaptain v1API is gone

The v1 API is gone and while v2 seems to be a thing, my node-fu has been unable to get it working. With the current repo version, Hubot just responds with:

Sorry, I couldn't generate that meme. Unexpected status from memecaption.com: 404

There's been at least one guy who's gotten it to work, but he hasn't published his changes yet (that I can tell).

We are actually moving away from adding scripts to repository in favor of separate npm packages per scripts. We have already stopped accepting new scripts, and will stop accepting pull requests on this repository after hubot 3.0.
See #1113 for details. If you are interested in maintaining this longer term, check npm in case someone already made a package for it, and if not, check out https://hubot.github.com/docs/scripting/ for creating a package of your own.

I just published hubot-meme which updates this script! :)
Feel free to grab it! It should be a drop-in replacement, except for the iron price meme which I didn't get around to figuring out how to upload a new image yet...
@technicalpickles I can take over the deprecation for the old script -- but since it's entirely broken - is it worth submitting a PR w/ new code? (though that doesn't encourage people to leave this repo...)

I also created a PR to use the old script, https://github.com/github/hubot-scripts/pull/1649. I maintain my own copy of the script with custom meme images, but I added the important bits to the PR.

@ericjsilva Do you mind if I integrate your changes into the hubot-meme package I'm working on?

@cycomachead I was going to do it and do a pull request, but if you wanna beat me to it I'm not going to argue :)

I'm probably not going to have a chance for a few hours so if you have free time, go for it!
--
Michael Ball
From my iPhone
michaelballphoto.com

On Jun 24, 2015, at 3:47 PM, Nick Peelman<EMAIL_ADDRESS>wrote:
@cycomachead I was going to do it and do a pull request, but if you wanna beat me to it I'm not going to argue :)
—
Reply to this email directly or view it on GitHub.

:heart: Thanks for taking care of this, y'all!

In lieu of #1649 I'm closing this.
@cycomachead I won't have time until mid-morning tomorrow; but I'm totally fine with doing it and sending you a PR when its done.

@cycomachead @peelman I have no issues with either of you snagging the code and using it wherever you need to. Let me know if you have issues. I'd be glad to help.

I meant to respond to this a long time ago, I took the work from meme captain and removed external services as a dependency to it: https://github.com/phillc/hubot-hosted-memes


untrusted code may only remove documents by ID

Hi--thanks for making this
From step 4, at the end of the video
I have a problem with not being able to remove a party added from from the front-end. says 'untrusted code may only remove documents by ID'
However, if i first remove one party which was from the server code, then I can remove the front-end created party
http://i.imgur.com/96Xqa5r.png

I just noticed I had my ng-app attribute on the body not on the container div within it. I think this might have been the issue.

@alecperkey that sounds strange that this is the problem..
What version of Meteor are you using?
did you compared your code to the tutorial's one with Code Diff button?

It is probably some problem with the ID in the client code on the remove. Probably it is not set correctly (when the party is from the server) and when trying to run remove ({}) - it throws an error on the client. (blind debug is a new hobby - debug without seeing the code).

@alecperkey closing for now. If you can provide more feedback please reopen


Can't use trigger controls for arm

We can't use the triggers for the arm, because we can't set the power value, and for some reason here, the directional values don't work either.

We decided that we can use the bumpers as an alternative and it works fine.

We decided that we can use the bumpers as an alternative and it works fine.


minor edits on writing-the-perfect-description

additional thought:
"what not to include" could be renamed "what's the difference between README and description", and pointing out where they show up (github/napari hub), and who the target audience is.


Uncaught exception occasionally when using timeout

Environment
Knex version: 2.4.0
Database + version: PostgreSQL 14.6 (via postgres:14-alpine docker)
OS: macOS Ventura 13.1
Bug
Our production app is crashing once in a while with an uncaught exception. After investigating, my best guess so far is that some kind of race condition leads to mishandling connection errors when the query has .timeout() (we get lots of random terminating connection due to conflict with recovery in particular).
Trying to get a minimal reproduction, I came up with this:

code
// index.mjs

import knex from "knex";

process.on("uncaughtException", (err) => {
  console.error("*** UNCAUGHT EXCEPTION ***", err);
  process.exit(1);
});

const k = knex({
  client: "pg",
  connection: {
    user: "whatever",
    password: "whatever",
    database: "whatever",
  },
  pool: {
    min: 2,
    max: 40,
    idleTimeoutMillis: 5000,
  },
  asyncStackTraces: true,
});

async function f() {
  try {
    await k
      .raw("do $$ begin perform pg_sleep(0.001); raise exception 'boo'; end $$")
      .timeout(3, { cancel: true });
    console.log("Knex okay!");
  } catch (err) {
    console.error("Knex error!", err.message);
  }
}

await Promise.all([...Array(100000).keys()].map(() => f()));

await k.destroy();

If I start this running and then shut down the postgres docker container, usually I get an uncaught exception:
*** UNCAUGHT EXCEPTION *** error: terminating connection due to administrator command
    at Parser.parseErrorMessage (/Users/luke/vivaa/backend/ppp/node_modules/pg-protocol/dist/parser.js:287:98)
    at Parser.handlePacket (/Users/luke/vivaa/backend/ppp/node_modules/pg-protocol/dist/parser.js:126:29)
    at Parser.parse (/Users/luke/vivaa/backend/ppp/node_modules/pg-protocol/dist/parser.js:39:38)
    at Socket.<anonymous> (/Users/luke/vivaa/backend/ppp/node_modules/pg-protocol/dist/index.js:11:42)
    at Socket.emit (node:events:513:28)
    at addChunk (node:internal/streams/readable:324:12)
    at readableAddChunk (node:internal/streams/readable:297:9)
    at Readable.push (node:internal/streams/readable:234:10)
    at TCP.onStreamRead (node:internal/stream_base_commons:190:23)

I noticed a possibly-related issue in pg-protocol, which the stack trace suggests is involved, but usually these connection errors are handled just fine, with just a rare uncaught exception like the one above.

Released in 2.5.0


Store errors on single changes

Just storage in this PR. Still todo in future PRs:

Deal with response serialization (JsonProtocol)
Bring in an actual soft failure

Looks like there's only test coverage on ZoneDiscoveryError and HighValueDomain error in the SingleChangeError from method, so coverage of that file is only 13.97%


Refactor runtime module

Describe what this PR does / why we need it
For support k0s、k3s、k8s runtime. We need to abstract a runtime Interface and use different runtime driver to implement it.
In past time, the kubeadmRuntime is directly implement in runtime.go. but for supporting k0s、k3s、k8s and so on. we need to move the codes to sub module.
For this time, we can implement different module in sub pkg such as Kubernetes/k0s/k3s in runtime module. And use install Metadata to distinguish them in any where.
Does this pull request fix one issue?
#1504

Describe how you did it
Describe how to verify it
Special notes for reviews
@kakaZhou719 @justadogistaken please review the runtime package carefully and give me some advise.

@starComingup There are too many error message modification("error" => "failed to") to make us feel hard to concentrate on key changes of this feature. Maybe divide error message modification and feature into different pr next time.

@justadogistaken When I use CONTRIBUTING rules:Muti commits need to rebase latest commit, there appeared too many commits in this branch. It made me so tired to resolve these merge/rebase problem every time.
Actually, my work is concentrate on refactoring the runtime module. I wonder if there exist a proper method for me to contribute code.

@justadogistaken When I use CONTRIBUTING rules:Muti commits need to rebase latest commit, there appeared too many commits in this branch. It made me so tired to resolve these merge/rebase problem every time. Actually, my work is concentrate on refactoring the runtime module. I wonder if there exist a proper method for me to contribute code.

@starComingup
I checked the CONTRIBUTING, and I think it has no problem. We just didn't mention the scenario that sealer/main changes while developers  are working on new feature. And I assume that we don't need to cover all cases, because it dues to how developers leverage git.
I found you pr contains lots of commits from others people, I think you should git fetch upstream and then git rebase upstream/main to make your commit ahead of main.(see git rebase man page / talk to me see what I can do to get you out of here).
Conflcts emerging is super natural case when we are developing a project cooperatively. It happens before you merge the pr. And I think it's a good change to learn more about git.

@justadogistaken When I use CONTRIBUTING rules:Muti commits need to rebase latest commit, there appeared too many commits in this branch. It made me so tired to resolve these merge/rebase problem every time. Actually, my work is concentrate on refactoring the runtime module. I wonder if there exist a proper method for me to contribute code.

@starComingup I checked the CONTRIBUTING, and I think it has no problem. We just didn't mention the scenario that sealer/main changes while developers are working on new feature. And I assume that we don't need to cover all cases, because it dues to how developers leverage git. I found your pr contains lots of commits from others people, I think you should git fetch upstream and then git rebase upstream/main to make your commit ahead of main.(see git rebase man page / talk to me see what I can do to get you out of here). Conflcts emerging is super natural case when we are developing a project cooperatively. It happens before you merge the pr. And I think it's a good change to learn more about git.

@justadogistaken thanks for help, now i think resolve the conflicts is also a step in git skill learning. I would like to resolve these complex conflicts one by one.

Codecov Report

Merging #1578 (8ca258a) into main (a9919aa) will increase coverage by 0.22%.
The diff coverage is 33.33%.

:exclamation: Current head 8ca258a differs from pull request most recent head fbc8b8e. Consider uploading reports for the commit fbc8b8e to get more accurate results

@@            Coverage Diff             @@
##             main    #1578      +/-   ##
==========================================
+ Coverage   11.19%   11.41%   +0.22%
==========================================
  Files          88       89       +1
  Lines        8067     8067
==========================================
+ Hits          903      921      +18
+ Misses       7052     7031      -21
- Partials      112      115       +3

Impacted Files
Coverage Δ

pkg/runtime/kubernetes/init.go
0.00% <ø> (ø)

pkg/runtime/kubernetes/join_masters.go
0.00% <0.00%> (ø)

pkg/runtime/kubernetes/join_nodes.go
0.00% <ø> (ø)

pkg/runtime/kubernetes/kubeadm.go
0.00% <ø> (ø)

pkg/runtime/kubernetes/kubeadm_config.go
53.22% <ø> (ø)

pkg/runtime/kubernetes/kubeadm_runtime.go
0.00% <0.00%> (ø)

pkg/runtime/kubernetes/registry.go
0.00% <ø> (ø)

pkg/runtime/kubernetes/reset.go
0.00% <ø> (ø)

pkg/runtime/kubernetes/runtime.go
0.00% <0.00%> (ø)

pkg/runtime/kubernetes/update_cert.go
0.00% <ø> (ø)

... and 4 more

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 a9919aa...fbc8b8e. Read the comment docs.

@starComingup Could you help rename package "applydriver" to "driver"? It seems to be duplicated.

Need help! I don't know what happen in my test check!

@kakaZhou719 @Stevent-fei It seems we have hard limitation on test coverage? @starComingup does not modify the sealer/utlils/yaml and sealer/version

@kakaZhou719 @Stevent-fei It seems we have hard limitation on test coverage? @starComingup does not modify the sealer/utlils/yaml and sealer/version

I found the failed unit tests. TestVersion_Version. It seems when I modify the utils kubeVersion function but I forget to modify the relative unit test! cause by []string is not deepequal to type KubeVersion []string.

@kakaZhou719 @Stevent-fei It seems we have hard limitation on test coverage? @starComingup does not modify the sealer/utlils/yaml and sealer/version

I found the failed unit tests. TestVersion_Version. It seems when I modify the utils kubeVersion function but I forget to modify the relative unit test! cause by []string is not deepequal to type KubeVersion []string.

fix it and rerun this job?

L G T M, if you have tested it already.

@kakaZhou719 I'm good with those changes, how about you?

LGTM


[server] Optimize metric collection in read path

Summary, imperative, start upper case, don't end with a period

Currently there are are (~20 + 2x number of keys if K/V profiling are enabled) look up of per store metrics in read path.
This PR  reduces the those look ups to just 1 per request regardless the number of keys in a batch by inverting the AggServerHttpRequestStats and look up ServerHttpRequestStats only once during read.
Also removed optionals objects creation during metric collections when K/V profiling is enabled.
How was this PR tested?

CI build
Does this PR introduce any user-facing changes?

[x ] No. You can skip the rest of this section.
[ ] Yes. Make sure to explain your proposed changes and call out the behavior change.

I have enabled the entire suite default to exercise the code path in CI, but for actual validation I do not think there is any test! I will add some tests for it.

Looks like the CI has been failing in the last several commits. Were you able to repro that?


Registry server: slow listing of artifacts under revisioned resources in large collections.

Quoting a benchmark result listed in #1068, listing of spec artifacts can be significantly slowed when there are large numbers of specs:
BenchmarkListArtifacts/ListApiArtifacts-16         	       3	  435709811 ns/op
BenchmarkListArtifacts/ListVersionArtifacts-16     	       3	  455032674 ns/op
BenchmarkListArtifacts/ListSpecArtifacts-16        	       1<PHONE_NUMBER>8 ns/op
BenchmarkListArtifacts/ListDeploymentArtifacts-16  	       1<PHONE_NUMBER>4 ns/op

This is with the N=1000 test set running with a server that already has a large collection of API specs (~13000).
The impact of this is that it is difficult to get or delete spec artifacts across a collection, eg.
registry get apis/-/versions/-/specs/-/artifacts/summary -o yaml or registry delete apis/-/versions/-/specs/-/artifacts/vocabulary. Both of these are uncomfortably slow for large registries.

Here are results of an experiment with the same systems and database contents as above (and N = 1000), but with an index on specs:
BenchmarkListArtifacts/ListApiArtifacts-16         	       2	 538254651 ns/op
BenchmarkListArtifacts/ListVersionArtifacts-16     	       2	 502344593 ns/op
BenchmarkListArtifacts/ListSpecArtifacts-16        	       2	 815581358 ns/op
BenchmarkListArtifacts/ListDeploymentArtifacts-16  	       1<PHONE_NUMBER>1 ns/op

The added index was a composite index that uniquely identified specs by project/api/version/spec ids. It's called "spec" in the code below:
// Spec is the storage-side representation of a spec.
type Spec struct {
	Key                string    `gorm:"primaryKey"`
	ProjectID          string    `gorm:"index:spec"` // Uniquely identifies a project.
	ApiID              string    `gorm:"index:spec"` // Uniquely identifies an api within a project.
	VersionID          string    `gorm:"index:spec"` // Uniquely identifies a version within an api.
	SpecID             string    `gorm:"index:spec"` // Uniquely identifies a spec within a version.
	RevisionID         string    // Uniquely identifies a revision of a spec.
	...
}

Here's another run with the same setup. There's minor variation but the pattern looks good:
BenchmarkListArtifacts/ListApiArtifacts-16         	       3	 422234958 ns/op
BenchmarkListArtifacts/ListVersionArtifacts-16     	       3	 658141855 ns/op
BenchmarkListArtifacts/ListSpecArtifacts-16        	       2	 689927880 ns/op
BenchmarkListArtifacts/ListDeploymentArtifacts-16  	       1<PHONE_NUMBER>8 ns/op

Note that no index was added for deployments.

Two more runs after adding a similar index to deployments:
BenchmarkListArtifacts/ListApiArtifacts-16         	       3	 436187677 ns/op
BenchmarkListArtifacts/ListVersionArtifacts-16     	       3	 490201131 ns/op
BenchmarkListArtifacts/ListSpecArtifacts-16        	       2	 702612848 ns/op
BenchmarkListArtifacts/ListDeploymentArtifacts-16  	       2	 641766582 ns/op

...

BenchmarkListArtifacts/ListApiArtifacts-16         	       3	 402862253 ns/op
BenchmarkListArtifacts/ListVersionArtifacts-16     	       3	 526761461 ns/op
BenchmarkListArtifacts/ListSpecArtifacts-16        	       2	 721047986 ns/op
BenchmarkListArtifacts/ListDeploymentArtifacts-16  	       2	 669753893 ns/op

I wonder how things would look with simple individual indexes just on the high cardinality columns?

This is with just an api_id index on specs and deployments.
This first run was after I had created the indexes and run for a while, but I deleted the api_id index on specs and benchmarked:
BenchmarkListArtifacts/ListApiArtifacts-16         	       2	 587547180 ns/op
BenchmarkListArtifacts/ListVersionArtifacts-16     	       2	 551491554 ns/op
BenchmarkListArtifacts/ListSpecArtifacts-16        	       1<PHONE_NUMBER>2 ns/op
BenchmarkListArtifacts/ListDeploymentArtifacts-16  	       2	 560716006 ns/op

Then I recreated the index with registry rpc admin migrate-database --follow. This returned immediately, but I think the index might have still been building. The immediate next benchmark was still slow, but the following two were good.
BenchmarkListArtifacts/ListApiArtifacts-16         	       2	 581270234 ns/op
BenchmarkListArtifacts/ListVersionArtifacts-16     	       2	 569786582 ns/op
BenchmarkListArtifacts/ListSpecArtifacts-16        	       1<PHONE_NUMBER>6 ns/op
BenchmarkListArtifacts/ListDeploymentArtifacts-16  	       2	 547090102 ns/op

BenchmarkListArtifacts/ListApiArtifacts-16         	       2	 530105451 ns/op
BenchmarkListArtifacts/ListVersionArtifacts-16     	       2	 841461730 ns/op
BenchmarkListArtifacts/ListSpecArtifacts-16        	       2	 590193080 ns/op
BenchmarkListArtifacts/ListDeploymentArtifacts-16  	       2	 556028792 ns/op

BenchmarkListArtifacts/ListApiArtifacts-16         	       2	 648811879 ns/op
BenchmarkListArtifacts/ListVersionArtifacts-16     	       3	 466749284 ns/op
BenchmarkListArtifacts/ListSpecArtifacts-16        	       2	 615581775 ns/op
BenchmarkListArtifacts/ListDeploymentArtifacts-16  	       2	 557018492 ns/op

This was with 8800 specs in the database.

SGTM - I'll update my PR to add indexes on api_id and if you want to go further / evaluate more, please do.
Also, let's talk about (or note in a new issue) how adding more column indexes would help updates - I think updates are using primary keys (the resource names) that are already indexed, but that could be missing something.

Also, let's talk about (or note in a new issue) how adding more column indexes would help updates - I think updates are using primary keys (the resource names) that are already indexed, but that could be missing something.

I think we're good. I wasn't thinking about the name being used as primary key.

Also, can you show me (or write a note about) how to use explain, etc to evaluate these queries? I'm guessing that it invovles (but I haven't figured out how to) configuring gorm to write the queries that it's making and then running them directly against Postgres.

I believe you can just set our debug to trace level to get the SQL. Then, run the explain against postgres using pgadmin or whatever tool.

just set our debug to trace level

I couldn't figure out how to do that (what am I missing?)
However, I was able log queries by setting the slow operation threshold very low. When I did that, I got this for registry get projects/menagerie/locations/global/apis/-/versions/-/specs/-/artifacts/vocabulary
SELECT artifacts.*,revision_create_time FROM "artifacts" join (SELECT s.* FROM specs s LEFT JOIN specs s2
		ON s.project_id = s2.project_id
		AND s.api_id = s2.api_id
		AND s.version_id = s2.version_id
		AND s.spec_id = s2.spec_id
		AND s.revision_create_time < s2.revision_create_time WHERE s2.key IS NULL) latest
			ON artifacts.project_id = latest.project_id
			AND artifacts.api_id = latest.api_id
			AND artifacts.version_id = latest.version_id
			AND artifacts.spec_id = latest.spec_id
			AND artifacts.revision_id = latest.revision_id WHERE artifacts.project_id = 'menagerie' AND artifacts.deployment_id = '' ORDER BY project_id,api_id,version_id,spec_id,deployment_id,revision_create_time desc,artifact_id LIMIT 1000 OFFSET 700

Running explain on that gave me this:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 Limit  (cost=1168.98..1168.99 rows=1 width=276)
   ->  Sort  (cost=1168.98..1168.98 rows=1 width=276)
         Sort Key: artifacts.api_id, artifacts.version_id, artifacts.spec_id, s.revision_create_time DESC, artifacts.artifact_id
         ->  Nested Loop Left Join  (cost=859.74..1168.97 rows=1 width=276)
               Filter: (s2.key IS NULL)
               ->  Hash Join  (cost=859.46..1165.71 rows=1 width=333)
                     Hash Cond: ((artifacts.api_id = s.api_id) AND (artifacts.version_id = s.version_id) AND (artifacts.spec_id = s.spec_id) AND (artifacts.revision_id = s.revision_id))
                     ->  Seq Scan on artifacts  (cost=0.00..284.13 rows=1474 width=268)
                           Filter: ((project_id = 'menagerie'::text) AND (deployment_id = ''::text))
                     ->  Hash  (cost=837.50..837.50 rows=1098 width=74)
                           ->  Seq Scan on specs s  (cost=0.00..837.50 rows=1098 width=74)
                                 Filter: (project_id = 'menagerie'::text)
               ->  Index Scan using idx_specs_api_id on specs s2  (cost=0.28..3.25 rows=1 width=179)
                     Index Cond: (api_id = s.api_id)
                     Filter: ((project_id = 'menagerie'::text) AND (s.revision_create_time < revision_create_time) AND (s.project_id = project_id) AND (s.version_id = version_id) AND (s.spec_id = spec_id))
(15 rows)

Then I dropped the index and reran explain, getting this:
                                                                                QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 Limit  (cost=2027.93..2027.94 rows=1 width=276)
   ->  Sort  (cost=2027.92..2027.93 rows=1 width=276)
         Sort Key: artifacts.api_id, artifacts.version_id, artifacts.spec_id, s.revision_create_time DESC, artifacts.artifact_id
         ->  Nested Loop Left Join  (cost=859.46..2027.91 rows=1 width=276)
               Join Filter: ((s.revision_create_time < s2.revision_create_time) AND (s.project_id = s2.project_id) AND (s.api_id = s2.api_id) AND (s.version_id = s2.version_id) AND (s.spec_id = s2.spec_id))
               Filter: (s2.key IS NULL)
               ->  Hash Join  (cost=859.46..1165.71 rows=1 width=333)
                     Hash Cond: ((artifacts.api_id = s.api_id) AND (artifacts.version_id = s.version_id) AND (artifacts.spec_id = s.spec_id) AND (artifacts.revision_id = s.revision_id))
                     ->  Seq Scan on artifacts  (cost=0.00..284.13 rows=1474 width=268)
                           Filter: ((project_id = 'menagerie'::text) AND (deployment_id = ''::text))
                     ->  Hash  (cost=837.50..837.50 rows=1098 width=74)
                           ->  Seq Scan on specs s  (cost=0.00..837.50 rows=1098 width=74)
                                 Filter: (project_id = 'menagerie'::text)
               ->  Seq Scan on specs s2  (cost=0.00..837.50 rows=1098 width=179)
                     Filter: (project_id = 'menagerie'::text)
(15 rows)

Thanks, that's interesting. We seemed to have addressed the specs s2 scan, but we're left with this scan:
                           ->  Seq Scan on specs s  (cost=0.00..837.50 rows=1098 width=74)
                                 Filter: (project_id = 'menagerie'::text)

Did you happen to attempt an explain on your original composite index?

First: It turns out that adding sort won't help since b-tree is the default index type in postgres (and the only index type in sqlite3).
Second: I have a new PR that significantly improves on our benchmarks. See: #1095

This all LGTM! Closing since the original problem is fixed.


Supporting both podman and docker for docker-compose.yml

To have more flexibility for the build, try to unify the logic with Makefile and shell script as an experiment.
Stop using docker-compose.yml.
Because

We can not use variable in the file.
We want to support both podman and docker for the accessibility from developers, and show multiarch test cases with reproductive ways to people as much as possible.

In Makefile, if podman is installed, set podman to DOCKER, otherwise set docker to DOCKER.
For how to install podman, maybe I can refer below case.
https://github.com/junaruga/multiarch-rhel-experiment/blob/master/.travis.yml
- sourceline: 'ppa:projectatomic/ppa'

How about podman-compose instead 😉?

Yeah, that's good idea. Right now I am waiting this ticket will be fixed to run podman on Travis CI.
https://github.com/containers/libpod/issues/3679

It's good to watch ubuntu tags in podman issues page.
https://github.com/containers/libpod/issues?q=is%3Aissue+is%3Aopen+label%3Aubuntu

As the repository supports both podman and docker removing docker-compose.yml by #229 and #231, I would close the issue ticket. I think removing docker-compose dependency simplifies the development workflow.


feat: add async support to babel-jest

Summary
Why not 🙂 Only transformer we ship in Jest.
/cc @nicolo-ribaudo

Test plan
Not sure... I've verified via some inserted console.logs that it works. Not sure how to write a test. (marked as draft due to this)

Codecov Report

Merging #11192 (d052f81) into master (dd13096) will decrease coverage by 0.07%.
The diff coverage is 23.68%.

@@            Coverage Diff             @@
##           master   #11192      +/-   ##
==========================================
- Coverage   64.28%   64.21%   -0.08%
==========================================
  Files         307      308       +1
  Lines       13458    13480      +22
  Branches     3285     3286       +1
==========================================
+ Hits         8652     8656       +4
- Misses       4100     4117      +17
- Partials      706      707       +1

Impacted Files
Coverage Δ

packages/babel-jest/src/loadBabelConfig.ts
0.00% <0.00%> (ø)

packages/babel-jest/src/index.ts
44.82% <24.32%> (-9.23%)
:arrow_down:

packages/expect/src/utils.ts
94.83% <0.00%> (-1.30%)
:arrow_down:

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 dd13096...d052f81. Read the comment docs.


Need to further evaluate how KPI for resilience can be measured

Need to further evaluate how KPI for resilience can be measured
Originally posted by @remyb2canada in https://github.com/sara-sabr/ITStrategy/issues/44#issuecomment-509340891

PR #78 is tackling this I think


Allows for overriding the title

Note that I updated one of the test case allows passing milliseconds from epoch because when I ran it, I was getting 1969-12-31T19:00:00-05:00.
Resolves #26

Thanks! Published as 4.1.0.

Great. Thank you!
On Wednesday, 18 May 2016, Andrey Popp<EMAIL_ADDRESS>wrote:

Thanks! Published as 4.1.0.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/andreypopp/react-time/pull/27#issuecomment-219975046


Deprecate SwapAxis

We have swapaxes
https://mxnet.incubator.apache.org/api/python/ndarray/ndarray.html#mxnet.ndarray.swapaxes
and
https://mxnet.incubator.apache.org/api/python/ndarray/ndarray.html#mxnet.ndarray.SwapAxis
Both do the same job making it redundant!

@mxnet-label-bot add [Operator, Doc]

@sandeep-krishnamurthy @apeforest @anirudh2290 What do you guys think?


R.prepend and R.append should work for strings too (String → String → String)

R.concat does work for strings.

R.concat(s) or R.concat(R.__, s) could be used instead, but I think R.prepend(s) and R.append(s) just sound better.

At least for me, they map more naturally to what I wanna do. For me, curried R.concat is less readable than equivalent arrow function.

This, a few hours ago I spent some minutes looking for the right function for my module and the first choice in my head was to look for R.append, and then I saw that there's no such thing for strings and had to spend a few minutes remembering that it's actually called R.concat here and that it's actually inverted, so I had to invert the logic and direction of my pipes.

I make no guarantees that it would be approved, but I would be happy to see a PR for this.

Just saying, changing append definition to list.concat([el]), ie. using .concat instead of _concat does enable it to concat strings due to JS's weak typing (I'm not saying that it's a good idea, I don't know). Found no similar trick for prepend.

R.flip(R.concat) is a nice way of giving you both append and prepend equivalents


[Bug] Large integer features will lost precision after graph construction

Phenomena:
If using large integer numbers (~67M) as node features, the graph construction process will convert them as float32 and store as float32 tensor. But the float32 losses precision, and when cast the float32 back to int, it will generate duplicated integer.
Impact:
Users want to add original node ids as one of the node features, and use them for customized purposes. The lost of precision will cause ID duplications, hence resulting errors.
How to reproduce

Create a graph data with more than 60M nodes, and set integer node id as one of the node features.
Run gconstruction.
In the partition folder, e.g., part0, read in the node_feat.dgl file with dgl.data.util.load_tensors.
Extract the node feature with node ids, compare the feature shape against its unique values shape.
The two shapes are different.

### Tasks
- [ ] https://github.com/awslabs/graphstorm/issues/706
- [ ] Fix for GConstruct

Can we close this issue? @zhjwy9343


Module parse failes on css

Hi, I am using your module with webpack.
I get an error while compiling the components:

It seems like the styles urls are targeting the scss files instead of css files causing it to throw an error.
Is there a simple fix for it?
In my opinion the css files should be at least generated on postinstall and the components should be targeting the .css files

Hi!
In every starter/skeleton/template that I tested there is always sass-loader.
This library is tested both with systemjs, angular-cli and webpack. Also I created a working example based on the template by AngularClass.
I didn't consider your scenario, but if you want I can test it. To do that, I need a working template to use it as a starting point. For instance, your package.json and all your webpack's config files.
PS: honestly I don't consider this as really important, but if you want I can try to work on it.
Question: why not sass? Is there a real reason?

My project is using this seed:
https://github.com/qdouble/angular-webpack2-starter
It also uses sass, and I am using it in my project.
The thing is the scss files are precompiled to css and the components are refrencing the css file.
I think this is a better way to support users that don't use sass or users that uses sass but not on runtime compilation (like me).
Currently I cannot use this module because of this problem.

@kadosh1000 which branch of https://github.com/qdouble/angular-webpack2-starter are you using? Master branch or another one?

@Ks89  I have taken the master branch about two months ago,
but i guess it haven't changes too much since, so I think the current master should be just fine.

Ok, I'm doing some experiments. I'll update this issue in a couple of days. Please by patient.

Hi! I created a fork of angular-webpack2-starter and I applied these modifications https://github.com/Ks89/angular-webpack2-starter-demo-with-angular-modal-gallery/commit/987d52e5dbb5482db54099b9c7f8b4c7829cef3f
It is working (probably not everything, since universal isn't fully supported right now).
PS: I cannot reproduce your bug with the latest version of the starter by qdouble.
Could you retry?

@kadosh1000 are there some news? Did you fix the problem?  :)
Can I close this issue? XD

@Ks89
Hi unfortunately I was looking for a solution that will include AOT compilation. You can close this issue


Adds option for NonDistExperiment to return all metrics

Previously only returned MSE despite calculating multiple metrics
Default behavior will be to only return MSE to avoid breaking changes
Change in non_dist_train.py to return all the calculated metrics

Hi Micah! This change is to return more metrics from running experiment.test().
It currently only returns the MSE, which I think is silly since it calculates a lot more metrics like SSIM and PSNR. I think it would be useful to keep track of these other metrics while we try out different combinations of hyper parameters.
This change would also allow us to later add other metrics and expose them so we can record it.
Please let me know if you have any concerns or comments.


ActiveAdmin.register 'model', :as => "something_else" incompletely implemented

The create/update button still uses the model name

The BreadcrumbHelper::breadcrumb_links doesn't convert the parent 'something_else' to 'model' before looking up the record id.

I put this in my .../app/admin/active_admin/view_helpers.rb to deal with the first issue:
module ActiveAdmin
  class FormBuilder

    def commit_button(*args)
      options = args.extract_options!
      options[:label] ||= (self.object.persisted? ? 'Update ' : 'Create ') + AAViewHelpers.humanize(self.object_name)
      content = with_new_form_buffer{ super(*args,options) }
      form_buffers.last << content.html_safe
    end

  end
end

class AAViewHelpers
  class << self
    include ActiveSupport::Inflector
    include ActionView::Helpers::FormOptionsHelper
    include ActionView::Helpers::FormTagHelper
    include ActionView::Helpers::JavaScriptHelper
  end
end

Hmm I'll take a look at this one. Thanks for reporting!

This also affects renaming breadcrumb links with display_name on the model.


mention crate in Vega-Lite ecosystem

Once crate has reached good enough level, add it to https://vega.github.io/vega-lite/ecosystem.html

Precisely, I only found out about this crate via https://www.reddit.com/r/rust/comments/f8ero2/plotly_for_rust/

Should we :

mention vega_lite_3 (or vega_lie_4) now and then update when procyon will be more user friendly ?
advertise procyon right now with the disclaimer there is work in progress ?

I vote for

mention vega_lite_3 (or vega_lie_4) now and then update when procyon will be more user friendly

I will update the above PR when procyon is ready so closing this issue.


Feature Request: Add Azure Open AI as an evals option

Would be a great way to spend some of our credits!

This is very close to being live; we have an active branch where this is working and it should be merged sometime this week or next!

Apologies for not closing the loop here -- it's now possible to do this!
You just need to add your Azure endpoint as an "external model" in the project settings. Once you've done that, it'll be available to run comparisons with.

awesome, thanks kyle!
On Wed, Apr 3, 2024 at 1:05 AM Kyle Corbitt @.***>
wrote:

Apologies for not closing the loop here -- it's now possible to do this!
You just need to add your Azure endpoint as an "external model" in the
project settings. Once you've done that, it'll be available to run
comparisons with.
Screenshot.2024-04-02.at.10.04.35.PM.png (view on web)
https://github.com/OpenPipe/OpenPipe/assets/176426/db2d6ce1-b168-4b43-a848-7a7c6a12fcdc
—
Reply to this email directly, view it on GitHub
https://github.com/OpenPipe/OpenPipe/issues/656#issuecomment-2033536639,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANKQKKK7XLCJR5557JRA7Y3Y3OEZVAVCNFSM6AAAAABEDH3ZYSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMZTGUZTMNRTHE
.
You are receiving this because you authored the thread.Message ID:
@.***>


don't use tiny-skia's default features

this adds an unnecessary dependency on the png crate.

Thanks!


Add option to apply config changes to existing endpoints after 'cilium config policy=enabled'

Running 'cilium config policy=enabled' does not apply to existing endpoints. However, this is by design but did cause a bit of confusion on my side because I had a different expectation.
To allow changing the policy config after endpoints are created add a '--regenerate-endpoints' option to 'config policy' so that the policy is regenerated and applied to all endpoints.
Also adding a note in 'config --list-options' would help clarify the expected behavior.

This should be done now; when running cilium config PolicyEnforcement=enabled, the endpoint configuration is changed accordingly. I think this can be closed. @jrfastab please confirm.

LGTM.