Add type for onOpenAutoFocus to ContextMenu.Content

Bug report
The ContextMenu.Context element has a (useful) prop, onOpenAutoFocus, that fires when the context menu opens. This prop works but is not included in the component's type.
Reproducible example
CodeSandbox
Your environment

Software
Name(s)
Version

Radix Package(s)
@radix-ui/react-context-menu
0.0.10

Hey Steve! Fancy seeing you here 🙂
So, this was actually on purpose that we removed the onOpenAutoFocus prop from the various menu components.
That prop is here so you can essentially prevent default our default focus management behaviour on open.
It is a useful prop for more generic things like Dialog or Popover as you may want to focus something specific initially.
However, for menus we were of the opinion that it wasn't needed here, or even potentially harmful to override our behaviour.
Your sandbox is 404'ing so I can't see what you were trying to do, but maybe you can explain and I can get convinced as to why we should still expose anyway.
PS: I'm conscious that it is working anyway in JS-land, so if anything we should omit the prop if we don't think it's useful. But yeah curious if there's a use case we didn't see there.

Heya 👋 I've updated the CodeSandbox link to the correct URL, though the example only shows the typing issue. Really I just need to know when a menu has opened so that I can set its content dynamically.
Maybe it's easier if I describe my use case for such a prop, and then you can advise on whether a different part of the API is a better alternative?
I'm working on a project that where most of the action happens in one big SVG (the "canvas"). Rather than wrapping elements of that SVG tree with triggers (which is how I understand this component to normally work), I would prefer to use just one trigger that wraps the whole SVG. The app already knows which canvas items are selected or hovered; so I can set the menu's content based on that information.

function ContextMenuContent() {
  const hoveredNode = useSelector(s => s.data.hoveredNode)

  return (

    </StyledContent>
  )
}

However, if I can avoid it, I'd rather not be changing the content of the menu as a user is hovering around the app while the menu is closed. And I might want to do cancel or disable other things when the menu opens. That's all easy to do as long as I know the state of the menu, which brings me to the onOpenAutoFocus prop as a way (the only way?) to know when a menu has opened.

Thanks for explaining the use case. It's clearer now.
So basically you are using these handlers as a way to know when the menu opens/closes because ContextMenu isn't controllable.
The reason we haven't made this one controllable is because it doesn't really make sense as you can't really control it open as it's not just the open state but also "where" it opens. That said, it's making me wonder whether we should at least expose an onOpenChange callback, even you can't control it, you may want to know when it updated internally.
That being said…

However, if I can avoid it, I'd rather not be changing the content of the menu as a user is hovering around the app while the menu is closed.

When the menu is closed, we don't render anything, so I don't think it would be an issue. What are you worried about in this case? You can update your items as you hover, open the react devtools and you'll see that the items aren't even in the react tree.

I've tried the above and it seems that there is no issue doing so because it's not rendering them anyway.
But in case you are still wary, you can even do this:
<ContextMenuTrigger>

 setActiveNodeId(1)} />

 setActiveNodeId(2)} />
</ContextMenuTrigger>

And update your menu content using the active id, then it literally isn't doing anything on hover…

Thanks Benoit, this sounds like enough to get me going! Having some onOpen events sounds useful too.

No problem Steve!

Rather than wrapping elements of that SVG tree with triggers (which is how I understand this component to normally work), I would prefer to use just one trigger that wraps the whole SVG.

On this, I am curious why you would prefer to go for a single instance and having to change the content dynamically rather than multiple instances?
Here's a quick sandbox showing multiple instances: https://codesandbox.io/s/contextmenu-svg-vuw8r?file=/src/App.js
I imagine that in an app like yours you'd already have components for each type of node (like the circle one, the "branch" between 2 circles, etc) so each menu would be colocated with its component which IMO makes the whole thing a lot easier to think about.
That's one of the reasons we have designed these APIs around component reuse rather than instance re-use so I'm curious what your train of thought was here in terms of wanting to avoid that 👍

Thats a good reference! I'll investigate. Thanks for the support. 🙇♂

Closing this as I don't think we would consider adding that prop and have provided other alternatives to the problem you were dealing with.


sql: inverted indexes cannot be partitioned (known limitation)

We learned a few months ago that the intersection of inverted indexes and partitioning would be valuable to customers like S who’s tenants each place different importance on fields within a JSONB column. Because no one field is important to all tenants, we cannot extract any fields to build a computed column with an index, something which can be geo-partitioned.
Similarly, while developers will be able to partition the underlying tables which contain spatial data in 20.2, they will not be able to partition the indexes used to query spatial data. This will mean that developers who hope to use both spatial data and geo-partitioning will suffer from poor performance.

Thanks for recording this, @awoods187. These need to be called out clearly as limitations for both partitioning and the sql features (json, spatial).


Hope to be mobile friendly

Various events on the mobile terminal seem to be problematic and cannot be executed correctly. I hope there is a way to use the mobile terminal.

@inksnowhailong
That's a good idea. It's hard to tell you the exact schedule, but I'll put it on the to-do list.


Refactor/logic limits type

Implements #784 as discussed in axone-protocol/discussions/2.

The properties max_size, max_result_count, max_user_output_size, and max_variables in the Limits message now use uint64 instead of cosmossdk.io/math.Uint. Similarly, the limit property in the QueryServiceAskRequest message has been updated to use uint64.
Additionally, querying with a limit higher than MaxResultCount no longer results in an error. This ensures that clients still receive results while automatically adhering to the API’s limits, providing a smooth and efficient user experience.

An additional benefit is the reduced gas consumption, as the parameters being stored are smaller (see e2e tests).
Tasks

[x] update limits type to use int64.
[ ] update documentation
[ ] implement module migration

Summary by CodeRabbit
Release Notes

New Features

Enhanced parameter handling by changing types from string to uint64 for several limits, improving clarity and functionality.
Simplified query limit handling in the QueryServiceAskRequest message.

Bug Fixes

Adjusted expected gas_used values across various feature tests, indicating optimizations in resource consumption.

Documentation

Updated comments for clarity on the behavior of limit parameters.

Chores

Removed unnecessary dependencies on the math package, streamlining numeric operations across the codebase.

@dependabot pause

@coderabbitai pause


[DNM] modules: Facilitate the use of nrfx drivers

This set of commits is intended to facilitate the use of nrfx drivers, and hence nRF peripherals, in Zephyr applications, especially in cases when there are no corresponding Zephyr driver shims.
Requires https://github.com/zephyrproject-rtos/hal_nordic/pull/2 to go in first.

In the hal_nordic module I added a protection against including particular nrfx_config_*.h files directly, not through the common nrfx_config.h. I also moved the change done to the west manifest to a separate commit, for clarity.

Updated west.yml with the proper revision of the hal_nordic module as https://github.com/zephyrproject-rtos/hal_nordic/pull/2 has been merged.


GPL license detection support

Also verified with Bazel 0.28.1

Codecov Report

Merging #48 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master      #48   +/-   ##
=======================================
  Coverage   92.16%   92.16%
=======================================
  Files          24       24
  Lines         740      740
=======================================
  Hits          682      682
  Misses         58       58

Impacted Files
Coverage Δ

...main/java/net/evendanan/bazel/mvn/api/License.java
95.45% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


--marginalize_over_instances option and fanova results

Hello,
When I apply fanova on my data with and without specifying "--marginalize_over_instances", the list of the most important parameters are very different. I'm just wondering why it is the case. To my understanding, marginalization over instances for fanova analysis is always done  in both cases. If that is not correct and they are meant to be different, which results should I use?
Please find in attachment the example data I'm using. There are 4 parameters and 4985 data points. The data may look a bit artificial because it was tuning data given by irace and was converted to smac output format. The commands I use and the resulting list of important parameters are listed below:
pimp -S scenario.txt -H runhistory.json -M fanova
LL_static_crossOverBias   84.193
LL_static_lda   2.270
LL_static_lambda1  0.750
LL_static_lambda2  0.555
pimp -S scenario.txt -H runhistory.json -M fanova --marginalize_over_instances
LL_static_lambda1   69.746
LL_static_lambda2   5.647
LL_static_crossOverBias   3.680
LL_static_lda   0.699
Many thanks,
Nguyen

Hi, thank you for pointing that out.
In that case you should go with the run without specifying the marginalization flag.
I'm not sure what's going wrong but for fANOVA you don't have to specify the marginalization

Thanks very much for the prompt reply! I will use the one without the flag then.
One thing that might be worth noted is that when I directly apply the previous version of fanova (the Java-based one, I think) on the same data example (under smac2 format), results are quite similar to the new one given by pimp with the marginalization flag. The data I used, including fanova output, can be found here. This is with my local copy of fanova a long time ago (version 1.0) as I get error messages when running the lastest fanova on it and can't figure out why.


Bunch of minor usability improvements here and there

Please let me know if you want any of those.

These all seem good to me. Does managarm compile with these changes applied?

Yea, 0001 branches have no dependencies.

does this align with previous commit message discipline?

Also make sure mlibc compiles with these changes.

@ArsenArsen Do you mean the branch name? That is fine IMHO.
Regarding the changes: they all look fine to me. For quantifying the optional::value() function: when does this make a difference? This only really affects code that directly passes .value() into a function taking a rvalue reference, right? (Since std::move(foo.value()) already gave a rvalue reference before.)

Regarding the changes: they all look fine to me. For quantifying the optional::value() function: when does this make a difference? This only really affects code that directly passes .value() into a function taking a rvalue reference, right? (Since std::move(foo.value()) already gave a rvalue reference before.)

One common case would be:
optional<T> foo();

T t1 = foo().value();
// You sure could without it:
T t2 = std::move(foo().value());

Makes sense. LGTM.

Will resubmit split per modules with more explanatory and consistent commit messages tonight/tomorrow.

Also make sure mlibc compiles with these changes.

mlibc also builds with those changes


Enhance QASM parser to support multi-character register names

Prior to this patch, the QASM parser could only parse creg or qreg declarations with a length of 1 (e.g., q or c). This made it impossible to define or measure quantum registers with variable names longer than one letter.
For example, the parser would fail to parse a qreg named q1.
This patch addresses this limitation by enhancing the parser to handle multi-character register names. The key changes are:

The parse_command method has been updated to handle the measure operation separately. It now correctly extracts the target register name and index, as well as the result register name and index, from the measure command.

The logic for parsing qreg and creg declarations has been improved to support multi-character register names. The register name and index are now extracted separately, and the parser checks if the register name is valid before processing the declaration.

