[BUG] OpenImagesV6Dataset doesn't work for custom id numbers

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 20.04 LTS
FiftyOne installed from (pip or source): pip
FiftyOne version (run fiftyone --version): v0.16.6
Python version: 3.8.10

Commands to reproduce
import fiftyone as fo
dataset = fo.Dataset.from_dir(
    name="myset",
    dataset_dir="/path/to/output_dir",
    dataset_type=fo.types.dataset_types.OpenImagesV6Dataset,
    label_types=("detections", "classifications"),
    load_hierarchy=False
)

(use the zipfile provided below to create output_dir)
Describe the problem
This dataset is in legit OpenImageV6 format.  However, detection (bbox) data is not imported into the dataset!
Please confirm by running the above command with the extracted dataset and trying dataset.first().
I suspect that it is because the dataset uses "custom" open image ids (not the official ones).
Code to reproduce issue
(see above)
Other info / logs
Please find the dataset in question from here
(the images are all the same image due to copyright reasons - but that doesn't affect the issue at hand)
What areas of FiftyOne does this bug affect?

[ ] App: FiftyOne application issue
[X] Core: Core fiftyone Python library issue
[ ] Server: Fiftyone server issue

Willingness to contribute
The FiftyOne Community encourages bug fix contributions. Would you or another
member of your organization be willing to contribute a fix for this bug to the
FiftyOne codebase?

[ ] Yes. I can contribute a fix for this bug independently.
[ ] Yes. I would be willing to contribute a fix for this bug with guidance
from the FiftyOne community.
[X] No. I cannot contribute a bug fix at this time.

@ehofesmann can you look into this?

In fiftyone/utils/openimages.py, method _get_label_data you do this:
df = _parse_csv(csv_path, dataframe=True)

That turns the whole image_ids.csv file into pandas dataframe.  Unfortunately that csv reading
routine seems to do implicit typecast .. if it sees something that could be a integer, it turns it into an integer.
I get for df.dtypes:
ImageID          int64
Source          object
LabelName       object
Confidence       int64
XMin           float64
XMax           float64
YMin           float64
YMax           float64
IsOccluded       int64
IsTruncated      int64
IsGroupOf        int64
IsDepiction      int64
IsInside         int64

Now image what happens if the image_ids.csv file looks like this:
ImageID,Subset,OriginalURL,OriginalLandingURL,License,AuthorProfileURL,Author,Title,OriginalSize,OriginalMD5,Thumbnail300KURL,Rotation
000142,nada,nada,nada,nada,nada,John Doe,nada,nada,nada,nada,0.0
000074,nada,nada,nada,nada,nada,John Doe,nada,nada,nada,nada,0.0
000013,nada,nada,nada,nada,nada,John Doe,nada,nada,nada,nada,0.0
...

and corresponding images are 000142.png, etc.
It'll try to compare int 142 with string "000142" to find the all_ids member --> all_ids becomes empty --> empty dataset
Btw, sorry, I forgot to include the "image_ids.csv" into the zipfile..!  Here it goes:
image_ids.csv

This one solves the bug:
def _parse_csv(filename, dataframe=False, index_col=None):
    if dataframe:
        data = pd.read_csv(
            filename,
            index_col=index_col,
            dtype={'ImageID': str}
            )
    else:
        with open(filename, "r", newline="", encoding="utf8") as csvfile:
            dialect = csv.Sniffer().sniff(csvfile.read(10240))
            csvfile.seek(0)
            if dialect.delimiter in _CSV_DELIMITERS:
                reader = csv.reader(csvfile, dialect)
            else:
                reader = csv.reader(csvfile)

            data = [row for row in reader]

    return data

..as you can see I have told pandas cv reader what datatype to expect.
I think it would be a good idea to use that "explicit typecast" for all pandas cv reader operations.. it also creates additional checking for the csv file  that all columns are of the expected type

Plz feel free to explain why there are so many different id lists.. :) all ids, any_ids, relevant_ids.  I'm just curious

uh.. how do I monkey-patch this..?
fiftyone.utils doesn't have member openimages when you load fiftyone for the first time..

Found a bug in the error messages in the same file:
if not os.path.isfile(mask_path):
    msg = "Segmentation file %s does not exist", mask_path
    warnings.warn(msg)

I think you want this:
msg = "Segmentation file %s does not exist" % (mask_path)


Same-name extern methods preventing code removal for provably side-effect-free code

The compiler should be able to compile the following example to zero:
(function() {
  /** @final */
  class Foo {
    get() {}
    foo() {}
  }

  new Foo().get();
  new Foo().foo();
})();

Instead, it can remove the call to foo(), but it cannot remove the call to get(), presumably because of an extern that's being conflated somewhere.
Debugger link

It is definitions on object literals that are causing the problem.  In particular, the definition of "Reflect.get" is sufficient to cause the back off in the disambiguation which is unfortunate.

Sure enough: Debugger link
But now I'm confused - I'd thought the compiler distinguished arbitrary object literals from namespaces.  So since Reflect is @const, it shouldn't cause backoff, should it?  At the very least, we know that the Reflect namespace is never an instance of Foo, so it's impossible that new Foo() could be Reflect.
What would it take to fix this?

I've been aware of this for a long time. My suggested solution is to recognize any constant object (namespace) in an extern as a distinct type. I just don't have the bandwidth to tackle it right now.
The following should be equivalent:
/** @fileoverview @externs */
const myNamespace = {};
/** @type {number} */
myNamespace.someProp;

vs:
/** @fileoverview @externs */
/** @constructor */
function MyNamespace() {};
/** @type {number} */
MyNamespace.prototype.someProp;

/** @type {!MyNamespace} */
const myNamespace;

The second one gives correct type checking and disambiguation - but the first one is what developers prefer to write.

That makes sense, but doesn't seem to work.  Also, static methods on extern'd classes seem to cause problems as well, and I don't think they're amenable to that treatment (i.e. you can't declare Object as both a @constructor and an instanceof ObjectStatics).

@shicks Something else going on with the debugger there. The code isn't being transpiled (there's a class in the output).

I don't see any class in the output:
(function() {
  /** @final @struct @constructor */ var Foo = function() {
  };
  Foo.prototype.foo = function() {
  };
  Foo.prototype.bar = function() {
  };
  (new Foo).foo();
  (new Foo).bar();
})();


feat(rust): Create clap command to delete an existing secure-channel listener on a node

Current behaviour
Currently cannot delete a secure-channel listener
Proposed changes
ockam secure-channel-listener delete [address] --at [node-name]

Required args:

address: the listener's address

Optional args:

at: defaults to the default node

Output: show a message to confirm the deletion of the listener.
Deleted secure-channel listener with address '/service/<service_name>' on node 'node-name'

I've just updated the commit to follow the commit messages rules! will merge ASAP!


Enhancement request- save chart as html

Can you please add an enhancement to save the chart as html with all displayed values.
Thanks

Hi!
Thanks for the suggestion. Would the chart be saved after the data has been updated by update_from_tick or update, or is this idea for static data (with markers, lines, horizontal lines etc.)

Hi,
Idea is for static data with markers, lines, horizontal lines etc.

I see, I'll look into it!
For the time being, this is actually possible with the JupyterChart and StreamlitChart objects; as they can only display static data, they save all the HTML necessary to re-create the chart. So if you swapped out your Chart object with a JupyterChart like this:
chart = JupyterChart()

# Add all configurations etc
chart.set('ohlcv.csv')
chart.horizontal_line(200)

print(f'{self._html}</script>')

That print statement would contain all the HTML neccessary to to use the chart as a standalone webpage.
Let me know if this works, but I will look into implementing this directly!
Louis

Hi @louisnw01 awesome project btw!
Please tell if there a way to export chart image as png or jpeg? That would be quite a useful feature

Hi @louisnw01 awesome project btw!
Please tell if there a way to export chart image as png or jpeg? That would be quite a useful feature

Thank you!
I have noticed Lightweight Charts has a takeScreenshot() method, which I am working to include in the library.
Should be released next week!
Louis

Hi @louisnw01,
I successfully saved the chart as html page. But when i tried opening the html, chart is not showing to full window.
`if name == 'main':
chart = JupyterChart()
chart.set(df)
output = f'{chart._html}'
with open('chart_output.html', 'w', encoding='utf-8') as file:
file.write(output)`

Could you please help me to set the output chart to browser window. Thanks for your help in advance.

Hi @louisnw01,
I successfully saved the chart as html page. But when i tried opening the html, chart is not showing to full window.
`if name == 'main':
chart = JupyterChart()

chart.set(df)

output = f'{chart._html}'
with open('chart_output.html', 'w', encoding='utf-8') as file:
file.write(output)`

Could you please help me to set the output chart to browser window. Thanks for your help in advance.

Hi,
Have you tried setting the width and height to '100%'

I'm referring to the width parameter of the class.
If that doesn't work, try the same code with the StreamlitChart object instead.

Hi again,
In regards to a built in method to retrieve the html, I am not planning on implementing this at the moment; It will require a significant refactoring of the codebase.
I'll never say never, but im taking it off my list for the moment. So if my fix works, continue to use that for the time being.
Thanks!
Louis

Hi, is it possible to have timeframe switching in html? I am struggling to implement where the get_data_bar will fetch the data. I am not knowlagable in html, so not sure how it will know which data to switch. I am using the Streamlit chart object


Support for Export/Import values from stacks

CloudFormation recently added the ability to Export an Output, and the ability to Import them in other stacks.
This would be great to have handy as a feature in cfndsl, but at the moment doesn't look like we can add the Export directive to an output item.
Also not sure if it's possible to use the Fn::ImportValue and Fn::Sub functions yet in cfndsl either.

Both functions were added recently. FnSub is very useful and deprecates the FnFormat cfndsl method.

Oh great, I didn't make that connection before I opened this issue after browsing recent commits. Looks like all that's needed is Output.Export.

@kornypoet I don't think this is complete yet. Is it possible to do specify an Output as an Export?

Take a look at these samples here: https://github.com/stevenjack/cfndsl/blob/master/sample/export.rb
https://github.com/stevenjack/cfndsl/blob/master/sample/import.rb


Status Bar Visible in Plugins Instead of Only in SiYuan Docs

I have been noticing this for quite some time, but I always forget about it. When I use plugins like Web Page View or Excalidraw, this status bar appears, which shouldn’t be visible. When opening a Web View Page, Web工具集成 Web App, or Excalidraw, the status bar should only be shown in SiYuan Docs.

Edit: I think it would be better if we only have the hide/show dock icon, and no other icons or details should be displayed when using plugins.

Thank you for your feedback. Will consider adding a hide button.