These changes can be tested by parsing the following QASM code:
zx.qasm("""OPENQASM 2.0;
include "qelib1.inc";
qreg q1[3];
creg c1[1];
creg c2[1];
h q1[1];
h q1[1];
x q1[2];
h q1[2];
id q1[2];
h q1[0];
cx q1[0], q1[2];
h q1[0];
measure q1[0] -> c2[0];
measure q1[1] -> c1[0];
""")

The updated parser should now be able to correctly parse the QASM code, including the qreg and measure operations with multi-character register names.

I am unsure why mpy complains. Target qbit and and result_bit are cast into ints.
These are the arguments from my example for Measurement
target_qbit 0 is a <class 'int'>
result 0 is a <class 'int'>
target_qbit 1 is a <class 'int'>
result 0 is a <class 'int'>

You are reusing the variable name 'result_bit' which confuses mypy as you use it as str first and then as int.
And maybe you aren't importing the Measurement class?


show Alliance banners while in game

Decks that run the Alliance agenda do not show the banners that are being run while in-game.
This forces Alliance players to declare their banners in the game log, and their opponent to trust them :-)
We should show, somewhere near the Alliance agenda, the list of banner cards being run. Maybe as a stack of overlapping cards, as we do for attachments? That would allow to hover over the banners, and see them magnified as usual.

FYI I'm looking at this as part of the deckbuilder rewrite

While I kind of like the idea of showing them like we do attachments, that'll require quite a bit of UI reworking. For now, I've implemented this in #1194 as the same style popup menu as the discard / dead piles.
We can keep this open if we want to ultimately move to the other proposed UI. Mostly, I needed the infrastructure in place for having cards under the agenda in order to implement The Conclave.

For me this bug was about allowing players to see the banners, no matter how the info is shown. Hence, I consider it can now be closed as a consequence of #1194.
If people want a different/better UI way of showing the banners, they can open a dedicated bug report about it.


Fix unit tests to use example input

Closes #37

I updated map.sh so that it's case-sensitive in order to be consistent with map.py. It causes errors in the tests if map.sh is case-insensitive because we are using group by hash which causes the outputs to be different. @awdeorio


Replaced better-json submodule with a better fork

This repo is more up to date and do a better job highlighting json language.

nice!


Fix misuse of sync.Pool

1. What does this change do, exactly?
The buffers got from bufferPool are never put back. They will still get GCed sometime later, but that's not the purpose of using sync.Pool
2. Please link to the relevant issues.
N/A
3. Which documentation changes (if any) need to be made because of this PR?
None.
4. Checklist

[ ] I have written tests and verified that they fail without my change
[x] I made pull request as minimal and simple as possible. If change is not small or additional dependencies are required, I opened an issue to propose and discuss the design first
[ ] I have squashed any insignificant commits
[ ] This change has comments for package types, values, functions, and non-obvious lines of code

Thanks for the PR!
Can you actually make this against the caddy2 branch, here: https://github.com/caddyserver/forwardproxy/pull/74 ? Because the v1 / master version is no longer being maintained at this point, I guess.

@mholt
Thanks for the prompt reply!
I've created a new one (#76) against caddy2. Think this can be closed.


APPS-1107 Backup handler refactoring

Codecov Report
Attention: 199 lines in your changes are missing coverage. Please review.

Comparison is base (8f5b198) 23.93% compared to head (eefb062) 25.14%.

Files
Patch %
Lines

pkg/service/os_accessor.go
0.00%
72 Missing :warning:

pkg/service/backup_backend_impl.go
0.00%
50 Missing :warning:

pkg/service/s3_context.go
0.00%
46 Missing :warning:

pkg/service/backup_backend.go
0.00%
25 Missing :warning:

pkg/service/backup_handler.go
0.00%
4 Missing :warning:

pkg/service/configuration_manager_s3.go
0.00%
2 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #121      +/-   ##
==========================================
+ Coverage   23.93%   25.14%   +1.20%
==========================================
  Files          34       34
  Lines        1500     1428      -72
==========================================
  Hits          359      359
+ Misses       1096     1024      -72
  Partials       45       45

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


Update HWPSupervisor panel

3 new tasks, with buttons
fixed the display of "Spin Control" current state
Separated "Encoder" and "quad" summaries; each has a timestamp (but requires this)

@ykyohei & @jlashner  This look ok?

I agree with this https://github.com/simonsobs/socs/issues/681
And this PR looks good to me. Thank you for doing this quickly.


Updating Portworx operator to 1.0.6

Adding a stable channel to the operator package

Signed-off-by: Piyush Nimbalkar<EMAIL_ADDRESS>Thanks submitting your Operator. Please check below list before you create your Pull Request.
New Submissions

[ ] Have you selected the Project Community Operator Submissions in your PR on the right-hand menu bar?
[ ] Are you familiar with our contribution guidelines?
[ ] Have you packaged and deployed your Operator for Operator Framework?

[ ] Have you tested your Operator in all supported installation modes?

Updates to existing Operators

[x] Is your new CSV pointing to the previous version with the replaces property?
[x] Is your new CSV referenced in the appropriate channel defined in the package.yaml ?
[x] Have you tested an update to your Operator when deployed via OLM?

Your submission should not

[x] Modify more than one operator
[x] Submit operators to both upstream-community-operators and community-operators at once
[x] Modify any files outside the above mentioned folders
[x] Contain more than one commit. Please squash your commits.

Operator Description must contain (in order)

[x] Description about the managed Application and where to find more information
[x] Features and capabilities of your Operator and how to use it
[x] Any manual steps about potential pre-requisites for using your Operator

Operator Metadata should contain

[x] Human readable name and 1-liner description about your Operator
[x] Valid category name1
[x] One of the pre-defined capability levels2
[x] Links to the maintainer, source code and documentation
[x] Example templates for all Custom Resource Definitions intended to be used
[x] A quadratic logo

Remember that you can preview your CSV here.
--
1 If you feel your Operator does not fit any of the pre-defined categories, file a PR against this repo and explain your need
2 For more information see here

Can someone take a look at this PR?
Not sure why the scorecard clean up is timing out.

@piyush-nimbalkar, looks like infinite loop:
"Getting unavailable numbers"
"StorageCluster Predicates failed on node minikube for storage cluster 'portworx' for reason: node(s) didn't match node selector"
"StorageCluster operators/portworx, maxUnavailable: 1, numUnavailable: 0"
"Marking all unavailable old pods for deletion"
"Marking old pods for deletion"
"Nodes needing storage pods for storage cluster portworx: [], creating 0"
"Pods to delete for storage cluster portworx: [], deleting 0"
"failed to sync: Operation cannot be fulfilled on storageclusters.core.libopenstorage.org "portworx": the object has been modified; please apply your changes to the latest version and try again"
"Reconciling StorageCluster" Request.Name=portworx Request.Namespace=operators
"StorageCluster Predicates failed on node minikube for storage cluster 'portworx' for reason: node(s) didn't match node selector"
"Nodes needing storage pods for storage cluster portworx: [], creating 0"
"Pods to delete for storage cluster portworx: [], deleting 0"
"Getting unavailable numbers"
"StorageCluster Predicates failed on node minikube for storage cluster 'portworx' for reason: node(s) didn't match node selector"
"StorageCluster operators/portworx, maxUnavailable: 1, numUnavailable: 0"

@J0zi It's not an infinite loop. The controller is just reconciling on events.
The issue seems to be with some cleanup from scorecard test. Not sure what it is trying to cleanup and what is failing there from the logs. Can we try to re-trigger the build?

/test all


Proposal: canonical module aliasing

As per the Proposal Process, opening this brief issue for a discussion.
There are a few cases where module naming get messy. These are the ones I observed so far:

Mismatch between go-import tag and reality.

As an example, I'll use one of my projects: https://github.com/bpxe/bpxe
If you'll look into go.mod, you'll see it's defined as bpxe.org. GitHub serves HTML meta tags for it, but they are set for github.com/bpxe/bpxe.
But if I use go get github.com/bpxe/bpxe, I'll naturally get this:
	module declares its path as: bpxe.org
	        but was required as: github.com/bpxe/bpxe

Which is not fatal, of course, but is definitely annoying.

Renaming a module. Let's say there's cockroachdb and if they decide to use a different name (say, cockroachdb.com/cockroachdb), if packages that use github.com/cockroachdb/cockroach will want to stay up to date, they'll have to be notified of the renaming as they won't be able to figure that out easily.

So, my rough proposal would be to augment module validation to something like this: if a module declares its path as A but was required as B, try to "go get" B and see if it resolves to the same VCS URL as A. If it does, it is in fact the same module.
Any thoughts?

CC @bcmills @jayconrod

Related #26904
cc @matloob

This is more-or-less exactly what I plan to do for Go 1.18. I'll follow up with a more detailed design at some point in the next month or so.

@bcmills That sounds great! Please let me know if I can help in any way to get this to fruition. I'd love to have this in 1.18!

Because Bryan is working on a plan for this already,
we don't need to track this idea in this issue as well, so
I am going to close this issue as "coming soon".


Single Email freezes k9-mail

Expected behavior

Poll selected folder/whole account
New messages should load

Actual behavior
k9-mail freezes while polling
The culprit seems to be the message I've attached below. Removing that message from my mailbox also removes the issue
Steps to reproduce

Get a message like the one below
Poll for new messages
k9-mail freezes at that folder/message

Environment
K-9 Mail version: 5.600
Android version: LineageOS 14.1 (Android 7.1.2)
Account type (IMAP, POP3, WebDAV/Exchange): IMAP
The culprit message:
IHK_Akademie_Spezial.mbox.txt

Thanks for providing a message to reproduce the issue.
The code we use to convert HTML to plain text seems to be responsible for the freeze (on my Desktop machine the conversion completed after 7 minutes). We run this code when adding message contents to the search index.
I created a pull request to change how we do the HTML to plain text conversion.


How can I use Ember.Select component in emblem

I am trying to use Ember.Select in my template. Ember.Select works without any attribute | properties. But when I specify a attribute content, it gives me error as
Uncaught Error: assertion failed: an Ember.CollectionView's content must implement Ember.Array. You passed countries

My emblem template is as follows,
  Ember.Select     // Works fine
  Ember.Select content=countries

The code in App.IndexController is,
countries : function () {
    return ["India","US","England"]; // I have also tried passing the value in Ember.A(array_val)
}.property('')

@sabapk Your CP should look like:
  countries: Ember.computed(function() {
    return Ember.A(['India', 'US', 'England']);
  }),

I'm not sure what else is happening, but it is not very likely to be an issue with Emblem. I encourage you to take up this question on StackOverflow, the #emberjs IRC channel, or the Ember.js Community Slack (find a link on emberjs.com).


⚠ Bofrost.lu has degraded performance

In 81b8c94, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1165 ms

Resolved: Bofrost.lu performance has improved in 67a1861 after 7 minutes.


gpu-compute: Fix typo with GPUTLB print

Print was not properly ending in a newline, which caused confusion when looking a trace with GPUTLB enabled. This fixes that.

It appears my change over also lost my ChangeID info, and updating the commits adds the annoying merge branch commits on top of each branch, so closing one more time to resolve this and opening separately.


WIP: Extract Nuget packages

[x] Get PackageReference elements
[ ] Get version numbers
[ ] Extract packages.config files too (or push to a future PR)

In this case I'm realizing that Microsoft.Build package likely isn't going to give me much advantage over parsing the XML itself because the values and their structure/location are pretty well known. So I'll likely pivot a little here and just do that.


Framer studio not showing images in Cloud

Whenever I copy/paste layers from Sketch into Design, I get images that I can manipulate, animate, etc. in Code. However, once I upload it to Cloud, none of those images are visible. Only elements that I made in Design are visible, even though I can see everything in preview.

I'm having the same issue.

This was fixed in Framer v91, please re-open if you still see this issue.


make all links force new tabs

every single link on Open Procure now forces a new tab

lgtm.
its also worth considering <base target="_blank">

Closed by 30fd30c5


Fetch Issue When Run in Background

Hello, First of all thanks for this wonderful library.
I was integrating this lib in one of my project but i found one issue that when i start download from list its working fine but when i press back button and get back to same activity it doesnot resume download. I want every queued download to complete in background even if i leave screen.
So please suggest me if i am missing something or resolve this issue ASAP.
Thank You.

@Jatin-Sondagar are you using a download service for this? I recommend you to do a download service to manage it on background.


Clean Up Method of Docs ahead of docs -> dev merge

There are duplications of the method used to create source content from markdown inside the docs branch. The cache.js file represents the bundling of content but inside [...id].tsx we need to genereate all static paths for the docs content - hence a conflict and duplication of code.
Cache.js is used at build time - there might be another issue here to ensure the script is included in GH actions - and other automated build pipelines that we employ.
There is no issue in using lib/docs.ts inside [...id].tsx - rather the current method is sloppy and should be cleaned up.
Feel free to suggest other imrpovements to this method.

This is resolved here - https://github.com/urbanbigdatacentre/ubdc-web-starter-kit/pull/24


Fixed markdown editor z-index.

Fixed Markdown editor overlaps in proposal create page.
The markdown editor of the description overlayed the entity-dropdown (organization/campaign dropdown)

tested - OK


Add settings flag about using native keybindings for navigation keys

As of #37, navigation keybindings are the source of numerous bugs. I propose adding checkbox in plugin's settings, smth like use native keybindings for navigation keys (e. g. you are on OS X), which ultimately will disable those keybindings being overridden by plugin. If it's okay to u, @avendael , pls assign this feature to me. Thanks.

Please go ahead and submit a PR :) For some reason I can't assign created issues aside from myself.

It seems that you forgot to commit the settings UI. It works fine by setting the option through config.cson though, so I still pushed your PR to the new version.

This seems like a stale issue now. @avendael, @pavloo Good to close?


Explain the current macOS development situation

Added some information on the current status of NBTExplorer for macOS.

NBTExplorer can be run in Wine. The easiest method is with CrossOver

Install a new Windows Application
From the 'Select an Application to Install' menu choose 'Microsoft .NET Framework 2.0'
Install to a Windows 10 64-bit Bottle
Install a new Windows Application
Choose 'Browse All Applications'
Choose 'Unlisted Application'
Select 'Choose Installer File...' and select a downloaded NBTExplorer MSI file
Select the .NET Framework Bottle
Install and run


[Feature Request] Option to return Picked Media's original Album Path

From @Jazzeroki on December 18, 2015 7:6
Just tested so far with Android but the Path extension is returning a path inside of a temp directory.  If I use AlbumPath when taking a photo that is working great.  My trouble currently is when I pick a photo that photo path isn't usable to pass to another application like say an image cropper or exif reader.  Album path parameter be changed to also work when picking a photo not just saving one.  Might also be good to do with video I just haven't needed that yet.
Copied from original issue: jamesmontemagno/Xamarin.Plugins#164

Ah, I see, yeah let me see what I can do as we copy a version locally that can be modified as you probably shouldn't actually touch the original.
What would need to happen is on the selection a copy needs to be created and also I need to update the "AlbumPath" for the original.

From @Jazzeroki on January 22, 2016 16:30
Let me add this issue relates back to 156.  I didn't say anything about iOS because I hadn't tested it yet at the time.  Not having a value in Album Path for iOS was preventing me from getting some needed Exiff info.  I've attached a file I worked with another developer on to get the album path in there for iOS.
MediaPickerDelegate.cs.txt

@jamesmontemagno We are working on a project and need our app to store the photos after PickPhotoAsync to Application/Documents/(non temp directory)/ if possible are there any available work arounds or samples to allow us to store the image in a  similar fashion as TaskPhotoAsync stores it.  I noticed you made some commits but have not released an update. We are having our images aggressively garbage collected within the temp folder on Android and iOS.  Thank You.

By default it will move the files into your apps directory so they are always there.
It now also returns the public location in the beta builds: https://www.nuget.org/packages/Xam.Plugin.Media/2.5.1-beta40
However, if the user deletes them they are gone. So you would want to copy them somewhere you would like to save them.

Right it does move it into my apps directory but under the path "/temp" correct me if I am not understanding this right but are you are recommending that we then copy that file from the "/temp" directory into a different one if we intend to access the file long term?

Hmmmm. I think a feature request here is to be able to set the directory that "PickPhotos" are copied to. Can you create that for me?

Sure thing man! 👍


JSON marshal empty arrays as "[]"

golang's stdlib encoding/json library currently marshals empty arrays as null rather than [], causing downstream JSON parsing to often fail.
Practically, many JSON parsers reject raw arrays that are not wrapped in some { blah: array } object structure. I think that is wasteful, but if encoding/json were to behave more predictably, it could have at least reported an error when Marshal() is passed an array instead of a struct / hashmap. Instead we get null for empty arrays, which is not a value anyone but old LISPers from the 50's would expect.
As a workaround, some Go users are substituting https://github.com/helloeave/json
Perhaps we can bring this improvement back to encoding/json, without breaking backwards compatibility, by introducing new methods and deprecating old methods.

Dup of #27589.


✨[FEATURE] Add a calendar managing feature

🌟 Feature Overview
The Calendar Management feature allows users to interact with their calendar using voice commands. It enables users to create, view, and manage appointments or events by integrating with a calendar service like Google Calendar.
🤔 Why this feature?
This feature allows users to interact with their calendar in a hands-free way, adding convenience and efficiency to daily scheduling tasks.
📋 Expected Behavior
The Calendar Management feature helps users:

Add new events or appointments to their calendar.
Retrieve their schedule for a specific day.
Update or delete existing events.

🖼 Example/Mockups
N/A
📝 Additional Details
Please assign this under the labels GSSoC-ext and Hacktoberfest

This is not related with our Python Voice Assistant projects


update packages

:white_check_mark: Build TheIdServer 2.1.1-fix-dependencies1-0096 completed (commit https://github.com/Aguafrommars/TheIdServer/commit/fe6f6113cc by @)


fixed SOD bug due to a typo

I found  a bug in SOD, the data type of one of the lists was set to int16 causing overflow for large datasets. Changing it into int32 fixed the problem fully.
Please merge into master as soon as possible to avoid any confusion to the users because the bug was hidden and not throwing any error.

Pull Request Test Coverage Report for Build 1398

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.02%) to 95.512%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pyod/models/sod.py
0
1
0.0%

Files with Coverage Reduction
New Missed Lines
%

pyod/models/base.py
1
96.24%

Totals

Change from base Build 1395:
-0.02%

Covered Lines:
4405

Relevant Lines:
4612

💛  - Coveralls


ycsb with phoenix

The following error occurs when I tested ycsb for phoenix
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
Error in processing insert to table: USERTABLEorg.apache.phoenix.exception.PhoenixParserException: ERROR 601 (42P00): Syntax error. Encountered "INSERT" at line 1, column 1.
Error inserting, not retrying any more. number of attempts: 1Insertion Retry Limit: 0
2020-09-16 16:35:45:846 2 sec: 0 operations; est completion in<PHONE_NUMBER>67300 days 15 hours [CLEANUP: Count=1, Max=52, Min=52, Avg=52, 90=52, 99=52, 99.9=52, 99.99=52] [INSERT: Count=0, Max=0, Min=9223372036854775807, Avg=�, 90=0, 99=0, 99.9=0, 99.99=0] [INSERT-FAILED: Count=1, Max=3581, Min=3580, Avg=3581, 90=3581, 99=3581, 99.9=3581, 99.99=3581]

This is my configuration file

This is the command line I executed
ycsb load jdbc -s -P workloads/workloada -P phoenix.properties -p table=USERTABLE -p recordcount=1000 > workloada_jdbc_load.log

hi! probably the most effective path forward will be to ask on the Apache Phoenix user mailing list if there are special considerations needed when using the JDBC driver. Specifically let them know that you're trying to use YCSB with their jdbc driver. If there's something we can make work that'd be great. This would not be the first time we had to customize things for a particular jdbc implementation.

Any progress getting help from the phoenix folks?


[@lit-labs/task] Allow setting initial data

Description
If you do navigation preloading or similar you may already have the data for the task at component creation time. Then it would make sense to be able to either set that data manually at Task creation time or using some attributes.
The simplest but probably also most unclean change would be to make _value
https://github.com/lit/lit/blob/57a53e1c85216a4255e9f700402ef6cbe37a4167/packages/labs/task/src/task.ts#L108
public and name it value
Steps to Reproduce
import {Task} from '@lit-labs/task';

this._apiTask = new Task(
  this,
  taskFunction,
  () => /** @type {[URLSearchParams]} */ ([this.history.url.searchParams])
);
 if (this.initial !== undefined) {
  this._apiTask.status = TaskStatus.COMPLETE;
  // TODO FIXME don't use this private attribute that got minified
  this._apiTask.P = this.initial;
}