So, I have created this JavaScript snippet, and it seems to be working fine. Maybe you can make it even better and more optimized.
It's currently performing as expected. As you can see the video, when I open the document, it correctly displays the .status__counter. Then, when I switch to Excalidraw or any other web app or web page, it automatically hides the additional details that don’t need to be shown in those tabs. These details only appear when the document tab is open.
https://github.com/user-attachments/assets/1d1f8e9e-6448-4e97-bd53-5a9d763e51d1
I just wanted to share this snippet to see if you could make any improvements or find better ways to utilize it.
Script: Status Counter Visibility Fix
// Optimized function to toggle visibility of the status counter and apply custom CSS as needed
function toggleStatusCounter() {
    // Cache the status counter element
    const statusCounter = document.querySelector(".status__counter");

    // Early exit if statusCounter is not found, improving efficiency
    if (!statusCounter) return;

    // Check for active SiYuan document editors with specific attributes
    const protyleElements = document.querySelectorAll(".fn__flex-1.protyle[data-loading='finished']");
    const isDocumentViewActive = Array.from(protyleElements).some(element => element.offsetParent !== null);

    // Toggle visibility based on the active state of the document view
    if (isDocumentViewActive) {
        // Show status counter and remove any applied custom CSS
        statusCounter.style.display = "block";
        document.body.classList.remove("custom-status-css");
    } else {
        // Hide status counter and add custom CSS class
        statusCounter.style.display = "none";
        document.body.classList.add("custom-status-css");
    }
}

// Function to inject custom CSS for smooth transitions
function injectCustomCSS() {
    // Create a style element to inject custom CSS
    const style = document.createElement("style");
    style.textContent = `
        /* Smooth transition for the status bar */
        #status #barDock {
            transition: right 0.3s ease; /* Animation duration and easing */
        }
        body.custom-status-css:not(.body-asri--mobile) #dockBottom.fn__none:not(.has-layout-dockb-float)~#status #barDock {
            right: -4px;
        }
    `;
    // Append the style element to the document head for immediate application
    document.head.appendChild(style);
}

// Function to set up listeners for tab change events
function setupTabChangeListener() {
    // Cache the layout tab container element
    const layoutTabContainer = document.querySelector(".layout-tab-container");

    // Early exit if layoutTabContainer is not found
    if (!layoutTabContainer) return;

    // Add event listeners to detect tab changes and update the status counter
    ["click", "focusin", "focusout"].forEach(event =>
        layoutTabContainer.addEventListener(event, toggleStatusCounter)
    );
}

// Inject custom CSS on script load
injectCustomCSS();

// Run the status counter toggle function initially to set the correct state
toggleStatusCounter();

// Set up tab change listeners for interactive updates
setupTabChangeListener();

// Use MutationObserver to detect dynamic DOM changes and update the status counter
const observerView = new MutationObserver(toggleStatusCounter);

// Start observing the document body for added or removed child elements and structural changes
observerView.observe(document.body, { childList: true, subtree: true });

Thanks for sharing your insight! I'll explore how to incorporate these into my implementation.


Remove code caching accessToken

Draft PR

Remove code solution for caching accessToken in our plugin code.
Add dependency of azure-identity-1.6.0-beta.1 which added caching support for Managed Identity.

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-identity-providers-core

Closing this, redirect to https://github.com/Azure/azure-sdk-for-java/pull/30740.


[New Project] : Random Color Palette Generator

I'll create a Random Color Palette Generator using HTML, CSS, and JavaScript. When the user clicks the "Refresh Palette" button, the program generates a new set of random colors with their hex color code. User can easily copy the hex color code by clicking on the corresponding color card.
Kindly assign me this issue under GSSOC'23.
@Dharmesh177 @artimanputra

Please assign this issue to me .


writefile call fails with Empty buffer error

Steps to reproduce
Repro script:
#!/bin/sh
vim -NEnR --cmd '
call writefile(["hello"], "/dev/stderr")
quit
' </dev/tty >& /tmp/out.txt

Expected behaviour
With old vim versions this would write "hello" to stderr and quit. After vim 9.1.0573 this produces an E749: Empty buffer and waits for user input.
This breaks the vimpager script as I reported here: https://github.com/rkitover/vimpager/issues/276
Version of Vim
9.1.0573
Environment
MacOS homebrew
COLORTERM=truecolor
TERM=xterm-256color
TERM_PROGRAM=WezTerm
TERM_PROGRAM_VERSION=20240203-110809-5046fc22

Logs and stack traces
No response

try this
https://bit.ly/4e4zLlq
select the desired compiler in the installer

This can also be reproduce with :call execute("\n") in Ex mode.

Fixed by patch 9.1.0713


Error thrown when starting in dev mode