We are planning to add a mechanism for setting an initial value. This will be independent of the task's status. In other words, the task can have a value and be in the initial status.


ESLint not included in Vue.js template?

I just set up a Vue.js Template using electron-forge init demo --template=vue, but I saw that unlike the default template ("vanilla ES6/7"), it does not include ESLint support out of the box.
The generated package.json contains:
        "lint": "echo \"No linting configured\""

Is this intentional, or just not yet implemented?

Is this intentional, or just not yet implemented?

Not yet implemented. Could you file an issue (or even better, file a PR) in https://github.com/electron-userland/electron-forge-templates ? That is where the template code lives.


Complete the task associated to this TODO comment.

Describe the bug
Complete the task associated to this TODO comment.

i  closed the issue before the merging the files so i m creating the new issue.

Solved the issue as it is already completed the task only need to remove the comment .

It was a mistake so doing it again .


cargo-zigbuild test doesn't pass arguments through properly

Regular cargo test behaves in the following way:
An unadorned -h goes to the "test" subcommand itself:
$  cargo test -h 2>&1 | head -3
Execute all unit and integration tests and build examples of a local package

Usage: cargo test [OPTIONS] [TESTNAME] [-- [ARGS]...]

Inserting a -- separator passes the -h through to the test program:
$  cargo test -- -h 2>&1 | head -3
    Finished test [unoptimized + debuginfo] target(s) in 0.00s
     Running unittests src/main.rs (target/debug/deps/delme_test-e5ac81a61d3b0e6f)
Usage: /Users/cpick/src/delme-test/target/debug/deps/delme_test-e5ac81a61d3b0e6f [OPTIONS] [FILTERS...]

Inserting a second, spurious -- causes the -h to be ignored:
$ cargo test -- -- -h 2>&1 | head -4
    Finished test [unoptimized + debuginfo] target(s) in 0.00s
     Running unittests src/main.rs (target/debug/deps/delme_test-e5ac81a61d3b0e6f)

running 0 tests

By contrast, cargo-zigbuild test behaves in the following way:
An unadorned -h goes to cargo-zigbuilds "test" subcommand:
$ cargo-zigbuild test -h 2>&1 | head -3
Execute all unit and integration tests and build examples of a local package

Usage: cargo-zigbuild test [OPTIONS] [TESTNAME] [args]...

Inserting a -- separator passes the -h through to cargos "test" subcommand:
$ cargo-zigbuild test -- -h 2>&1 | head -3
Execute all unit and integration tests and build examples of a local package

Usage: cargo test [OPTIONS] [TESTNAME] [-- [ARGS]...]

Inserting a second -- causes the -h to be ignored:
$ cargo-zigbuild test -- -- -h 2>&1 | head -4
    Finished test [unoptimized + debuginfo] target(s) in 0.00s
     Running unittests src/main.rs (target/debug/deps/delme_test-e5ac81a61d3b0e6f)

running 0 tests

Issue
The issue is that this prevents arguments from being passed through cargo-zigbuild test to the test program.  This includes test name filters, the --nocapture flag, etc.

When testing of the other, similar cargo-zigbuild subcommands ("clippy", "run", and "rustc") I see that they don't provide a way to us a single -- argument to pass options to the underlying cargo subcommand.  Instead, they parse the arguments, re-add the appropriate ones, then inject the -- separator between those subcommand arguments and any, unknown others that are intended for the underlying command (eg: rustc, clippy, or the newly-compiled binary).
cargo-zigbuild test just seems to be behaving differently than those others.

I believe https://github.com/messense/cargo-options/pull/12 fixes the issue.


fix: failing build:app:docker post vite migration

Fix https://github.com/excalidraw/excalidraw/issues/6839
Followup from #6933
Added the following to docker context

index.html required entrypoint for vite build
vite.config.ts vite build config
excalidraw-app/ post refactor (Thanks @PseudoResonance)

Verified the following now work,

docker image builds successfully
docker compose up serves excalidraw on local port 3000

cc: @DanielJGeiger

@griimick It looks like the checks stalled this time because you're a first-time contributor to Excalidraw. I approved the checks to run.


This event was reported with an old version of the javascript SDK

I see this in the Sentry UI:

Would it help to bump the raven-js dependency version?

closing due to inactivity

@Turbo87 it is ember-cli-sentry 3.0.0 and raven-js 3.26.4 on npm. I'm no longer seeing the error on sentry though.


Created a Racing Car Game

Umm, I can't understand the game, please avoid low quality pull requests as per hacktoberfest guidelines.
https://user-images.githubusercontent.com/43041139/193568220-2ab38022-0148-43b6-b31e-c12918641d04.mov


Font settings not correctly applyed

Hi,
The preview paste panel don't use font settings set in colors & fonts. If I'm right, it's the interface font which is used instead of the editor one, so it's not a monospaced font and if ligatures are enabled in the editor (as well as size config and others options), they are not applied in the preview panel.

Hi @Kendos-Kenlen!
Thanks for the report, i'll check


how to connect to sql view in database

System Info
latest version of langchain. python=3.11.4
Who can help?
No response
Information

[ ] The official example notebooks/scripts
[ ] My own modified scripts

Related Components

[X] LLMs/Chat Models
[ ] Embedding Models
[ ] Prompts / Prompt Templates / Prompt Selectors
[ ] Output Parsers
[ ] Document Loaders
[ ] Vector Stores / Retrievers
[ ] Memory
[ ] Agents / Agent Executors
[ ] Tools / Toolkits
[ ] Chains
[ ] Callbacks/Tracing
[ ] Async

Reproduction
How to connect to SQL view in the database, instead of using the all the tables from the DB, as the DB is huge(6Gb), I'm unable to get any out a correct output, I'm getting token error and when it is performing any join its unable to fetch a correct answer, but when I using a selected table its working efficiently in terms of accuracy and time taking.
Can I get a appropriate method by which I can deal with the huge data without getting token or parser errors.
and how to work with the SQL views in the database.
here is the code for the connection string I have tried which includes the tables and its working fine,
from urllib.parse import quote_plus
driver = 'ODBC Driver 17 for SQL Server'
host = '########'
user = '#####'
database = 'HR_Git'
password = '#########'
encoded_password = quote_plus(password)
db = SQLDatabase.from_uri(f"mssql+pyodbc://{user}:{encoded_password}@{host}/{database}?driver={quote_plus(driver)}", include_tables = ['EGV_emp_departments'], sample_rows_in_table_info=2)
Thank you.
Expected behavior
How to work with the SQL views inside the database and  way to avoid token and parser error.

This issue seems interesting to me! Do you think it would be feasible to finish this within a month?

This issue seems interesting to me! Do you think it would be feasible to finish this within a month?

Yes it can be

how can we access views of sql with langchain? did anyone manage to do this?

Hello All,
To connect to and work with SQL views in the LangChain framework, you just need to activate a argument view_support=True in SQLDatabase
from langchain.llms import  SQLDatabase

# Connect to the database
db = SQLDatabase.from_uri(
    "mysql+pymysql://{db_user}:{db_password}@{db_host}/db_name}",
    include_tables=['Track'],
    view_support = True,
)```

even this din work for me.

i have created SQL agent , it is able to get the view i have created , but when doing get table info, nothing is returned and the Flow for agent is stuck.
@dosubot

@akesh1235 your solution this correct. thanks

@vishalpatidar00789 are you using SQLDatabaseChains? view_support=True workers with that.

Hello All, To connect to and work with SQL views in the LangChain framework, you just need to activate a argument view_support=True in SQLDatabase
from langchain.llms import SQLDatabase

# Connect to the database
db = SQLDatabase.from_uri(
    "mysql+pymysql://{db_user}:{db_password}@{db_host}/db_name}",
    include_tables=['Track'],
    view_support = True,
)```

@akesh1235 Is it possible to allow SQL DB engine to access only view but not the tables?


AEM Environment Indicator not working

Required Information

[x] AEM Version, including Service Packs, Cumulative Fix Packs, etc: 6.5.5
[x] ACS AEM Commons Version: 4.8.4
[x] Reproducible on Latest? yes/no

Expected Behavior
With the Filter correctly configured:

I expected the indicator to appear in the HTML response.
Actual Behavior
The indicator HTML is not part of the response.
The Filter never injects the indicator HTML because accepts returns false, because isDisallowedWcmMode returns true, because there is no WCMMode object to be found in the HttpServletRequest object, so it defaults to DISABLED.

I don't know why this is.
In our own project, our filters do have the correct WCMMode in the request object e.g. LoggingFilter which is a sample class from the latest AEM Maven Archetype:

Steps to Reproduce

Install ACS AEM Commons on a clean 6.5.5 instance
Add the AEMEnvironmentIndicator OSGI config
Observe that no HTML gets added to any pages in the administrative console pages.

Thanks for looking into it @joerghoh, appreciate it. After running a few more tests I got it working, not entirely sure what happened on my end. Closing this one.

Thanks for letting us know!

@mt33 Hi, I have the same issue, it starts working only when I update config manually in OSGI console, but doesn't work via delivering these properties using OSGI config. As far as I understand the root cause of your issue is unknown and it just started to work, right?

Hey @AntonValadzko - it only worked for me when using the .config style OSGI config, which is what the system will use when manually creating/editing it in the OSGI console. So in your codebase, use a text file com.adobe.acs.commons.wcm.impl.AemEnvironmentIndicatorFilter.config with contents e.g.
always-include-base-css=B"false"
browser-title-prefix="Local"
excluded-wcm-modes=[""]
css-color="#e9c2a6"
always-include-color-css=B"false"
css-override=""
inner-html=""

and it should work on deploy!

Thanks @mt33 It works although contradicts with ACS Commons documentation a bit ))
UPD It works even with XML format, looks like this property is mandatory - excluded-wcm-modes=[""] which is not obvious

I think you are running into #2402.

@kwin Agree. Closing my issue then. Thanks


Simplify a great deal the CONTRIBUTING file

It was brought to my attention that, if CONTRIBUTING files are often ignored, way too long CONTRIBUTING files are pretty much always ignored.
Prior to that PR, there were lots of unnecessary, lengthy details that neither casual or involved contributors do not care about.
Casual contributors fix comments, super minor bugs or documentation pieces, all of which we should simply be thankful of.
Involved contributors should rightfully enquire more before starting coding, which this PR details sufficiently (mainly open a PR or discuss on IRC first). Very involved contributors will read our maintainers' corner.

:+1:

I will actually wait for a second :+1: from before merging this.

:+1:


Error when using with package ongoworks:security

Hi, when using package ongoworks:security, I got the following error on the console:
W20150818-16:32:02.610(8)? (STDERR) [sanjo:jasmine]: The file "***/server/security.js" has syntax errors. [TypeError: Object [object Object] has no method 'permit']

The file server/security.js is:
Pages.permit(['update']).apply();

And there is a Pages class defined in lib/collections/pages.js file:
Pages = new Mongo.Collection('pages');

I use sanjo:jasmine + ongoworks:security and am not seeing this error.  See this issue: https://github.com/ongoworks/meteor-security/issues/2 -  do you have other packages installed that could be a conflict?

@liangsun Please post your collection mock code as I said. I would suggest that you currently not use the server unit mode and instead use the server integration mode all server tests, unless the limitations of the server unit mode are not a problem for you.

Thank you, @aaronjudd  I'll create a sample todos project to see if I can reproduce this bug, and if not, then I'll bi-search which package causes the conflict.

Thank you for your suggestion, @Sanjo So the server unit mode is still under dev, right?

@liangsun Yes, the current implementation has shown some flaws over the time that I need to fix. I have started already to reimplement it, but it is not ready yet.
I think @aaronjudd don't has the problem that you have, because he uses the server integration mode?

@Sanjo Thank you for this info.
@aaronjudd I think @Sanjo is right, I tried with the sample todos project, there is still errors (even though errors are different):
W20150820-19:00:29.209(8)? (STDERR) connections property is deprecated. Use getConnections() method
W20150820-19:00:29.310(8)? (STDERR) [sanjo:jasmine]: The file "***/todos/server/security.js" has syntax errors. [TypeError: Cannot call method 'apply' of undefined]
W20150820-19:01:35.457(8)? (STDERR) [sanjo:jasmine]: The file "***/todos/server/security.js" has syntax errors. [TypeError: Cannot call method 'apply' of undefined]

Here is how to reproduce:
meteor create --example todos
cd todos
meteor add  ongoworks:security
meteor add sanjo:jasmine
meteor add velocity:html-reporter
echo "Pages = new Mongo.Collection('pages');" >> lib/collections.js
echo "Pages.permit(['update']).apply();" >> server/security.js
meteor

The errors will display on the console.

@liangsun @Sanjo is correct, I'm using currently using 'client/integration' and 'server/integration' right now for both apps and packages.  However I thought that at some time in the not too distant past,  I had created some unit tests as well, so I should have ran into this. If I get some time today, I'll take a look at the todo example.

@liangsun You need to manually correctly mock the permit function. It works exactly in the same way as the collection hooks mock I think. https://gist.github.com/Sanjo/664bf9e9090bb58b7a00
Adding something like this to the mock code in line 48 of the gist should work in theory:
this.permit = function () {
  return {
    apply: function () {}
  }
};

@Sanjo This works. Thanks.


Failed to get CSRF token.

this is the command i run in the powershell:
python tomcat.py upload -u admin -p admin Linuxx.war <IP_ADDRESS>
Traceback (most recent call last):
File "tomcat.py", line 366, in
bf.upload(args.filename, args.user, args.password, args.old_version, args.headers)
File "tomcat.py", line 177, in upload
deploy_csrf_token, obj_cookie = self.get_csrf_token(user, password, old_version, headers)
TypeError: 'NoneType' object is not iterable

Hi,
Please describe the context, I cannot reproduce without it.
What tomcat version is running? Does the credentials are valid?

Hi,
Please describe the context, I cannot reproduce without it.
What tomcat version is running? Does the credentials are valid?

I am sorry .
Tomcat version：Apache Tomcat / 8.5.45
OS：windows10
credential was set by me so it is right

Hi,
I managed to reproduce the issue. Indeed I handle not well an error, I will make a commit to fix this.
However, the real issue here is that the manager is accessible only from localhost. Did you check that the manager interface can be accessed from where you ran the script? (The file webapps/manager/META-INF/context.xml must be edited to make the manager app accessible from other locations).

However, the real issue here is that the manager is accessible only from localhost. Did you check that the manager interface can be accessed from where you ran the script? (The file webapps/manager/META-INF/context.xml must be edited to make the manager app accessible from other locations).

'  '
although i cant really understand what it is but i guess it allow any IP to access the manager?
i am sorry my english is bad  if you dont what i m saying is ok.
after all ,waiting for your commit.

This line allows connections only from localhost. You can actually check using your browser and HTTP. The behavior is the same.


Added basic documentation

The files are located in /docs. Any changes to the documentation structure is written in /docs/source/index.rst.
In index.rst, the x in ":maxdepth: x" refers to the number of sections. "License" in line 7 is linked to License.rst in the same directory (I will be figuring out how to link the text to a file without the filename needed to be the same as the text).
To build the documentation, run "make html". The HTML file for the documentation is located in /docs/build/html/index.

Read The Docs Instructions:
RTD doesn't seem to allow linking forked repos, so I wasn't able to do it on my fork but it should work when done from the actual repo. After importing the project, go to "Admin", "Advanced Settings", and scroll down to "Python configuration file". Put "docs/source/conf.py" (without the quotes) in the textbox. Save the changes, and then build.

@szaman19 @alee023 what is the status here?


Simplify setting Tokenizer options, add docs and comments

This is a proposal to get https://github.com/sqlparser-rs/sqlparser-rs/pull/870 merged into SQL parser.
The core escaping/unescaping logic and tests in https://github.com/sqlparser-rs/sqlparser-rs/pull/870 is very nice I think
I still worry about the various API changes to the parser and tokenizer. As we have gone back and forth on this PR and API several times and I really I want to help get this in, I am trying to take a more active hand in getting the API shaped up
This PR leaves the core unescaping logic alone and changes the API in this way:

Move the with_no_escape to a method on Tokenizer thus removing an API change that would cause significant downstream churn
Renamed no_escape to unescape, otherwise I was finding reasoning about the double negative challenging
Added doc comments with examples explaining how to use this feature

I made this into a PR here (targeting this PR)
What do you think?
cc @canalun

@alamb This refinement seems to be brilliant...!! I learned things and appreciate so much!! :)

@canalun  if you get a chance, it would be great to merge this PR into your branch so we can merge a single unified PR into the sqlparser-rs repo. If you don't get a chance, I can merge them as separate PRs too , though I may not have a chance until tomorrow

got it! So i'm merging it :)


fix(disconnect): compose now works with db update on exit

Codecov Report

Merging #312 (01ae382) into master (0d7f01b) will decrease coverage by 0.02%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #312      +/-   ##
==========================================
- Coverage   26.47%   26.45%   -0.03%
==========================================
  Files          56       56
  Lines        3535     3534       -1
  Branches      642      641       -1
==========================================
- Hits          936      935       -1
  Misses       2378     2378
  Partials      221      221

Impacted Files
Coverage Δ

src/mpsMicroservice.ts
82.05% <100.00%> (-0.45%)
: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 0d7f01b...01ae382. Read the comment docs.