Running the start:dev command gives following error on my machine:
[nodemon] starting `node dist/main`
[0] [Nest] 4059   - 07/18/2019, 8:34 AM   [NestFactory] Starting Nest application...
[0] [Nest] 4059   - 07/18/2019, 8:34 AM   [InstanceLoader] TypeOrmModule dependencies initialized +116ms
[0] [Nest] 4059   - 07/18/2019, 8:34 AM   [InstanceLoader] AppModule dependencies initialized +2ms
[0] [Nest] 4059   - 07/18/2019, 8:34 AM   [InstanceLoader] GraphQLModule dependencies initialized +2ms
[0] [Nest] 4059   - 07/18/2019, 8:34 AM   [TypeOrmModule] Unable to connect to the database. Retrying (1)... +73ms
[0] /Users/erez/Development/malcolm/server/src/submission/submission.entity.ts:1
[0] (function (exports, require, module, __filename, __dirname) { import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
[0]                                                                      ^
[0]
[0] SyntaxError: Unexpected token {
[0]     at new Script (vm.js:80:7)
[0]     at createScript (vm.js:274:10)
[0]     at Object.runInThisContext (vm.js:326:10)
[0]     at Module._compile (internal/modules/cjs/loader.js:664:28)
[0]     at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
[0]     at Module.load (internal/modules/cjs/loader.js:600:32)
[0]     at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
[0]     at Function.Module._load (internal/modules/cjs/loader.js:531:3)
[0]     at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:22:18)
[1]
[1] 8:34:32 AM - Found 0 errors. Watching for file changes.

if you change the ormconfig.json to:
  "entities": ["dist/**/*.entity{.ts,.js}"],

then it seems to work

Closed via #34


Git Repos not sync'd in HA environment after successful sync

Environment

Nautobot version (Docker tag too if applicable): 1.5.12
Python version: 3.11
Database platform, version: Postgres
Middleware(s):

Steps to Reproduce

Deploy Nautobot in HA environment without shared git storage (i.e. Kubernetes via helm)
Add Git Repo
Modify the file in git repo
Sync (1x)
expect both Nautobot instance's local filesystems for change

Expected Behavior
If the git repo sync succeeds in Nautobot (expected) the git repo should be sync'd across all Nautobot instances.

Observed Behavior
Local filesystem copies of the git repo differ between nodes.

This issue was brought to light when we were debugging https://github.com/nautobot/nautobot/issues/3491 it likely isn't a common occurrence considering the repos should be updated when the jobs are executed however this issue brought to light the fact they are not.  This may be very low impact today but as Nautobot matures we may need to address keeping multiple frontend deployments of Nautobot updated

@nautobot/core is related to the ongoing git issues or something different?

I don't think this was ever a feature that was implemented. In 2.x we have the ability to tell the celery workers to sync a git repo but I don't think that applies to other instances of the web server.

The operating model for git repo jobs is to be eventually consistent. When a job is run and the current filesystem copy is out of sync, the worker should first sync the repo and then run the job.


Different scrollSpeed for different sections

Is it possible to get different scrollSpeed for different sections.
$.scrollify({     section : '.scroll-section',     scrollSpeed: 1400,   });
I want certain .scroll-section have different scrollSpeed.

Yes, use the setOptions method to change the scroll speed based on the index of the current section.


Update chromium.ketarin.xml

Updated regex for getting revision numbers; Added start/end text for revision

@gep13 Could You take a look at this PR. I think it might help in the future. Thanks


Non-IRC protocols

Add an ability to connect to and parse non-IRC protocols? Perhaps skype?

Skype api is closed now apparently.
Other options are xmpp ( #78), HipChat, slack, telegram, WhatsApp? Kik? Steam?

Telegram:
https://core.telegram.org/bots/api
Xmpp:
http://xmpp.org/xmpp-protocols/rfcs/
Slack:
https://api.slack.com/bot-users
HipChat: (xmpp)
https://confluence.atlassian.com/plugins/servlet/mobile#content/view/753404057
WhatsApp:
might not be possible. They don't want it to be possible.
http://mashable.com/2015/03/25/whatsapp-developers-api/#B5UKMqvZ5SqX (nope)
https://github.com/WHAnonymous/Chat-API (but maybe)
Kik:
Not sure if possible.
Steam:
Maybe pull this apart?
https://github.com/Steam-Chat-Bot/Node-Steam-Chat-Bot

Telegram integration has been added


chore: Sync main with develop for release 1.8.1

Please provide the issue number

Issue number: #506
Summary
Changes
In this release we are happy to introduce two new converters for DateOnly and TimeOnly types. These are not supported by default on .NET 6 but will be included in Powertools.
We also fixed two bugs reported on the metrics utility.

Do not throw exception when decorating a non Lambda handler method
Do not throw exception when Metadata uses and existing metrics key
Do not throw exception on second invocation when using Metadata

User experience

Please share what the user experience looks like before and after this change

Checklist
Please leave checklist items unchecked if they do not apply to your change.

[x] Meets tenets criteria
[x] I have performed a self-review of this change
[x] Changes have been tested
[x] Changes are documented
[x] PR title follows conventional commit semantics

Is this a breaking change?
RFC issue number:
Checklist:

[ ] Migration process documented
[ ] Implement warnings (if it can live side by side)

Acknowledgment
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.

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

Comparison is base (bddf55b) 74.53% compared to head (bfa0ded) 72.07%.
Report is 27 commits behind head on main.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #508      +/-   ##
==========================================
- Coverage   74.53%   72.07%   -2.47%
==========================================
  Files          99      101       +2
  Lines        4041     4064      +23
  Branches        0      413     +413
==========================================
- Hits         3012     2929      -83
+ Misses       1029     1022       -7
- Partials        0      113     +113

Flag
Coverage Δ

unittests
72.07% <41.46%> (-2.47%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Files
Coverage Δ

...owertools.Logging/Internal/LoggingAspectHandler.cs
73.78% <100.00%> (-2.77%)
:arrow_down:

...da.Powertools.Logging/Internal/PowertoolsLogger.cs
85.95% <100.00%> (-7.18%)
:arrow_down:

...rc/AWS.Lambda.Powertools.Metrics/Model/RootNode.cs
100.00% <100.00%> (ø)

...rc/AWS.Lambda.Powertools.Metrics/Model/Metadata.cs
94.23% <66.66%> (-3.81%)
:arrow_down:

...s.Logging/Internal/Converters/DateOnlyConverter.cs
50.00% <50.00%> (ø)

...s.Logging/Internal/Converters/TimeOnlyConverter.cs
50.00% <50.00%> (ø)

...aries/src/AWS.Lambda.Powertools.Metrics/Metrics.cs
77.55% <19.04%> (-8.27%)
:arrow_down:

... and 38 files with indirect coverage changes

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


Get the package version from git tags for conda package builds

To provide some examples of what the package version generated from the git tag will be, assume that the tag is of the form v1.0.0.
What these changes do at the moment is:

when building on the commit with that tag, the package version will be of the form 1.0.0
when building on a commit that comes after the commit tagged v1.0.0 but before another tagged commit, the package version built will be of the form 1.0.0+post{N}, where {N} is the same value as the build_number in the meta.yaml https://github.com/DiamondLightSource/httomolib/blob/version-from-tag/conda/recipe/meta.yaml#L14

the build_number is incremented for each build done on an untagged commit
so, if three builds were done on different commits after the v1.0.0 commit and before any other tagged commit, those package builds would have versions 1.0.0+post1, 1.0.0+post2, and 1.0.0+post3 respectively (or maybe it starts counting from 0, I'm not sure about that, but you hopefully get the gist)

Ok, the CI worked to build and upload to the httomo channel, but it looks like a few improvements still need to be done:

the package version string that ends up in the .tar.bz2 file has the v in it still, it hasn't been stripped out (though I think the v is stripped out as far as the output of conda list is concerned when the package is installed from that file)
in the CI output, the wheel it has built is called httomolib-1.0.post11+git.37da0a98.dirty-py3-none-any.whl: from prevous experience, this makes me think that after installing with this built package, conda list and pip list will show a nasty version number that's similar to this, something like httomolib-1.0.post11+git.37da0a98.dirty, but I'll test that out to be sure

The leading v has now been removed in the .tar.bz2 file, and the .dirty is now correctly absent from the package version when listed by conda list.

Here's a quick synopsis of the current state of things:

git tags are used to mark production releases
tags are of the form v*, and the v gets trimmed from the tag to produce the version

ie, a tag v1.0.0 corresponds to version 1.0.0

production builds occur whenever a tag beginning with v gets pushed

so we will manually push tags to mark new release versions of the software
tags not beginning with v can be used to mark commits without triggering a production build

developer builds should occur every day at midnight (not verified yet, since cronjobs in github actions only work when the action YAML file is in the default branch)

the version of a developer nightly build should be understood in the following way: version 1.0.0 in a nightly build means "version 1.0.0 plus extra changes that have been added after version 1.0.0"


Add Script to Backport PRs to Multiple Branches

Tested on https://github.com/grpc/grpc/pull/25456 by creating the following PRs:

https://github.com/grpc/grpc/pull/25465
https://github.com/grpc/grpc/pull/25466
https://github.com/grpc/grpc/pull/25467
https://github.com/grpc/grpc/pull/25468
https://github.com/grpc/grpc/pull/25469
https://github.com/grpc/grpc/pull/25470
https://github.com/grpc/grpc/pull/25471

Example usage:
tools/release/backport_pr.sh 25456 gnossen "v1.30.x v1.31.x v1.32.x v1.33.x v1.34.x v1.35.x v1.36.x" "menghanl,lidizheng"

ObjC and iOS failures unrelated to this release management script.


Unable to create component using template

Expected Behavior
Component should be created in gitlab using template
Current Behavior
Exception while creating the component in gitlab.
Exception trace as below:
2021-11-12T20:24:36.000Z Beginning step Fetch Skeleton + Template
2021-11-12T20:24:36.000Z info: Fetching template content from remote URL {"timestamp":"2021-11-12T20:24:36.571Z"}
2021-11-12T20:24:37.000Z TypeError: Cannot read property 'id' of undefined
at _GitlabUrlReader.readTree (C:\svb\setup\backstageapp\node_modules@backstage\backend-common\dist\index.cjs.js:1753:63)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at async UrlReaderPredicateMux.readTree (C:\svb\setup\backstageapp\node_modules@backstage\backend-common\dist\index.cjs.js:1994:16)
at async fetchContents (C:\svb\setup\backstageapp\node_modules@backstage\plugin-scaffolder-backend\dist\index.cjs.js:271:17)
at async Object.handler (C:\svb\setup\backstageapp\node_modules@backstage\plugin-scaffolder-backend\dist\index.cjs.js:383:7)
at async HandlebarsWorkflowRunner.execute (C:\svb\setup\backstageapp\node_modules@backstage\plugin-scaffolder-backend\dist\index.cjs.js:2178:11)
at async TaskWorker.runOneTask (C:\svb\setup\backstageapp\node_modules@backstage\plugin-scaffolder-backend\dist\index.cjs.js:2433:143)
at async C:\svb\setup\backstageapp\node_modules@backstage\plugin-scaffolder-backend\dist\index.cjs.js:2427:9
Possible Solution
Component should be created using template
Steps to Reproduce
Step 1: Created a template for Springboot microservice targeting gitlab repository.
Step 2: Creating a component using #1 template
Step 3: Exception is generated as above
Template used: https://github.com/backstage/software-templates/blob/main/scaffolder-templates/springboot-grpc-template/template.yaml
except it uses our gitlab host in allowedHosts section
Context
I want to create templates specific to our needs and need to create components using these templates in gitlab
Your Environment

NodeJS Version (v14): node-v14.17.0-win-x64
Operating System and Version (e.g. Ubuntu 14.04): windows
Browser Information: chrome

Installed backstage in windows using the instructions in the backstage website.
app-config.yaml has integration section for my gitlab with token.
and a template is specified in this file under catalog.locations.

Re-opening as it looks like this is still happening.
Could be this line being thrown? https://github.com/backstage/backstage/blob/1379080c92b0d22c7df15cf71095b35fe0f89865/packages/backend-common/src/reading/GitlabUrlReader.ts#L191
Ideally I need someone who is facing this issue to do some more debugging, by logging what await commitsGitlabResponse.json() is. Could be something to do with @gitbeaker bumps or something.

I am also facing the same issue.

Can you help debug by adding some logging to the file in question? And running backstage from the repo with your app-config.yaml to try and work out what is going on?

See PR above for fix.


the babel-preset-app may be not working for es6 class properties

Version
3.0.1
Reproduction link
http://thereisnolink.ok
Node and OS info
nodejs v8.10.0 yarn v1.9.4
Steps to reproduce
定义
What is expected?
class properties can be right loaded
What is actually happening?
throw a error

Please provide a reproduction, as explained in the issue template.

@sodatea I think the Class properties transform is one of 3 we inlcude with @vue/babel-preset-app:
https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/babel-preset-app

Do not use includes.add, use transpileDependencies instead.
Because we've added a default exclude condition to babel-loader to exclude node_modules.
https://webpack.js.org/configuration/module/#rule-conditions

When using multiple conditions, all conditions must match.

Oh! vue-cli(3.0.0-beta.6) depend on webpack3.,vue-cli(3.0.1) depend on webpack4。 Maybe that webpack4 match strategy is different from webpack3？


JsDoc new line asterisk not recognized as punctuation

/**      punctuation.definition.comment.js
 *       comment.block.documentation.js
 */      punctuation.definition.comment.js

If not desired to change the base language, would this fit in a grammar extension? I would like to apply different color to the punctuation and the comment itself.
Thanks

Have you tried grammar injection?

No, because I don't like needles! :-) Well, seems like an interesting idea, when I get back to this I will try it.

@icetbr I have to admit, that I don’t really get what you refer to by ‚needle‘ I guess RegEx though.
Your issue has reminded me that I don’t like the situation you refer to in my slowly developing theme and I will try to find a solution and share it if you like.


Fix real deep watchers

I had a problem with some changes deep within some structures not coming through.
Apparently, a DictProxy is not an instance of Mapping... And the same goes for the other proxies. I thought I had tried and tested this before (in a REPL I believe), but I must have done something weird.
Anyways, I've updated traverse with checking for the specific types that we support and now it all seems to work as intended!

LGTM


build: push monolith image to GCR

Part of #287. This add as a build action that pushes a monolith to Google Container Registry, which is public unlike AWS, where a Heroku PR review app in the mobile repo can deploy it.
(Currently doing it on a PR to test the action)

Confirmed build and push on branch test:


nixos/atuin: add maxHistoryLength

Description of changes

Add config option introduced in ellie/atuin#447.
atuin#321 - "Allow for larger commands" limits this to 32768 on the client side.
Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 221849 run on x86_64-linux 1

2 packages blacklisted:

nixos-install-tools
tests.nixos-functions.nixos-test


Have simple JS object for configuration proposal

Proposal for #667
At the end, my initial idea didn't work as I expected; although, as I commented, I did such change in the build templates files of the application which I'm working on, I didn't realize that the value injected in the process.env were expected object (the first commits on this PR reflected those changes), because webpack v1 didn't build an invalid build and I was at the beginning of the application that I'm building, so I was not using any value from the process.env object inside of my application at that moment, hence I never saw any issue.
When I migrated to webpack v2 template, manually; I found an error in the web console when I was serving the build (dev and prod) and I didn't understand what I missed in such upgrade, threofre I reverted my changes in the template build files and upgraded the template to the current version, without messing arround with personal changes.
Working in this proposal, I've realized that such error was due the changes that I've done in the first commit of this PR, so I had to create a simple helper function to achieve what I expressed in #667
I haven't squashed the commits because it provide context to this commet, if you like this and you want to merge, I can squash them if you want to.

What if the user wants to pass something that is not a string?

I thought that, but my rationales is, that those values come from filenames which, due their name, look that are designed to define environment variables, so I would treat them as if they were common environment variables, hence their values are strings.
I prefer to narrow the options when developing, to avoid the chances to mess the implementation because people have the options of doing so. I'm down for allowing to pass code fragments in the environment variables because for me, such logic should be implemented in the application, hence which is left? Booleans, OK, not a big deal, I can make the change to pass booleans values if that's a concern
Obviously this is a personal opinion, so if you prefer to keep that flexibility, I understand.


Equivalent of password_needs_rehash()

Hi Michal
I'm starting to use this library on my projects (initially to store OTP secrets in the database).
When considering key rotation, I think equivalent of password_needs_rehash() function would be useful. I'm using that currently to check whether bcrypt hash needs rehashing on user's login and was thinking about the same for this.
Yes, one could either re-encrypt it every time (every login) or run a foreach on all records on re-key, but that's not the point.
I believe the implementation is trivial and I'm more than happy to prepare PR.
Before I do that, I wanted to ask you whether you would consider this functionality to be merged or not?
Also, I was thinking about the best method name, needsReencrypt(string $data): bool maybe?

Hi @stpnkcrk! Yeah, I think that a good idea and something that's indeed missing so I'd definitely consider adding something like that.
Maybe needsReEncrypt with uppercase E would be a more correct name ("needs re-encrypt"), what do you think?

Fully agree. Just've found out that for example AWS using ReEncrypt with capital E so that's another supporting argument.
Thank you, I'll prepare the PR then.


Fixed problem with Ruby 2.4+ on function prepend_before_filter

Fixed a problem with grammatical update of Ruby 2.4+ on function prepend_before_filter.

Hi @wangguoqin1001, thanks for your contribution but this was already added to the 3-stable branch. https://github.com/plataformatec/devise/commit/53957d921b01e993222def6c051901bb4cbe4be9


Question about the pretrain data of indomain image-text pairs (COCO and VG)

I would like to know when you train the checkpoints for the BEiT3-large-indomain version, do you use COCO only with the COCO train or is the COCO val data also fed in for pre-training? And are some of the images in the VG that contain COCO val data also used for pre-training?

Hi @XRsalt, we only use COCO training data and do not use the COCO val data in VG.


Doc: Need to specify the concurrency model for WithSequence loop

Need to specify the concurrency model for WithSequence loop
WithSequence  loop  concurrency behaviour is currently not documented clearly as parallel or sequential.
The other thing  unclear: How are the outputs.Parameters or outputs.Artifacts of an item in the sequence related to each other.
Is each output independent or they are aggregated as one single output?

Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

Expanded steps, i.e.withItems, withParam, and withSequence are launched in parallel with non-deterministic ordering.
Expanded steps do not currently provide a way to access the aggregated output artifacts. Parameters can be accessed.
See #934

Would you like to submit a PR to update the docs?

No concept of waitGroup for Items???


Various 1.1 updates

Add tip about space-separated transaction options
Note no diff in perf or storage between string(n) and string
Mention system-wide file descriptors limit

This change is

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/e2c3cb2050e385f3dacd6513527a6b5d9039b009/

@dt, please check commit 1.
@mjibson, please check commit 2.
@bdarnell, please check commit 3.

Skip the second commit for now. While it's true that length limits per se don't improve performance, very large column values in indexed columns can cause problems (cockroachdb/cockroach#19746). We're probably going to come up with guidelines that encourage limits here.

Review status: 0 of 7 files reviewed at latest revision, all discussions resolved, all commit checks successful.

Comments from Reviewable

The rest LGTM

Review status: 0 of 7 files reviewed at latest revision, all discussions resolved, all commit checks successful.

Comments from Reviewable

Removed commit about string vs. string(n).

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/2a58f57525715cca1ca3cd376a126f979be2e8d5/


Meter not showing as grid in venusOS

Hi @RalfZim,
thanks for sharing this great idea. I'd like to use a very similar approach, but with a modbus meter that is connected to and logged by my home assistant system. In the end it is also a couple of HTTP requests and updating the values on the dbus.
My code (hosted here) is basically running and the values are shown in the device in venusos (running on raspi).

Somehow, the meter is not associated with the grid values by venusOS.

Also, it doesn't show up in the Energy meters section, though I'm not sure it should...

Any ideas?
Thanks!!

Update: I just got one step further along the way (had the ACin not properly switched on). Now I can see grid values like those:

Problem is: these values are somehow calculated from the PV inverter by the venus OS and showing wrong values (higher than the actual meter's values). These grid values are even shown and calculated, when I remove the dbus-fronius-smartmeter service.
Any ideas?

Hello,
it is the same for me. I have forked one of the forks of this dbus projects (Link). I see the values in the menus but not as grid and also no AC loads. Are you any step further @morphZ ?

I found the problem!! 🎉
I have invested quite a bit of time reading through the venus OS sources and found out, that the servicename for the dbus service needs to include at least com.victronenergy.grid. (mind the . in the end) to be included as a grid value.
So setting the servicename in my case to com.victronenergy.grid.ha1 fixed the issue. You can see it in here in my code. It should also work for the original code of @RalfZim.

PS, I created PR #18 for your repo, @RalfZim

Seems to work, Thank you!

But should't it be listed here?

Same for me: Under Energy meters the list is still empty. Any ideas whats wrong?

@pos-ei-don @Dan1elGe
I read somewhere in the victron forums, that only the modbus driven meters show up in this list. But I can't remember where exactly. Anyway: it shouldnt't be a huge difference, as you can access all the data at the top level of the menu, and it is not required for the ESS system work.
I run my ESS now quite stably and satisfyingly with the driver (actually with a modified version of dbus-smappee, but it's working quite similar).

Thank you for All your comments.
So it is a configuration error at my side.
I want to configure self usage and Charge PV to the battery,  I have 2 energy Meter,  and my victron ess seems to select the wrong internal energy Meter.

@morphZ
Thanks for this hint that the appearance of the smart meter under energy meters is not necessary for ESS. My system now also works as expected:


[MTSRE-500] Using PackageName to extract Addons

Description
A new PackageName property was introduced here:
https://github.com/mt-sre/managed-tenants-cli/pull/134
The PackageName is what we are actually looking for. Most of the time,
it's the same as the OepratorName, but not always.
Depends on https://github.com/mt-sre/managed-tenants-cli/pull/134

Closing as obsolete.


Mouse cursor shape

As of version 0.2.2, when an editor is open in the right pane the mouse cursor remains a caret symbol when hovering on all clickable tree nodes (left pane) and buttons except Doc, Paredit and ? buttons.
Also, when hovering on Find and Replace text boxes (in editor pane) the mouse cursor remains a pointer - it should become a caret symbol.

Probably not an issue anymore since I rewrote Nightcode :)


Add scsi controller option and wwn to virtual disks

We've added the facility to define a disk bus type of scsi to the
specification of a disk in the domain definition.  If the disk is
a scsi disk, a random wwn is generated unless a wwn is provided for
that disk.
The disk stanza now looks as follows:
disk {
volume_id = "${libvirt_volume.mydisk.id}"
scsi = "yes"
wwn = "05abcd123456789a"
}
Having "scsi" present with any value will specify a scsi bus for
the disk.  If "wwn" is present for a scsci disk then the value of
"wwn" is used for the disk wwn, otherwise a random value is generated.

Coverage decreased (-0.02%) to 46.598% when pulling<PHONE_NUMBER>7b6603390ddd10174a41d366e745cc on eamonnotoole:add-disk-wwn into 68630335a6c23ab544661b8ef9c6692df886fd7d on dmacvicar:master.

Coverage increased (+0.08%) to 46.69% when pulling e67375424911ee63aea905a9120d99472811e13f on eamonnotoole:add-disk-wwn into 68630335a6c23ab544661b8ef9c6692df886fd7d on dmacvicar:master.


Change tilemap opacity based on layer opacity

i'm not sure i would want this, if it's not something i have set in TIled already ?

@vichug I'm not sure if understand your comment (that for some reason don't show up here in GitHub). I'm just guessing that since Tiled has layer opacity by default and those are converted to Godot tilemaps, which also have opacity, this information should be imported too.


[ENH] - Add option to customize .condarc  default environment paths in jupyterhub_config.py

Feature description
Currently, when users create an environment using conda-store, it is not automatically available for use in both the Terminal and Jupyter Notebook. This creates inconvenience and inefficiency as users have to manually configure their environments for each use case.
We need to ensure that newly created environments are automatically accessible for users in both ecosystems when they spin up a new lab server.
For reference, a similar functionality is implemented in Nebari (linked below). However, conveniently conda-store group environments seems to be already present on the user terminal so changes on this regard doesn't seem to be required (e.g catching the  groups object as in the Nebari's implementation )
Reference:
Nebari Environment Setup
Current Configuration Example:
{
  "envs_dirs": [
    "/opt/conda-store/conda-store/{username}/envs"
  ],
  "changeps1": true
}

Value and/or benefit
Users will be able to access and experiment with their conda-store environments.
Anything else?
No response

Merged in #148


Upgrade default helm chart versions to support Latitude deployments

:tada: This issue has been resolved in version 0.27.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Change nay to  née in README.md

"Nay" means "no". I think what's meant here is "née", meaning "born as".

TIL! Thanks :)

Actually now that I'm reading the definition, I think I need to reverse the terms. I'll do this on my branch.


Fix/dont throw on get metadata storage

Because node module resolution happens before we can call Initialize, the @Collection decorator throws when it's module is resolved. We're getting around this in test because the intialize call and collection decorator are in the same file or, in the case of the integration tests, because we're telling mocha to call initialize in the setup.ts before module resolution comes in a messes everything up.
I'm pretty sure this works (at least the tests pass for me locally) and doesn't break current API. If there's a better solution then great!
Note: Typeorm has a very similar API but specifically does not allow the user to set a non-global store. Its getMetadateStore method does the same check-and-if-null-create I've implemented here. For reference: https://github.com/typeorm/typeorm/blob/e589fda2474dbd5547e9982f4aa4c66b27847c10/src/index.ts#L172
@wovalle Curios to know your thoughts on this

I'll take a look at the failing build tonight...

I'll take a look at the failing build tonight...

Oh, Travis won't let this build pass because missing (maybe encrypted?) env configs. But passes locally!

Hey! I'll take a look at this PR tonight :)

The reason why I'm throwing an error if you haven't called the Initialize method when trying to get info from the MetadataStorage (i.e. declaring a Collection/SubCollection) is to prevent you (the user) to store information where you didn't intend it to.
Let's say you're running the tests. If you call any file that contains a Collection Decorator, fireorm automatically will try to store that in the MetadataStorage. If after registering the Collection you call the Initialize method you'll change where the Metadata will be stored from now on, but the collection you registered before is already registered somewhere else. If you try to use that collection, fireorm won't find the metadata and will throw a runtime error.
That's why I'm enforcing users to manually call Initialize method, so you (as an user) always know where your metadata is stored (and if you don't pass anything as the second parameter in Initialize, fireorm will store the metadata in a global variable).
The reason the tests are passing in your case is because I'm calling Initialize in all the test files before importing files that trigger changes in the metadata (for example, files with the Collection decorator). (thanks, I should create some tests for it).
Typeorm doesn't have that problem because they require you to specify where your models files are located, so they can run them and store the metadata. I don't know any elegant way to guarantee the integrity of the metadata storage, I'm open to suggestions.

The reason why I'm throwing an error if you haven't called the Initialize method when trying to get info from the MetadataStorage (i.e. declaring a Collection/SubCollection) is to prevent you (the user) to store information where you didn't intend it to.

The critical piece of this is that fireorm let's a user define their store as non-global. Typeorm does not give users this option and I think I understand why now. It's simply unrealistic to ask a user to not use modules. So, in their case, if the Entity decorator gets called before any other part of TypeOrm boot, it will create the store on the global scope (aka. the only scope known to TypeOrm).
I totally understand a user can use Collection and then scratch their heads because they never called Initialize and fireorm should definitely call that out, but there's two different things going on.
One step to Initialize is setting up the store, which, in fireorm's case can be declared non-global, which adds flexibility but also, imo, confusion. The other step is setting up the remote datasource (firestore) and setting that on fireorm. I think it would be much more understandable if the user did not have to think about where the storage was at all. Firestore definitely needs to be initialized at some point during boot, but certainly not before module resolution. I think we can and should certainly throw a "YouHaven'tConfiguredFirestoreError" if the user tries to use a method that requires it.

Typeorm doesn't have that problem because they require you to specify where your models files are located, so they can run them and store the metadata. I don't know any elegant way to guarantee the integrity of the metadata storage, I'm open to suggestions.

If you initialize an Entity in Typeorm and the store hasn't been set yet, that's when Typeorm will set it for the first time. It always knows it's the right store because it can never be defined as non-global. It asks you to specify where the models are for setting the particular connection for those entities. If you have two separate databases, Typeorm wants to know which entity to hook up to which. The metadata store is shared though.

The reason the tests are passing in your case is because I'm calling Initialize in all the test files before importing files that trigger changes in the metadata (for example, files with the Collection decorator). (thanks, I should create some tests for it).

Yes! You're completely correct. If we were to initialize the Collection prior to the Initialize call in the tests, most of them would break because they use non-global stores. So, my question is, why have an option for non-global storage? If the reason is for testing, then I'm pretty sure we can write setup and tear-down hooks that would handle the global storage issue.

Sorry, don't mean to keep rambling, but for reference, here's typeorm's explanation for only using global storage:
    // we should store metadata storage in a global variable otherwise it brings too much problems
    // one of the problem is that if any entity (or any other) will be imported before consumer will call
    // useContainer method with his own container implementation, that entity will be registered in the
    // old old container (default one post probably) and consumer will his entity.
    // calling useContainer before he imports any entity (or any other) is not always convenient.
    // another reason is that when we run migrations typeorm is being called from a global package
    // and it may load entities which register decorators in typeorm of local package
    // this leads to impossibility of usage of entities in migrations and cli related operations

I should say I'm really impressed by fireorm and excited to start using it in my projects!

I think you are right @zhirschtritt, fireorm shouldn't force where to be initialized. The reasoning behind me adding the check because it was happening to me when creating the tests (as you said).
But my fear is still there: calling Initialize with a local store and then having metadata in two places. I think what can be done is the following:

Initialize the global store if it was not initialized yet
Throw some error if you're calling Initialize with a local store and it was previously initialized automatically.

This way the unit tests can continue working while I don't force users to initialize fireorm before the files are loaded :)
Fun fact: I thought that there were two different people interacting with this pull request because of the two avatars 😂

Oh yeah! Sorry, i have too many github accounts! Should consolidate...
I'll update the PR with your suggestion and add some coverage. Thanks!

Note: Still WIP at this stage, just trying out an approach.
Question for @wovalle: Are you interested in adding a test coverage tool and if yes, should we add that check in CI? I'm not a huge fan of missing test coverage blocking merges, but I do find it to be a helpful guide rail.

Yeah, coverage would be good. Will create an issue so it can be done in another PR.
Let me know when to check the PR :)

@wovalle As I'm working through the tests I'm having a hard time dealing with the local/global store conflicts. I don't see a use case for local stores for end users of this library and I've fixed the tests locally such that they don't conflict even if they all use the same store (basically a purgeStorage method in a beforeEach call). TL;DR: I'm loosing steam on this issue while debugging global/local/module-scoped vars hidden everywhere and I'd like to make everything global as a starting point.

I think I might be missing the complexity from the proposed implementation in this comment. Isn't it just add an if clause in the initialize method to check that the store wasn't initialized before and initializing in it as global store if no local store is passed?
So far I'm only using the local store to unit test the decorators. I have no problems in going full global if an alternative to such unit tests is proposed.
@z-hirschtritt

Hey, I found the problem with the integration tests failing. For security reasons, encrypted environment variables are removed when pull requests are made from forks. Given that I do have sensitive information I cannot just accept any arbitrary PR to access the vars... I'll try to see how is done in the wild and I'll get back to this PR.
If this is finished before, I'll just cherry pick the commits in a branch and push it myself :)

These latest commits blow away locally scoped store instances. I think this is the ticket, but I think we may want to review test setup and teardown scripts to ensure I'm not doing anything really stoopid.

Hey @wovalle, thanks for the 👀 !
I will change the function() instances back to () => {}. It was mostly readability thing for my own brain.
The describe to context thing is worth keeping I think. While reading through the tests, I kept seeing describe and thinking, is this test in a new context? And then I would have to scan back up  to see it was nested in a top-level describe. I get that they're the same, but context says to the reader: I'm a mere child. This blog post has better words than me: http://lmws.net/describe-vs-context-in-rspec . describe -> context -> it is the standard hierarchy and using a different one (or none) makes the code less readable for everyone else.
Another minor thing about the tests is that Mocha wants people not to use arrow functions.
All that said, I totally get that these changes are 100% outside the scope of this PR, so feel free to tell me to buzz off! I can open new PRs or none at all.

Still not familiarized with the describe/context but it makes sense. I'd like to dig deeper about this but in another PR because if this is adopted we have to modify the tests in the entire project.
About not using arrow functions, they advise that so you can set timeouts (and other attributes) on each describe, but that feature is not used in the unit tests so arrow functions are ok.
Thanks for the effort you have put into this PR, I super excited to merge it!

I'll make the fixes/reverts suggested within the next day or so. Thanks!

Looks like there's still a bug in the unit tests and how they interact with integration tests. Looking into it

This is perfect!
The problem with the tests is that this PR comes from a fork and the env vars are not inserted. I'll work on something to enable this.
In the meantime, I'll merge this PR to an intermediary branch so the integration tests run. I'll also release this PR as a feature rather than a bugfix, since API changed. It should be totally backwards compatible but just to be sure.
Thanks for this, I'll add you as a contributor as soon as this is merged :)

@all-contributors please add @z-hirschtritt for code and ideas


docs: update discord badge in readme

Checklist:

[X] I have read and followed the contribution guidelines.
[X] I have read and followed the how to open a pull request guide.
[X] My pull request targets the main branch of freeCodeCamp.
[X] I have tested these changes either locally on my machine, or GitPod.

Use Discord icon. Lable the badge as "discord". Use the official Discord logo's color value of ~5662F6~ 5865F2.

Hi @MichaelHinrichs. Congrats on your first pull request (PR)! 🎉
Thank you for your contribution to the page! 👍
We are happy to accept these changes and look forward to future contributions. 📝


Selection of Errors in Ranking Loss Computation

def ranking_loss(error, penalize_ratio=0.7, extra_weights=None , type='mean'):
    error, indices = torch.sort(error)
    # only sum relatively small errors
    s_error = torch.index_select(error, 0, index=indices[:int(penalize_ratio * indices.shape[0])])
    if extra_weights is not None:
        weights = torch.index_select(extra_weights, 0, index=indices[:int(penalize_ratio * indices.shape[0])])
        s_error = s_error * weights

    if type == 'mean':
        return torch.mean(s_error)
    elif type == 'sum':
        return torch.sum(s_error)

why selects the errors from the already sorted error tensor ?
why not to select the smallest errors from the original error tensor

I just wanted to open up ticket for this myself. I also think that the index_selection is wrong and should be replaced by a simple crop of the error tensor. E.g.:
s_error = error[:int(penalize_ratio * len(error))]

I just wanted to open a ticket for this myself. I also think that the index_selection is wrong and should be replaced by a simple crop of the error tensor. E.g.: s_error = error[:int(penalize_ratio * error.shape[0])]
Edit: the weights selection is correct though

When running the owl example with the correct index selection, it seems that the results are not good. The mesh only contains the body and is missing the horns and feet.

That's right. I get the same results. In my opinion, this function does not work as intended and can be removed safely.
At the moment it is equivalent to a (random) dropout layer.


swift 5.0 控件重叠

New Issue Checklist
🚫 If this template is not filled out your issue will be closed with no comment. 🚫

[ ] I have looked at the Documentation
[ ] I have read the F.A.Q.
[ ] I have filled out this issue template.

Issue Info

Info
Value

Platform
e.g. ios/osx/tvos

Platform Version
e.g. 8.0

SnapKit Version
e.g. 0.19.0

Integration Method
e.g. carthage/cocoapods/manually

Issue Description

这样写代码控件重叠有知道原因的吗
⚠ Replace this with the description of your issue. ⚠

snp版本 5.0.0


update dependencies. drop Scala 2.10

enable laws project compile with Scala 2.13.0-M4
update discipline, refined, scalacheck and scalatest
drop Scala 2.10. discipline 0.10.0 does not support Scala 2.10

Thanks @xuwei-k :+1:


Rename Marker Icons Filenames

For file organisation let's have a prefix for each icon image with icon-x.png
icon-caption.png
icon-marker.png
...
etc.
That way when we are sorting files alphabetically in finder, all icon files would appear together.

Done, will be in 0.2.8.
New filenames for icons:
icon-caption.png
icon-marker.png
icon-marker-chapter.png
icon-marker-todo-incomplete.png
icon-marker-todo-complete.png

Will close this for now.


Update walkthrough theme picker tiles

Ref: #165846
These tiles look out of place. At minimum, they should snap to the abstract artwork style we are using for the built-in walkthrough SVGs.

Completed as part of https://github.com/microsoft/vscode/pull/166651


Would it be possible to kindly share the downscaling data?

I apologize for this request, but the raw data is extremely large and inconvenient to download and organize. Would it be possible to share the downscaled dataset after processing?

You can download the low-resolution data here https://huggingface.co/datasets/jasonjewik/climate-learn
This is part of our benchmark paper https://arxiv.org/abs/2307.01909

I'm closing this issue due to inactivity, but feel free to open it again if the problem persists


Add ffmpeg option and fix small bug with notification framework.

New UI changes:

fixes #67

@Tursko can you test this tomorrow?

Yes. Can you elaborate more on the notification bug?

Yes. Can you elaborate more on the notification bug?

https://github.com/shotr-io/shotr-3/pull/104/files#diff-2567da71b828d28c58955923768cc02102bd0b517f87797ab840a52fa5baf302R30
Specifically this part.


IN condition in Postgres

Is there a way to create a query like the one below with the query builder?
SELECT id FROM foo WHERE id NOT IN (1, 3, 5);

Looks like I forgot to add NOT IN when I added IN. If you're on PG I'd recommend using .ne(any(array)). I'll add NOT IN for SQLite in the next version though.

Ah, I didn't realise I could use .ne(any(array)). Thanks!


Parallelize script to read in bundles and populate an S3 bucket with de-duped files.

As part of the effort to migrate DCP 1.0 data into DCP 2.0 and convert the metadata schema into the DCP 2.0 metadata schema, the end-to-end conversion occurs in two steps:

First, the full set of bundles for a single project is downloaded to an EC2 instance following which a script reads, each file in the bundle, determines whether it has been previously copied to an S3 bucket via checksum, and if not, copies the file over to an S3 bucket in the DCP 2.0 AWS account. The files are "flattened" which means that it no longer only exists in its bundle directory so that duplicates may be removed. This process also allows us to retain a lossless copy of all DCP 1.0 data.

Once all the data for a project has been copied and de-duped into a single folder in an S3 bucket, a script reads each file, and if it is related to constructing the metadata graph for the project (these are all the .json files), reads the entity into a Python object. Once all entities have been read, all links.json files are read to construct the edges between the Python objects that have been created. Following this, the metadata graph is transformed into entities that can be directly inputted into the Ledger using the DCP 2.0 metadata schema.

This ticket refers specifically to part 1 of the above process. This script has no parallelization and is disconnected from the "download_bundle" portion so the goal of this ticket is to speed-up the script as well as connect it to the downloading of the bundles.

Hey @MDunitz, just wondering what the status of this ticket is; I know that you managed to copy over all the data to an S3 bucket but what's the status on the script getting checked in? Doesn't need to be perfect since we hopefully don't need to do it again, but probably safe to have it around just in case.
Also, just curious, what were the changes you made the script to make it run faster? Just threaded? And how quickly does it run?
Question for @ambrosejcarr: the S3 uri for most of the FASTQ/BAM/etc. files use the FQID as the filename instead of the old SRR1234567_0.fastq.gz. FQID I realize is a much longer filename and I realized that the link will be exposed in the browser directly to download. Do you have a preference whether we just use the old name ("SRR1234567_0.fastq.gz") or the fqid ("0e7b2404-c529-43fb-a55d-199a76caa860.2019-08-01T031948.896Z.fastq.gz")?

In my opinion, we need to use the old name. The fqid is a left over from DCP 1.0 DSS data model that has no bearing on 2.0. It will only serve to confuse users even if its packaged up

@liaprins-czi has started some work on file naming in #75 that @jahilton is consulting on. The decision there should govern file naming. If that's blocking, using a placeholder in the interim is acceptable.
While the published artifact will contain files and should have informative names, the browser will not be directly serving those files initially, it will be bundling fastq and bam files by metadata categories and will be slicing up matrix files into smaller pieces to match the same metadata categorization.

@MDunitz Given the above discussion, would you be able to re-transfer/copy the files please using the original names instead of the fqid. I suppose in retrospect, it also makes it easier to run the second half of the script that Brian was working on, since it implies the names of files based on the filename attribute of sequence_file.json or analysis_file.json. Likewise for the metadata files that use the filename to determine what kind of entity it is. Apologies for the re-run!
Thank you!!

So currently the s3uri for the data files is a concatenation of the hashes for the file (to simplify copying over the data and avoid pulling large data files more than once).
The file name for metadata (json) files is the fqid because I thought that would make it simpler to connect to links.json (which refers to files by their uuids).
It’s fairly simple to rename the files (now or when we read them in as python objects) if we prefer a different naming structure.
Due to the size of the data files I think it’s probably worth it to continue to name them based on their hash to avoid storing multiple copies under different names.
There may be a way to do sym links in s3 or change the name of the file when it’s downloaded to make it more clear for users.
@maniarathi re status I’m mainly waiting on a rereview.
Copying the data files takes ~24hrs for ~20tb. The metadata files take about 12hrs. They are currently available in the s3 bucket but I think it might be faster to read them into the db from the ec2 instance

Sorry saw your comment after I made mine. Happy to update the script and rerun

Thanks @MDunitz! Oops, sorry, will re-review today :)
Are there duplicates of the data files? I thought the only ones that were duplicates were some of the zarr cell or gene attribute name files which are small and easy to de-dup via checksum. The large files, like the BAMs and the FASTQs are all unique?

I could be wrong but I thought there was concern about the same data file being referenced with a different uuid/name in different bundles.
I used the bundle manifests to ensure I only pulled data files associated with the 29 projects that are currently available in prod. I also wasn’t confident the file names in the bundle manifest were unique across all projects.

Hey @MDunitz, could you merge the PR associated with this ticket and close please? Thanks!

@maniarathi can you accept the changes you requested and lgtm the pr first?

Oops! Done!


Wrap text doesn't work well in CodeAreas

Line wraps of just a few characters don't work properly in CodeAreas.  To see the problem, do the following:
Take the JavaKeywords.java demo and insert the following line at line 84:
codeArea.setWrapText(true);
Now run the demo.  The following two actions show the problem:

Start typing on a line to make the line long enough to cause wrap.  The first few characters that are wrapped overlap the characters on the next line instead of appearing on their own line.  Eventually, the wrapped characters appear on their own line, as they should.
Grab the right edge of the window and slowly move it to the left to shrink the width of the window.  The text in each line will wrap when the window gets small enough, but at first each line wraps into the next line and overlaps the text on that line.  Also the font is messed up.  Eventually, as you keep shrinking the width of the window, the wrapped characters appear on their own line but the font is still messed up.

It is my impression that the problem is due to the line numbering.  The width of the line number labels on the left side of each line doesn't seem to be taken into account when doing the wrapping.

Here is a video showing overlapping text lines.

There was an issue that the width of the line number was not taken into account for height calculations, as @djskrien pointed out.
@melkhaldi I was not able to reproduce your issue, which does not involve line numbers at all. Can you please check if the issue is still present with 0.6.3 and, if possible, the latest JDK (8u40 build 23)?

Hi Tomas, seems to work fine. I'll report if I comes across the issue again.
Thanks!


Pretty-ify generated JS code

Right now it has crazy indentation, we should make it pretty!
@ashleygwilliams says we should use prettier!

@alexcrichton does this mean the CLI will depend on Node being installed?
If so how would you feel if we modify the output to be TypeScript and simply run it through the TSC into JavaScript if people don't specify --typescript?
That way we get the declaration file automatically.

@corbinu hm perhaps! I'm not actually too sure how this would work, I'm pretty unfamiliar with pretty myself. I think for now we'd probably want to shell out to something rather than embedding a JS interpreter in wasm-bindgen itself, but we can also probably gracefully handle the case where it's not available and just opportunistically do it.

i was thinking that we might just first implement it for when tests are run as that's really the time where a prettified output would be appreciated. post that i think there might be some fun compile stuff we might be able to do to make it work, or there's always just porting it entirely to rust ;)

Ok no worries. I can put something together that shells out

Awesome! Let me know if you need any help @corbinu

Will do! Still experimenting but going to need a lot of feedback.

@kwonoj it's true yeah we probably wouldn't want to ship node with wasm-bindgen, but that being said I think it'd be possible to opportunistically try to prettyify code and silently avoid that if it's otherwise not available.
Another option here is to simply generate prettier code! I've added a few commits to do this historically, and there's just a few places left that produce ugly code by default I believe

simply generate prettier code

actually this seems most feasible solutions :)

FWIW the parts of the code that need fixing I believe are mostly related to generating class Foo { .. } and member methods. That, and the --no-modules output could still use a bit of improvement

Fixed in https://github.com/rustwasm/wasm-bindgen/pull/268 I believe, thanks @FreeMasen!


'.' as trigger character for pointers

struct Circle {
  int radius;
};

int main() {
  struct Circle c;
  struct Circle *c_ptr = &c;

  c_ptr[X]
}

With the ccls language server, typing . where indicated in the above code will trigger a completion request, and selecting that completion will complete as c_ptr->radius.
It would be nice if clangd also supported something like this.

This does work for me, exactly as described.


How/where to save these forms?

Let's avoid saving these to an external server. They are going to contain internal information.
So, we can either save the files to our local computers, or encode them into each ticket in RQ, using a note or custom form.
It's not obvious to me how we can programmatically add notes or custom forms, but if we could - problem solved.

Yeah, if we can find the API call to add a note I'd say that mixed with making that note hidden would be the best route. Regardless it may be a good idea to encrypt the data  first anyway so someone couldn't listen on calls and pull the packets

Side note, will be using this account not my old one.


Inconsistent query results with filter

EdgeDB Version: 4.5+22da9c8 Docker (rev 0c24ca886)
EdgeDB CLI Version: 4.0.2+b26c502
OS Version: Docker 24.0.6 (build ed223bc) with Windows 10 22H2 (Build 19045.3930) as Host OS

Steps to Reproduce:

Setup an EdgeDB instance
Migrate to the below schema
Pipe contents of the Seed section below to edgedb
Run the query select Item filter (.parent ?= <Item>{}) and (.category = <Category>"Products") and observe no results being returned, despite there being items that match the filters.
Flip the conditions and run select Item filter (.category = <Category>"Products") and (.parent ?= <Item>{}) and observe that this time there are items being returned and they're ones that match both filters.

Interestingly the query from step 4 also works if parent is included in the Item shape, as in:
select Item { id, name, parent } filter (.parent ?= <Item>{}) and (.category = <Category>"Products").
Below you can find the query, their results and their generated SQL for both queries.

Broken query
select Item { id, name } filter (.parent ?= <Item>{}) and (.category = <Category>"Products")

[]

WITH
"t_schema::ObjectType~1" AS NOT MATERIALIZED
  (
  (SELECT/*<pg.SelectStmt at 0x7f86ea6632d0>*/
          "expr-4~2"."ObjectType_value~1" AS "expr~4_identity~1",
          "expr-4~2"."name_value~1" AS "name_value~2"
      FROM
          LATERAL
          (SELECT/*<pg.SelectStmt at 0x7f86ea663790>*/
                  "ObjectType~2".id AS "ObjectType_value~1",
                  "ObjectType~2"."9f6dd92a-0a42-5341-b599-fbf5494fd973" AS "name_value~1"
              FROM
                  edgedbstd."2662a1b4-4f3f-5875-b6eb-ce52101a90a3_t" AS "ObjectType~2"
                  CROSS JOIN LATERAL
                  (SELECT/*<pg.SelectStmt at 0x7f86ea670b10>*/
                          ("expr-1~2"."expr~1_value~1" OR
                           "expr-2~2"."expr~2_value~1") AS "expr~3_value~1"
                      FROM
                          LATERAL
                          (SELECT/*<pg.SelectStmt at 0x7f86ea671210>*/
                                  (NOT "ObjectType~2"."101d5f8c-251a-5fee-b30d-c0a3ed3ded56") AS "expr~1_value~1"
                          ) AS "expr-1~2"
                          CROSS JOIN (SELECT (NULL)::uuid AS "v~2") AS "v~1"
                          CROSS JOIN LATERAL
                          (SELECT/*<pg.SelectStmt at 0x7f86ea671710>*/
                                  ("ObjectType~2".id IS NOT DISTINCT FROM "v~1"."v~2") AS "expr~2_value~1"
                          ) AS "expr-2~2"
                  ) AS "expr-3~2"
              WHERE
                  "expr-3~2"."expr~3_value~1"
          ) AS "expr-4~2"
  ))
SELECT/*<pg.SelectStmt at 0x7f86ea63e8d0>*/
      (
      (SELECT/*<pg.SelectStmt at 0x7f86ea630b50>*/
              "str___tname__~2"."expr~10_value~1" AS "__tname___serialized~1"
          FROM
              LATERAL
              (SELECT/*<pg.SelectStmt at 0x7f86ea660b90>*/
                      "expr-10~2"."name_value~6" AS "expr~10_value~1"
                  FROM
                      LATERAL
                      (SELECT/*<pg.SelectStmt at 0x7f86ea661990>*/
                              "str_name~2"."name_value~5" AS "name_value~6"
                          FROM
                              LATERAL
                              (SELECT/*<pg.SelectStmt at 0x7f86ea662290>*/
                                      "q~3"."name_value~4" AS "name_value~5"
                                  FROM
                                      LATERAL
                                      (SELECT/*<pg.SelectStmt at 0x7f86ea662690>*/
                                              "q~2"."name_value~3" AS "name_value~4"
                                          FROM
                                              LATERAL
                                              (SELECT/*<pg.SelectStmt at 0x7f86ea662cd0>*/
                                                      "Item~2".__type__ AS "__type___identity~1"
                                              ) AS "q~1"
                                              JOIN LATERAL
                                              (SELECT/*<pg.SelectStmt at 0x7f86ea663650>*/
                                                      "t~1"."expr~4_identity~1" AS "expr~4_identity~2",
                                                      "t~1"."name_value~2" AS "name_value~3"
                                                  FROM
                                                      "t_schema::ObjectType~1" AS "t~1"
                                              ) AS "q~2"
                                                  ON ("q~1"."__type___identity~1" = "q~2"."expr~4_identity~2")
                                      ) AS "q~3"
                              ) AS "str_name~2"
                          LIMIT
                          (SELECT/*<pg.SelectStmt at 0x7f86ea6782d0>*/
                                  (101)::int8 AS "expr~9_value~1"
                          )
                      ) AS "expr-10~2"
                  LIMIT
                  (SELECT/*<pg.SelectStmt at 0x7f86ea661910>*/
                          (101)::int8 AS "expr~11_value~1"
                  )
              ) AS "str___tname__~2"
      ),
      (SELECT/*<pg.SelectStmt at 0x7f86ea63e5d0>*/
              "uuid___tid__~2"."expr~6_value~1" AS "__tid___serialized~1"
          FROM
              LATERAL
              (SELECT/*<pg.SelectStmt at 0x7f86ea679350>*/
                      "expr-6~2"."__type___value~2" AS "expr~6_value~1"
                  FROM
                      LATERAL
                      (SELECT/*<pg.SelectStmt at 0x7f86ea679cd0>*/
                              "uuid_id~3"."__type___value~1" AS "__type___value~2"
                          FROM
                              LATERAL
                              (SELECT/*<pg.SelectStmt at 0x7f86ea67a850>*/
                                      "Item~2".__type__ AS "__type___value~1"
                              ) AS "uuid_id~3"
                          LIMIT
                          (SELECT/*<pg.SelectStmt at 0x7f86ea67af50>*/
                                  (101)::int8 AS "expr~5_value~1"
                          )
                      ) AS "expr-6~2"
                  LIMIT
                  (SELECT/*<pg.SelectStmt at 0x7f86ea679b50>*/
                          (101)::int8 AS "expr~7_value~1"
                  )
              ) AS "uuid___tid__~2"
      ), "Item~2".id, "Item~2"."b6c13820-b9ec-11ee-8b43-5963961d2db8") AS "Item_serialized~1" FROM
      edgedbpub."b6bd9168-b9ec-11ee-8fc8-1bf3579dccc0_t" AS "Item~2"
      CROSS JOIN LATERAL
      (SELECT/*<pg.SelectStmt at 0x7f86ea680210>*/
              ("expr-13~2"."expr~13_value~1" AND
               "expr-16~2"."expr~16_value~1") AS "expr~17_value~1"
          FROM
              LATERAL
              (SELECT/*<pg.SelectStmt at 0x7f86ea680dd0>*/
                      "q~6"."parent_value~3" AS "parent_value~4",
                      "q~6"."category_value~2" AS "category_value~3"
                  FROM
                      LATERAL
                      (SELECT/*<pg.SelectStmt at 0x7f86ea681390>*/
                              ("m~1" = first_value("m~1") OVER ()) AS "m~1",
                              "q~5"."parent_value~1" AS "parent_value~3",
                              "q~5"."category_value~1" AS "category_value~2"
                          FROM
                              LATERAL
                              (
                              (SELECT/*<pg.SelectStmt at 0x7f86ea6819d0>*/
                                      1 AS "m~1",
                                      "Item~3".id AS "parent_value~1",
                                      "Item~2"."b321254d-bcbd-11ee-bf39-c90aa86b4895" AS "category_value~1"
                                  FROM
                                      LATERAL
                                      (SELECT/*<pg.SelectStmt at 0x7f86ea681250>*/
                                              "Item~2"."b320ba21-bcbd-11ee-b574-8d6ccb22a5a6" AS "parent_identity~1"
                                      ) AS "q~4"
                                      JOIN edgedbpub."b6bd9168-b9ec-11ee-8fc8-1bf3579dccc0_t" AS "Item~3"
                                          ON ("q~4"."parent_identity~1" = "Item~3".id)
                              ) UNION ALL
                              (SELECT/*<pg.SelectStmt at 0x7f86ea681a50>*/
                                      2 AS "m~1",
                                      "v~3"."id~1" AS "parent_value~2",
                                      NULL AS "null~1"
                                  FROM
                                      (SELECT (NULL)::uuid AS "id~1") AS "v~3"
                              )
                              ) AS "q~5"
                      ) AS "q~6"
                  WHERE
                      "q~6"."m~1"
              ) AS "Item_parent~2"
              CROSS JOIN (SELECT (NULL)::uuid AS "id~2") AS "v~4"
              CROSS JOIN LATERAL
              (SELECT/*<pg.SelectStmt at 0x7f86ea680750>*/
                      ("Item_parent~2"."parent_value~4" IS NOT DISTINCT FROM "v~4"."id~2") AS "expr~13_value~1"
              ) AS "expr-13~2"
              CROSS JOIN LATERAL
              (SELECT/*<pg.SelectStmt at 0x7f86ea688810>*/
                      ("Item_parent~2"."category_value~3" = "expr-15~2"."expr~15_value~1") AS "expr~16_value~1"
                  FROM
                      LATERAL
                      (SELECT/*<pg.SelectStmt at 0x7f86ea689990>*/
                              (($1)::text)::edgedbpub."8d8ca2b5-bcaa-11ee-bbdb-8302b87d90c3_domain" AS "expr~15_value~1"
                      ) AS "expr-15~2"
              ) AS "expr-16~2"
      ) AS "expr-17~2"
  WHERE
      "expr-17~2"."expr~17_value~1"
  LIMIT
  (SELECT/*<pg.SelectStmt at 0x7f86ea680190>*/
          (101)::int8 AS "expr~18_value~1"
  )

Working query
select Item { id, name } filter (.category = <Category>"Products") and (.parent ?= <Item>{})

[
  {
    "id": "a61e09ee-bcbe-11ee-95df-83d5c2b58749",
    "name": "Shirt"
  },
  {
    "id": "a61e4cce-bcbe-11ee-95df-dbe77209a58b",
    "name": "Computer"
  }
]

WITH
"t_schema::ObjectType~1" AS NOT MATERIALIZED
  (
  (SELECT/*<pg.SelectStmt at 0x7fb096b9af90>*/
          "expr-4~2"."ObjectType_value~1" AS "expr~4_identity~1",
          "expr-4~2"."name_value~1" AS "name_value~2"
      FROM
          LATERAL
          (SELECT/*<pg.SelectStmt at 0x7fb096b9b490>*/
                  "ObjectType~2".id AS "ObjectType_value~1",
                  "ObjectType~2"."9f6dd92a-0a42-5341-b599-fbf5494fd973" AS "name_value~1"
              FROM
                  edgedbstd."2662a1b4-4f3f-5875-b6eb-ce52101a90a3_t" AS "ObjectType~2"
                  CROSS JOIN LATERAL
                  (SELECT/*<pg.SelectStmt at 0x7fb096bbc7d0>*/
                          ("expr-1~2"."expr~1_value~1" OR
                           "expr-2~2"."expr~2_value~1") AS "expr~3_value~1"
                      FROM
                          LATERAL
                          (SELECT/*<pg.SelectStmt at 0x7fb096bbced0>*/
                                  (NOT "ObjectType~2"."101d5f8c-251a-5fee-b30d-c0a3ed3ded56") AS "expr~1_value~1"
                          ) AS "expr-1~2"
                          CROSS JOIN (SELECT (NULL)::uuid AS "v~2") AS "v~1"
                          CROSS JOIN LATERAL
                          (SELECT/*<pg.SelectStmt at 0x7fb096bbd2d0>*/
                                  ("ObjectType~2".id IS NOT DISTINCT FROM "v~1"."v~2") AS "expr~2_value~1"
                          ) AS "expr-2~2"
                  ) AS "expr-3~2"
              WHERE
                  "expr-3~2"."expr~3_value~1"
          ) AS "expr-4~2"
  ))
SELECT/*<pg.SelectStmt at 0x7fb097fca710>*/
      (
      (SELECT/*<pg.SelectStmt at 0x7fb096b7f350>*/
              "str___tname__~2"."expr~10_value~1" AS "__tname___serialized~1"
          FROM
              LATERAL
              (SELECT/*<pg.SelectStmt at 0x7fb096b98450>*/
                      "expr-10~2"."name_value~6" AS "expr~10_value~1"
                  FROM
                      LATERAL
                      (SELECT/*<pg.SelectStmt at 0x7fb096b99290>*/
                              "str_name~2"."name_value~5" AS "name_value~6"
                          FROM
                              LATERAL
                              (SELECT/*<pg.SelectStmt at 0x7fb096b99e10>*/
                                      "q~3"."name_value~4" AS "name_value~5"
                                  FROM
                                      LATERAL
                                      (SELECT/*<pg.SelectStmt at 0x7fb096b9a310>*/
                                              "q~2"."name_value~3" AS "name_value~4"
                                          FROM
                                              LATERAL
                                              (SELECT/*<pg.SelectStmt at 0x7fb096b9a950>*/
                                                      "Item~2".__type__ AS "__type___identity~1"
                                              ) AS "q~1"
                                              JOIN LATERAL
                                              (SELECT/*<pg.SelectStmt at 0x7fb096b9b310>*/
                                                      "t~1"."expr~4_identity~1" AS "expr~4_identity~2",
                                                      "t~1"."name_value~2" AS "name_value~3"
                                                  FROM
                                                      "t_schema::ObjectType~1" AS "t~1"
                                              ) AS "q~2"
                                                  ON ("q~1"."__type___identity~1" = "q~2"."expr~4_identity~2")
                                      ) AS "q~3"
                              ) AS "str_name~2"
                          LIMIT
                          (SELECT/*<pg.SelectStmt at 0x7fb096bbfe10>*/
                                  (101)::int8 AS "expr~9_value~1"
                          )
                      ) AS "expr-10~2"
                  LIMIT
                  (SELECT/*<pg.SelectStmt at 0x7fb096b991d0>*/
                          (101)::int8 AS "expr~11_value~1"
                  )
              ) AS "str___tname__~2"
      ),
      (SELECT/*<pg.SelectStmt at 0x7fb096d75c50>*/
              "uuid___tid__~2"."expr~6_value~1" AS "__tid___serialized~1"
          FROM
              LATERAL
              (SELECT/*<pg.SelectStmt at 0x7fb096bc8d90>*/
                      "expr-6~2"."__type___value~2" AS "expr~6_value~1"
                  FROM
                      LATERAL
                      (SELECT/*<pg.SelectStmt at 0x7fb096bc9750>*/
                              "uuid_id~3"."__type___value~1" AS "__type___value~2"
                          FROM
                              LATERAL
                              (SELECT/*<pg.SelectStmt at 0x7fb096bca2d0>*/
                                      "Item~2".__type__ AS "__type___value~1"
                              ) AS "uuid_id~3"
                          LIMIT
                          (SELECT/*<pg.SelectStmt at 0x7fb096bca990>*/
                                  (101)::int8 AS "expr~5_value~1"
                          )
                      ) AS "expr-6~2"
                  LIMIT
                  (SELECT/*<pg.SelectStmt at 0x7fb096bc95d0>*/
                          (101)::int8 AS "expr~7_value~1"
                  )
              ) AS "uuid___tid__~2"
      ), "Item~2".id, "Item~2"."b6c13820-b9ec-11ee-8b43-5963961d2db8") AS "Item_serialized~1" FROM
      edgedbpub."b6bd9168-b9ec-11ee-8fc8-1bf3579dccc0_t" AS "Item~2"
      CROSS JOIN LATERAL
      (SELECT/*<pg.SelectStmt at 0x7fb096bcbb10>*/
              ("expr-15~2"."expr~15_value~1" AND
               "expr-16~2"."expr~16_value~1") AS "expr~17_value~1"
          FROM
              LATERAL
              (SELECT/*<pg.SelectStmt at 0x7fb096bd0050>*/
                      ("Item~2"."b321254d-bcbd-11ee-bf39-c90aa86b4895" = "expr-14~2"."expr~14_value~1") AS "expr~15_value~1"
                  FROM
                      LATERAL
                      (SELECT/*<pg.SelectStmt at 0x7fb096bd0a10>*/
                              (($1)::text)::edgedbpub."8d8ca2b5-bcaa-11ee-bbdb-8302b87d90c3_domain" AS "expr~14_value~1"
                      ) AS "expr-14~2"
              ) AS "expr-15~2"
              CROSS JOIN LATERAL
              (SELECT/*<pg.SelectStmt at 0x7fb096bd1910>*/
                      "q~6"."parent_value~3" AS "parent_value~4"
                  FROM
                      LATERAL
                      (SELECT/*<pg.SelectStmt at 0x7fb096bd1ed0>*/
                              ("m~1" = first_value("m~1") OVER ()) AS "m~1",
                              "q~5"."parent_value~1" AS "parent_value~3"
                          FROM
                              LATERAL
                              (
                              (SELECT/*<pg.SelectStmt at 0x7fb096bd2510>*/
                                      1 AS "m~1",
                                      "Item~3".id AS "parent_value~1"
                                  FROM
                                      LATERAL
                                      (SELECT/*<pg.SelectStmt at 0x7fb096bd1d90>*/
                                              "Item~2"."b320ba21-bcbd-11ee-b574-8d6ccb22a5a6" AS "parent_identity~1"
                                      ) AS "q~4"
                                      JOIN edgedbpub."b6bd9168-b9ec-11ee-8fc8-1bf3579dccc0_t" AS "Item~3"
                                          ON ("q~4"."parent_identity~1" = "Item~3".id)
                              ) UNION ALL
                              (SELECT/*<pg.SelectStmt at 0x7fb096bd2590>*/
                                      2 AS "m~1",
                                      "v~3"."id~1" AS "parent_value~2"
                                  FROM
                                      (SELECT (NULL)::uuid AS "id~1") AS "v~3"
                              )
                              ) AS "q~5"
                      ) AS "q~6"
                  WHERE
                      "q~6"."m~1"
              ) AS "Item_parent~2"
              CROSS JOIN (SELECT (NULL)::uuid AS "id~2") AS "v~4"
              CROSS JOIN LATERAL
              (SELECT/*<pg.SelectStmt at 0x7fb096bd1110>*/
                      ("Item_parent~2"."parent_value~4" IS NOT DISTINCT FROM "v~4"."id~2") AS "expr~16_value~1"
              ) AS "expr-16~2"
      ) AS "expr-17~2"
  WHERE
      "expr-17~2"."expr~17_value~1"
  LIMIT
  (SELECT/*<pg.SelectStmt at 0x7fb096bcb9d0>*/
          (101)::int8 AS "expr~18_value~1"
  )

Seed:
with
  shirt := (insert Item { name := "Shirt", category := "Products" }),
  computer := (insert Item { name := "Computer", category := "Products" }),
  keyboard := (insert Item { name := "Keyboard", category := "Products", parent := computer })
select (
  shirt,
  computer,
  keyboard
);

Schema:
module default {
  scalar type Category extending enum<Blueprints, Materials, Products>;

  type Item {
    required name: str;

    optional parent: Item;
    required category: Category;
  };
};

This is a weird one. For what it's worth, I believe this query gets at the same objects you want to filter but seems to return the correct result consistently:
select Item filter (not exists .parent) and (.category = <Category>"Products");


Improved Swift Manifest file

A Swift manifest needs to declare products: […] in order to make the package accessible from other packages.

Codecov Report

Merging #24 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #24   +/-   ##
=======================================
  Coverage   91.98%   91.98%
=======================================
  Files          13       13
  Lines         549      549
=======================================
  Hits          505      505
  Misses         44       44

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 17e3568...c63d710. Read the comment docs.


StreamTransferProgress firing rapidly when upload starts until progress reaches the file size.

I can't replicate this now and report something more organized, but before switching out to Xamarin.Mac 2.0 targeting .NET 4.5 instead of Mobile Unified API, I got rapid successive progress updates from StreamTransferProgress event, which stopped when progress equaled the file size, but the upload was still ongoing.
My upload speeds at the moment were about 100 KB/s, and I reported progress every 200 KB (ProgressUpdateInterval was set to 2097152 bytes), so seeing immediate successive progress reports for a 1 MB file right after starting the upload is definitely not regular.
Buffer size was the default 8192, but this behavior really looked like reporting progress of buffering a stream in memory and not of actual transferred bytes progress, it reported that fast.
Just opening an issue for you here @tawalke, so you can investigate this.

@theofanis : This is using the AWS .NET SDK or AWS.Xamarin SDK?  Wanted to verify I believe this is from NET 4.5 SDK correct?  Also can you give me more details ...so immediately you get progress reports and it is reporting what data 200KB or more, 200KB or less, or something totally different?

Hi:
This Beta SDK should now be migrated to use the AWS SDK for .NET with  Xamarin has been released.  As noted, this release is under AWS SDK for .NET and is in Developer Preview.  The Xamarin SDK repo has the latest links for this update, as well as, the updates for the updated NuGet packages.
This should resolve you issue as this has the updated services and codebase desired.  See links below:
https://github.com/aws/aws-sdk-net
https://github.com/aws/aws-sdk-net#nuget-packages


[CADL] Add an option to generate all models, whether or not there are used in operations

There are scenarios like EventGrid or some IoT, were we need the models for various reasons while they are not necessary linked to an operation.
Not necessary urgent compared to current work like OpenAI
cc @JoshLove-msft

Now we only can retrieve out the models used in an operation. If we want to generate models which are not used in any operation, we need cadl compiler to provide an API to return all the models in the whole namespace.

As OpenAPIv3 and Swagger emitters are already able of this behavior, it means the API exists

Wait cadl to define the decorator

What is the purpose of unreferenced-types-handling: keepAll? I thought it was to keep all the model types that are not referenced in routes. #2974

After discussed with @lmazuel and @JoshLove-msft , since we can make it work with the client.tsp via @usage and @access decorators, we don't need to implement this option to generate all models. close this issue.


Elixir 1.13 compat and encode json to iodata

ref: https://elixirforum.com/t/37231

Thanks @fishtreesugar! Sorry for the delay in getting this merged!