Prepare for switching to Module classes (task #16415)

Update existing configuration for static analysis and builds so that src/Module directory is excluded and generated on the fly during the build phase.

Your stickler.yml configuration file could not be parsed. We got the following error:
while scanning a quoted scalar
  in "<unicode string>", line 9, column 9:
          - 'src/Module/*/
            ^
found unexpected end of stream
  in "<unicode string>", line 10, column 1:

    ^


Workflow for ZPPY- PCMDI for E3SM diagnostics (with fixes on issues found in #624)

Issue resolution

Closes #<ISSUE_NUMBER_HERE>

Select one: This pull request is...

[ ] a bug fix: increment the patch version
[ ] a small improvement: increment the minor version
[ ] an incompatible (non-backwards compatible) API change: increment the major version

1. Does this do what we want it to do?
Objectives:

Objective 1
Objective 2
...
Objective n

Required:

[ ] Product Management: I have confirmed with the stakeholders that the objectives above are correct and complete.
[ ] Testing: I have added or modified at least one "min-case" configuration file to test this change. Every objective above is represented in at least one cfg.
[ ] Testing: I have considered likely and/or severe edge cases and have included them in testing.

If applicable:

[ ] Testing: this pull request introduces an important feature or bug fix that we must test often. I have updated the weekly-test configuration files, not just a "min-case" one.
[ ] Testing: this pull request adds at least one new possible parameter to the cfg. I have tested using this parameter with and without any other parameter that may interact with it.

2. Are the implementation details accurate & efficient?
Required:

[ ] Logic: I have visually inspected the entire pull request myself.
[ ] Logic: I have left GitHub comments highlighting important pieces of code logic. I have had these code blocks reviewed by at least one other team member.

If applicable:

[ ] Dependencies: This pull request introduces a new dependency. I have discussed this requirement with at least one other team member. The dependency is noted in zppy/conda, not just an import statement.

3. Is this well documented?
Required:

[ ] Documentation: by looking at the docs, a new user could easily understand the functionality introduced by this pull request.

4. Is this code clean?
Required:

[ ] Readability: The code is as simple as possible and well-commented, such that a new team member could understand what's happening.
[ ] Pre-commit checks: All the pre-commits checks have passed.

If applicable:

[ ] Software architecture: I have discussed relevant trade-offs in design decisions with at least one other team member. It is unlikely that this pull request will increase tech debt.

@chengzhuzhang @forsyth2 : Hi Jill and Ryan, I closed the https://github.com/E3SM-Project/zppy/pull/624 as some of the fixes are made on the issues pointed our by you. I open this new pull request for the continuing discussion.

@zhangshixuan1987
From the original PR#624, I ran into an env problem that suggests I can't access your build of pcmdi_metrics_master conda environment. All other tasks like ts ran.
EnvironmentNameNotFound: Could not find conda environment: pcmdi_metrics_master

However In the new PR I ran into an error much ealier, right after issuing the zppy command line, as below:
(zppy_dev_24) [ac.zhang40@chrlogin2 test_zppy]$ zppy -c post.v3.LR.historical_pmp.cfg
Traceback (most recent call last):
  File "/home/ac.zhang40/y/envs/zppy_dev_24/bin/zppy", line 5, in <module>
    from zppy.__main__ import main
  File "/home/ac.zhang40/y/envs/zppy_dev_24/lib/python3.9/site-packages/zppy/__main__.py", line 18, in <module>
    from zppy.pcmdi_diags import pcmdi_diags
  File "/home/ac.zhang40/y/envs/zppy_dev_24/lib/python3.9/site-packages/zppy/pcmdi_diags.py", line 8, in <module>
    from zppy.utils import (
ImportError: cannot import name 'checkStatus' from 'zppy.utils' (/home/ac.zhang40/y/envs/zppy_dev_24/lib/python3.9/site-packages/zppy/utils.py)

I think the error is caused by the conflicting zppy/__main__.py
In any case, I think i now have a better understand of your implementation, after testing and reviewing the results. And perhaps we can have a chat sometime next week about design details.

@chengzhuzhang: Hi Jill, when I submitted this new PR, I did a code rebase to make sure that my code is consistent with the zppy master branch.  However, I just found that a certain amount of the changes have been made in zppy-master branch. Due to these changes,  I need to make modifications to my pcmdi workflow. Overall, please hold, and I may need to resubmit a PR again. I apologize for the inconvenience.

@zhangshixuan1987 Oh, no worries! I didn't realize it is still a draft. Thanks for the heads-up. I'm happy to test again when it is ready. No hurry.

we can have a chat sometime next week about design details.

Due to these changes, I need to make modifications to my pcmdi workflow. Overall, please hold, and I may need to resubmit a PR again. I apologize for the inconvenience.

I've unfortunately been busy with other priorities, but I've been trying to follow this work at a high level. I would like to again raise my concern about repeating design decision mistakes that have caused issues in the global_time_series task. It may be a good idea to discuss design further before proceeding with more work.

However, I just found that a certain amount of the changes have been made in zppy-master branch.

Yes, I mentioned in https://github.com/E3SM-Project/zppy/pull/624#discussion_r1800306399 that #628 made some changes to clean up the zppy code base. That's probably the biggest change.

I'm hesitant to make too many comments without fully reviewing and running the latest code myself, but my specific design decision concerns at the moment are the following. Perhaps I just need more context though, which we can discuss in a meeting.

I agree strongly that it would be much easier to navigate the results with a viewer page!

It appears we are once again adding a de facto analysis package inside zppy. #616 is really turning the global_time_series task into that -- a piece of software with scope and environment distinct from zppy that is however fundamentally integrated into zppy. This has caused two major issues:

It is hard to test global_time_series. #616 is adding unit tests for the global_time_series. I have to run those tests from a different environment than the zppy dev environment because that code runs in the environment that the global_time_series task is running in, not the environment zppy is running in. This convolutes an already complicated testing scheme -- e.g., see #634 for the process required to do weekly integration testing.
The environment issue segues into the second major issue: the global_time_series code has different dependencies than the zppy code. This complicated @xylar's question of what code exactly had numpy dependencies (global_time_series needs numpy, but zppy does not). Furthermore, this means there isn't really a dev environment for global_time_series. And I suspect a similar issue here is responsible for the EnvironmentNameNotFound: Could not find conda environment: pcmdi_metrics_master error mentioned in https://github.com/E3SM-Project/zppy/pull/640#issuecomment-2452618239.

global_time_series developed these issues over time as it grew from a small task into a complex pseudo-package. We need to discuss the design decisions for implementing the PMP task, before repeating known issues. zppy is already a complex piece of code requiring python > bash interaction. These built-in analysis packages add a third layer of complexity: python > bash > python.

I've unfortunately been busy with other priorities, but I've been trying to follow this work at a high level. I would like to again raise my concern about repeating design decision mistakes that have caused issues in the global_time_series task. It may be a good idea to discuss design further before proceeding with more work.

I'm still not convinced that we should consider a stand-alone package for the global_time_series, mostly because the potential maintenance overhead. Also the global_time_series capability is very specific about its input: the global average files are generated with a relatively recent new NCO capability. It doesn't feel like we need a new package for just visualization global time-series and to aggregate the results.
My view of zppy is that it not only provide interface to connect multiple diagnostics tools, it also closes any gaps that these packages won't cover but E3SM requires. In the case of zppy-PMP workflow, there is missing pieces from PMP, including decoupled plotting capability and no viewer is generated. It feels that it is inevitable that we need to use zppy to close such gaps.
Another thing i would note is that there are several scripts use cdms or other CDAT utilities in this PR, which we should migrate away .

My view of zppy is that it not only provide interface to connect multiple diagnostics tools, it also closes any gaps that these packages won't cover but E3SM requires.

If that is going to continue to be the purview of zppy. I think there needs to be a yaml file or something similar that defines the dependencies and their constraints for each tool like global_time_series that has unique dependencies.  I need somewhere I can go to know what packages E3SM-Unified needs to have to support not just zppy, the workflow management tool, but its pseudo-sub-packages.

@xylar yes, dependencies such as numpy, and the upcoming outputviewer, should be explicitly listed in a yaml file.

I think Ryan's point is that global_time_series is currently poorly maintained because its buried inside zppy.   The cost of making it a separate package is offset by the benefit of better testing.

I agree with both @rljacob and @forsyth2, I don't think it's great if zppy becomes a kitchen-sink package. The extra maintenance is already there and breaking our distinct packages should provide transparency for users and developers. I realized we're short on staff. But bundling packages together doesn't really solve that problem, it just obscures it.
In general I think zppy should return to being a workflow manager and not try to also be the tool that adapts all other tools for E3SM's needs. That's really messy to try to bundle into a single package.

hmmm, is it possible to make the global_time_series capability more modular  and testable in zppy before considering packaging it as a stand-alone package? I don't know if such a package is useful beyond zppy.

@chengzhuzhang @xylar @forsyth2: Hi all, I may not fully understand all your discussion here. The EnvironmentNameNotFound: Could not find conda environment: pcmdi_metrics_master is because the pcmdi_metrics_master is a customized environment used for the development of zppy-pcmdi workflow for the following reasons:

the PCMDI within e3sm-unified environment is significantly outdated, and significant changes including the data structure etc. have been made.
at the beginning of this zppy-pcmdi workflow, we believe that the update of PCMI within the e3sm-unified environment is not urgent and needed.

To me, The above issue will not be a problem anymore once the PCMDI is updated in the e3sm-unified environment.
One step further, I currently used the ZPPY preferred method to load the conda environment pcmdi_metrics_master by adding following lines in the ".cfg" file:

environment_commands = "source /lcrc/soft/climate/e3sm-unified/load_latest_e3sm_unified_chrysalis.sh; conda activate pcmdi_metrics_master"

I think that @chengzhuzhang has a problem to call "conda activate pcmdi_metrics_master" as there is no such coda environment installed in her local machine.  However, this is not because there is a module called "pcmdi_metrics_master" within any python scripts of the zppy-pcmid workflow.

@zhangshixuan1987, you are right.  We are hijacking your PR to have what has meandered into a very important discussion but one that is not related.

Let's move the broader discussion to https://github.com/E3SM-Project/zppy/discussions/641 and keep this PR focused on its original purpose.
There is still, of course, room to discuss whether this work should be done outside of zppy for similar reasons to what moves over to that discussion.

@zhangshixuan1987 Sorry for this distraction. I'm grateful that Xylar created a separate discussion item.
For the pcmdi_diags_master the environment. It is possible to source someone's locally built conda env through commands like:
source /home/ac.forsyth2/miniconda3/etc/profile.d/conda.sh; conda activate e3sm_diags_20241015
This is how I source @forsyth2 's locally built e3sm_diags environment. I think we can do something similar for using your built pmp environment.

@chengzhuzhang @forsyth2: I am not intended to interrupt the discussions.  I think all discussions here are very useful to me as well. I am also very interested in the further discussions at the https://github.com/E3SM-Project/zppy/discussions/641.

@chengzhuzhang : Hi Jill, I have checked and made modifications to the PCMDI workflow.  The test on my side indicates that the workflow can work as expected.
Below are the example results for the E3SM AMIP simulation run with revised workflow:

v3.LR.amip_0201

An updated ".cfg" file is attached here for your test:

post.v3.LR.amip.0201.cfg

Also, I think that my built "pcmdi_metrics_master" environment can not be sourced as like @xylar's likely because I did not install the miniconda environment by myself, rather, I relied on the "e3sm_unified" environment on Chrysalis.  Therefore, to make sure that you can test the package successfully, I converted my package to a ".yml" file:

pcmdi_metrics_master.yml
I think you can use this file to build an equivalent environment for test purposes (I apologize for the extra work on your side).


Use leaflet and react-leaflet as external packages

I propose to make the leaflet and the react-leaflet external. This would allow development of plugins for the dash-leaflet. This would allow you to take your existing plugins outside and develop them as separate python packages.
Developing, maintaining, and updating new plugins will be faster with the help of the community.
I want to make a plugin for the dash-leaflet based on the leaflet-geoman.

That sounds interesting. The diff is rather huge at the point, could you comment on what you changed?

The main files and main changes are

webpack.config.js

    const externals = ('externals' in overrides) ? overrides.externals : ({
        react: 'React',
        'react-dom': 'ReactDOM',
        'plotly.js': 'Plotly',
        'prop-types': 'PropTypes',
        'leaflet': 'L',  // <<
        'react-leaflet': 'ReactLeaflet',  // <<
    });

dash_leaflet dir - I added<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>dash_leaflet/__init__.py - I plugged in the scripts and styles above

The other files changed on their own during compilation. You might as well not merge them.

I made dash-leaflet-measure external plugin based on your internal plugin for an example

I also prepare the ground for the dependencies between the Dash components to work. You could support my pull request.

I am not sure that I can merge only part of the PR (do you have a link on docs on how to do so?). Otherwise, would it be possible for you to just include the files with relevant changes?

Otherwise, would it be possible for you to just include the files with relevant changes?

I'l try to change the pull request

Is that necessary for the custom component to work?

Yes, this component (its scripts) is not registered with unpkg, so its scripts are only available locally.


Astro 5.0 breaking changes tracker

📋 Explain your issue
This issue is to track 5.0 breaking changes to be part of the major version upgrade guide.
REMINDER: Only breaking changes need to be reported here. New features that do not break existing projects are cool! But they are not breaking changes and are not a part of the upgrade guide.
(See #5390 for v4.0 breaking changes tracker for past examples to follow)
You know the drill, use the following template:
### [changed/removed/added/deprecated] feature/name/title/description
In Astro v4.x, [ a statement in the past tense about what Astro did/used to do.
e.g.  bundled all assets into several different folders....]

Astro v5.0 [ a statement in the present tense about how Astro works now.
e.g. now bundles all assets into one single folder located in... ]

#### What should I do?
[Active sentences in the imperative (command) tense, with code examples showing diffs as appropriate]
e.g. Update... / Remove... / Replace... / Create..

PR: #9999 (implementation)
PR: #5555 (docs, if appropriate)

Example upgrade guide: https://docs.astro.build/en/guides/upgrade-to/v4/
EMOJI LEGEND
👍 - this has been added to our Astro 5.0 Upgrade Guide #5481
😄 - NO CORRESPONDING DOCS CHANGES NEEDED (not a user-facing change)
🚀 - Docs need updating because of this change
🎉 - Docs PR for needed changes exists
:-1: - Not actually a BREAKING change! Doesn't need to be listed in the guide!

Closing as we're using a docs branch instead of an issue tracker! :rocket:


Event Feature Request - onPaginationReady

I have the need to know when the pagination is completed being drawn as it also changes with browser resize and other updates so I have added the following after line 1028 to add an onPaginationReady event. Could this be included in the base:
s.emit('onPaginationReady', s);

I and using this as I have a requirement to add an additonal button to the pagination line. I tried using the onProgress event but this did not work correctly on init.
I also use this event to hide the pagination when there would only be one bullet created using this code.
if (s.slides.length <= s.params.slidesPerView) { $(s.params.pagination).hide(); } else { $(s.params.pagination).show(); }

So this could be enhanced to add an option like paginationSingleButtonHide

Add onPaginationRendered event/callback


Experimental PPLNT support

This is experimental and we need testers to prove stability before merging the PR.
Experimental PPLNT support (see pool_config example updates to enable pplnt)
Major reduction in RPC calls to daemon.
Balance rounding improvements.
Improvements to confirmations tracking.
Improvements to operation id tracking.
Improved error handling.

Concept ACK but don't merge till we got tons of testing done :)

From: Bot.io (Main)

Invalid
Command not implemented: bc.

/botio bc-test

From: Bot.io (Main)

Invalid
Command not implemented: bc.

From: Bot.io (Main)

Invalid
Command not implemented: bc.

/botio bc-test

Hello, would you like to hear a TCP joke?
Yes, I'd like to hear a TCP joke.
OK, I'll tell you a TCP joke.
OK, I'll hear a TCP joke.

Yes, I am ready to hear a TCP joke.
OK, I'm about to send the TCP joke. It will last 10 seconds, it has two characters, it does not have a setting, it ends with a punchline.
OK, I'm ready to hear the TCP joke that will last 10 seconds, has two characters, does not have a setting and will end with a punchline.
I'm sorry, your connection has timed out... ...Hello, would you like to hear a TCP joke?

/botio BCtest

From: Bot.io (Main)

Received
Command cmd_BCtest from @aayanl received. Current queue size: 0
Live output at: http://aayanl.tech:9000/cfa364697e22b7f/output.txt

From: Bot.io (Main)

Success
Full output at http://aayanl.tech:9000/cfa364697e22b7f/output.txt
Total script time: 1.63 mins

Runs without errors with an old config :)

From: Bot.io (Main)

Received
Command cmd_BCtest from @aayanl received. Current queue size: 0
Live output at: http://aayanl.tech:9000/b0a1f6a84f7bd20/output.txt

From: Bot.io (Main)

Success
Full output at http://aayanl.tech:9000/b0a1f6a84f7bd20/output.txt
Total script time: 1.58 mins

previous test had paymentprocessing disabled

Live testnet pool up just to test this :) https://aayanl.tech:9002

/botio BCtest

From: Bot.io (Main)

Received
Command cmd_BCtest from @aayanl received. Current queue size: 0
Live output at: http://aayanl.tech:9000/ddcfdc5d30ce6e9/output.txt

From: Bot.io (Main)

Success
Full output at http://aayanl.tech:9000/ddcfdc5d30ce6e9/output.txt
Total script time: 2.33 mins

we need this!! good job hellcatz

Glad to see we've made these changes with making a dent into stratum-pool 🙂😎

This PR should also dramatically decrease the amount of calls to zcashd. https://github.com/zcash/zcash/issues/2333 Still hasn't been resolved so getting GBT calls that take forever to return can still happen

It'll be merged in tomorrow :+1:

Let me know how I can help in the future.

Merged since its friday in half the world :)


Client SDK

We want to create a reusable library that clients can consume for interaction with the ASP.
The idea is to move (most of) the code within the CLI commands to a standalone package that can then be imported into other client wallet projects.
Let's provide both grpc and rest clients.

We move this to /root/pkg/client or smtn?

We have a client,server,common structure with a monorepo. Not sure what's best, to have pkg in root or inside client?

We have a client,server,common structure with a monorepo. Not sure what's best, to have pkg in root or inside client?
What's your suggestion?

IMO /root/pkg

I think in this case it's better to have pkg in common/client-sdk so we don't import anything from server

I think it is best to have it at root. A dedicated top-level directory makes it clear that it is a standalone module intended for external use, not just an internal component tied to common. It is more easily discoverable by developers who need to use the SDK. Moreover it allows the SDK to evolve independently from other components of the monorepo.
monorepo-root/
├── client/
│   └── ...
├── server/
│   └── ...
├── common/
│   └── ...
└── pkg/
    └── client-sdk/
        ├── example.go
        └── ...

The sdk will import stubs from server/api-spec/. Following your reasoning, maybe it makes sense to move api-spec/ (and stuff related to buf) to root too?

Yes, good idea, as is a shared resource between client/sever anyway

@sekulicd also make sure to design the SDK to be easy to compile to WebAssembly, ie. exporting a JS glue that calls the Public APIs of the Go package, also from the browser.

In JS, the second one would be used

We do lose the code-gen if the client SDK (in wasm targets) have to use JSON endpoints?

the idea is to have a client that consumes either grpc or rest endpoints. In JS, the second one would be used

i understood we wanted to give all options to the clients(grpc, rest, grpcweb), clients(browser) lose option to use grpc from js if we only support above options

after quick chat offline, is not worth to introduce gRPC-web complexity as we have already gRPC Gateway and we have a way to automatically generate client code once we change Proto/Swagger


Mobile distro backend (WIP)

Contributes to: https://trello.com/c/iSwBNksN/932-extend-new-be-for-mobile-distribution-prototype
First PR which enriches the GraphQL API schema and enables the BE to support new Mobile Distribution related prototype features.

Haudi @pylipp :)
Even though I marked it still as a draft - please feel free to scan through it already raise concerns (and also see the questions in the TODO comments)

Haudi @pylipp :) Even though I marked it still as a draft - please feel free to scan through it already raise concerns (and also see the questions in the TODO comments)

I browsed the changes and added a couple of comments. Re the crud functions I did not have a detailed look but would wait for tests instead.
Re the Box.items field: I wouldnt mind if (in a different branch) you update the GraphQL field to numberOfItems and in the peewee model use number_of_items = IntField(column_name="items"). There's likely to be some renaming in different files in the BE and the FE as a result.

@pylipp Agree for a dedicated PR to rename items to numberOfItems.
I addressed your other points - feel free to have another look and approve :)

 2.0 Extend new BE for Mobile Distribution Prototype


Feature Visibility Change

How can I change visibility of OL.Features?
There is in version 3 but I wasn't find anything about feature in last version.

The best way is to return undefined from the layer's style function. But you can do the same with a feature's style function.
feature.setStyle(() => undefined);


Username Password authentication on TCP

I'm not sure how easy it would be but may be worth looking into as this doesn't also seem to be implemented in FTS but would be much better than connecting to an open server to get your certs from the datapackage.

Part of this has been addressed in f8f3b50, 4e5540b -- so it's quite possible to set things up for basic auth.
I'll think about this a little more, but right now it isn't a priority. I think a better way of doing this would be having the Android client send a CSR! I'd much rather have client enrollment working.

Yeah, user login without cert would be really nice :)


Points in the same series being returned in separate tables (plus duplicate points with all values matching)

Steps to reproduce:
More details in this forum topic

I'm using a rollup task to write data to a new bucket.
I wrote another flux query to put older data into the same format as this new bucket, and add that historical data to my new bucket.
Query the new bucket for a single series, the resultant data comes back in two tables, even though both tables have matching tags/field name for all the columns in the group key.
Query:

from(bucket: "power_circuit_lores")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "kw")
  |> filter(fn: (r) => r["_field"] == "pair_min")
  |> filter(fn: (r) => r["circuit_pair_id"] == "3303")
  |> yield(name: "mean")

Result:

I think somehow the data must differ between the two series, even though it appears the same. During troubleshooting, I also ran into this issue:

Query the data that normally produces two tables.
Call group on the same group keys that were already being used. This results in all of the data in one table.
Call sort based on _time, which results in my graphs looking like they are supposed to.
Call to on this resultant data, in hopes that it overwrites existing data in the bucket making the query work properly from now on.
Now I have 2 points in the same bucket with identical data, which are still returned in separate tables:

from(bucket: "power_circuit_lores")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_field"] == "ckt_max")
  |> filter(fn: (r) => r["circuit_id"] == "3304")
  |> filter(fn: (r) => r["_time"] == 2023-03-01T22:00:00.000Z)
  |> yield(name: "mean")

#group,false,false,true,true,false,false,true,true,true,true,true,true,true
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string,string,string,string
#default,mean,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,account_id,circuit_id,circuit_pair_id,facility_id,panel_id
,,0,2023-02-27T15:01:59.527182778Z,2023-03-06T15:01:59.527182778Z,2023-03-01T22:00:00Z,1.248,ckt_max,kw,52,3304,3304,2,349
,,1,2023-02-27T15:01:59.527182778Z,2023-03-06T15:01:59.527182778Z,2023-03-01T22:00:00Z,1.248,ckt_max,kw,52,3304,3304,2,349

This also seems like a bug, as the documentation says that points with the same time and tags should overwrite the old data instead of storing a duplicate point.
Expected behavior:
Get a single table returned.
Actual behavior:
Two tables are returned, with identical data in all the group key columns.
Environment info:

System info: Run uname -srm and copy the output here
Running in docker, this is the output from inside the container. Linux 5.4.0-131-generic x86_64
InfluxDB version: Run influxd version and copy the output here
InfluxDB v2.6.1 (git: 9dcf880fe0) build_date: 2022-12-29T15:53:07Z
Other relevant environment details: Container runtime, disk info, etc

To do any work with the data in these buckets I always have to run group(mode: "except", columns: ["_time", "_value"]) or something similar, otherwise I get errors like:
runtime error @18:12-18:18: mean: aggregate found duplicate table with key: {_field=ckt_mean,_measurement=kw,_start=2023-02-05T19:05:06.774867596Z,_stop=2023-03-07T19:05:06.774867596Z,account_id=172,circuit_id=3756,circuit_pair_id=3756,facility_id=2,panel_id=384}

i got the same issue. started when upgrading from 2.6.0 to 2.6.1 . I feed the db from telegraph and it started doing it despite nothing else changed

I ran into this issue while migrating 23,225,584 data points from one bucket to another.
Looks like the tags have an effect(?!)
The source bucket was working as intended, as this query produces 1 row with the count and no errors:
from(bucket: "EnergyRecords2")
    |> range(start: 2023-02-01T00:00:00Z, stop: 2023-07-11T20:15:00-04:00)
    |> filter(fn: (r) => r["_measurement"] == "power")
    |> filter(fn: (r) => r["input_id"] == "l12")
    |> count()
    |> yield()

This produces 1 series in bucket Dumpster, which is desired:
from(bucket: "EnergyRecords2")
    |> range(start: 2023-02-01T00:00:00Z, stop: 2023-07-11T20:15:00-04:00)
    |> filter(fn: (r) => r["_measurement"] == "power")
    |> filter(fn: (r) => r["input_id"] == "l12")
    |> map(
        fn: (r) =>
            ({
                _measurement: "circuit",
                _field: "power",
                _value: r["_value"],
                _time: r["_time"],
                circuit: "12",  // Only 1 tag.
            }),
    )
    |> to(bucket: "Dumpster1", org: "Organization")

This produces 2 series:
from(bucket: "EnergyRecords2")
    |> range(start: 2023-02-01T00:00:00Z, stop: 2023-07-11T20:15:00-04:00)
    |> filter(fn: (r) => r["_measurement"] == "power")
    |> filter(fn: (r) => r["input_id"] == "l12")
    |> map(
        fn: (r) =>
            ({
                _measurement: "circuit",
                _field: "power",
                _value: r["_value"],
                _time: r["_time"],
                circuit: "12",
                circuit_amps_max: "15",  // A second tag.
            }),
    )
    |> to(bucket: "Dumpster1", org: "Organization")

This also produces 2 series:
from(bucket: "EnergyRecords2")
    |> range(start: 2023-02-01T00:00:00Z, stop: 2023-07-11T20:15:00-04:00)
    |> filter(fn: (r) => r["_measurement"] == "power")
    |> filter(fn: (r) => r["input_id"] == "l12")
    |> map(
        fn: (r) =>
            ({
                _measurement: "circuit",
                _field: "power",
                _value: r["_value"],
                _time: r["_time"],
                circuit: "12",
                device_id: "left",  // A second tag.
            }),
    )
    |> to(bucket: "Dumpster1", org: "Organization")

The Dumpster1 bucket was cleared with influx delete command between runs.
Also I tried reducing the time range to 7 days, but the issue persists.
Before that I did a giant query that migrates multiple series, which ran slowly but works as intended.
This query uses map() with if statements, which produced the correct result even with the 2-month time range.
In addition, the CPU and disk IO patterns look different.
Looks like the troubled queries were doing Read-Process-Write at the same time.
The trouble-free query was using CPU almost exclusively until the very end where it had disk write IO.
from(bucket: "EnergyRecords2")
    |> range(start: 2023-02-01T00:00:00Z, stop: 2023-04-01T00:00:00Z)
    |> filter(fn: (r) => r["_measurement"] == "power")
    |> filter(
        fn: (r) =>
            r["input_id"] == "l1" or r["input_id"] == "l2" or r["input_id"] == "l3" or r["input_id"] == "l4"
                or
                r["input_id"] == "l5" or r["input_id"] == "l6" or r["input_id"] == "l7" or r["input_id"] == "l8"
                or
                r["input_id"] == "l9" or r["input_id"] == "l10" or r["input_id"] == "l11" or r["input_id"] == "l12"
                or
                r["input_id"] == "l13" or r["input_id"] == "l14" or r["input_id"] == "l15" or r["input_id"] == "l16",
    )
    |> map(
        fn: (r) =>
            if r["input_id"] == "l1" then
                {
                    _measurement: "circuit",
                    _field: "power",
                    _value: r["_value"],
                    _time: r["_time"],
                    circuit: "1",
                    circuit_amps_max: "30",
                    device_id: "left",
                    nick_name: "Dryer",
                    phase: "a",
                    phase_amps_max: "200",
                    unit: "mW",
                }
            else if r["input_id"] == "l2" then
                // Same as above but with different tag values.
            else if r["input_id"] == "l3" then
                // Same as above but with different tag values.
            else if r["input_id"] == "l4" then
                // Same as above but with different tag values.
            else if r["input_id"] == "l5" then
                die(msg: "Unexpedted input_id l5")
            else if r["input_id"] == "l6" then
                die(msg: "Unexpedted input_id l6")
            else if r["input_id"] == "l7" then
                // Same as above but with different tag values.
            else if r["input_id"] == "l8" then
                // Same as above but with different tag values.
            else if r["input_id"] == "l9" then
                // Same as above but with different tag values.
            else if r["input_id"] == "l10" then
                // Same as above but with different tag values.
            else if r["input_id"] == "l11" then
                // Same as above but with different tag values.
            else if r["input_id"] == "l12" then
                // Same as above but with different tag values.
            else if r["input_id"] == "l13" then
                // Same as above but with different tag values.
            else if r["input_id"] == "l14" then
                // Same as above but with different tag values.
            else if r["input_id"] == "l15" then
                // Same as above but with different tag values.
            else if r["input_id"] == "l16" then
                die(msg: "Unexpedted input_id l16")
            else
                die(msg: "Unexpedted input_id"),
    )
    |> to(bucket: "Dumpster2", org: "Organization")

Some more observation, the troubled query was using vectorizedMap

Whereas the trouble-free query was using map

Hi!
I have a similiar problem which I described on the community site.
@gazpachoking, did you get any resolution on yours duplicate values issues?
My environment is:
    ubu18 5.19.0-46-generic #47~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Jun 21 15:35:31 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
    Influx CLI dev (git: none) build_date: 2023-04-28T14:24:14Z
    InfluxDB v2.7.1 (git: 407fa622e9) build_date: 2023-04-28T13:24:27Z

I think this might be related.

When doing another max() on the result, I get a "duplicated table error".
The flux is:
from(bucket: "MK1runninghours")
|> range(start: 0)
|> filter(fn: (r) => r["tag"] == "H2")
|> max()
|> yield(name: "mean")
This bucket is filled by a daily task - that goes three days back to cover network outages and thereby recalculates the previous values.
H2 =
basis
|> map(
fn: (r) =>
({
_measurement: r._measurement,
_time: r._time,
main: r.main,
process: r.process,
_value: r.H2,
_field: "val",
tag: "H2",
}),
)
|> group(
columns: [
"_measurement",
"main",
"process",
"tag",
"_field",
],
)
|> aggregateWindow(every: 1h, fn: mean, createEmpty: true)
|> drop(columns: ["_start", "_stop"])
|> to(bucket: "MK1runninghours")

I am facing the same problem. I want to migrate my data to a new bucket and also have the problem that data points from the same series result in different tables.
Does my migration project fail now or are there any workarounds?

I've just been explicitly calling group and sort for every query on my data. That fixes the issue. Really annoying it's required, but I don't think we'll be getting a real fix in influxdb 2.0.

Hi!
I understand Flux is moving to maintenance, but I reckon this should be fixed, as it's a fundamental function of the engine. For example, calling last() should not return two values!
@Anaisdg Could you advocate for a fix?
Example with last() and the workaround (as mentioned above) works in my case:
...
|> last()
// returns 2 values!

...
|> map( fn: (r) => ({r with _time: if exists r._time then r._time else r._time })  )
|> last()
// returns 1 value

Arrrggghhh... this caught me again! Maybe it's a sign I should give up on Influx and migrate to TimeScaleDB?

I ran into this when introducing more tags into a bucket (from 1 tag to 3 tags), so I presume it's the underlying data structure causing this.
I found that the map and group/sort workarounds were massively decreasing the performance of the queries. An alternative workaround, which I've found to be more performant on my dataset is to make use of pivot and unpivot, an example is below.
import "experimental"
import "influxdata/influxdb/schema"

data |> schema.fieldsAsCols() |> experimental.unpivot()

I hope this will be fixed in flux but that seems unlikely. It would be good to understand the root cause and if there is a better workaround.


bring feature branch up-to-date with master

Description
This is simply to bring this feature branch up-to-date with master so we can keep working on it.

This isn's necessary. You can either just force push your branch or make a merge commit there. Please only make PRs for merging something into master.


💡Feature idea: allow user to pass agent & other values from RequestExtraOptions  to fetch used internally

Scenario
At work, our server's are not allowed to make requests to the external world / internet , unless they go through a specific proxy server for security reasons.
When I was doing my work locally everything worked fine, but it wasn't until I deployed to production remix-auth-microsoft didn't work as expected. This was because remix-auth-microsoft makes API calls directly login.microsoft.com and graph.microsoft.com, which unfortunately is not permitted on our infra.
Feature Suggestion
Allow user to pass an optional RequestExtraOptions values to the options object that both the fetch and Request API use.
Temporary Solution
To resolve this challenge for my project, I copied the src/index.ts file from this repo, which contains the whole implementation of the remix-auth-microsoft package. Then I modified it per the suggestions of Sergio (creator of core remix-auth packages). Discord thread of his suggestions
Modified index.ts file (originally copied all of src/index.ts from this repo)

https://gist.github.com/cliffordfajardo/799495e90a6b748e10c040dfba170a60

References / Related

RequestExtraOptions  from @remix-run/node
https://github.com/remix-run/remix/discussions/4282
Discord conversation with Sergio on Proxying Requests inside of remix-auth-* packages

I think this change would be fairly easy & might not be a breaking change, I need to think about it a bit more though; simply wanted to post all my thoughts before I forget

Hi @cliffordfajardo
This seems like a good feature to have and if you open a PR I'll be happy to merge it 👍

Has there been any update on this? I would love to be able to pass these extra options as well. Without this flexibility we can't use this library in production.