vhdl_mode.py throws an error when loaded through Package Control

There is now a new error when loading the file through Package Control.  The import statement doesn't import the util and lang modules correctly as it says there's no vhdl_mode.
Traceback (most recent call last):
  File "C:\Program Files\Sublime Text 3\sublime_plugin.py", line 109, in reload_plugin
    m = importlib.import_module(modulename)
  File "./python3.3/importlib/__init__.py", line 90, in import_module
  File "<frozen importlib._bootstrap>", line 1584, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1565, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1532, in _find_and_load_unlocked
  File "C:\Program Files\Sublime Text 3\sublime_plugin.py", line 915, in load_module
    exec(compile(source, source_path, 'exec'), mod.__dict__)
  File "vhdl_mode in C:\Users\mnorton\AppData\Roaming\Sublime Text 3\Installed Packages\VHDL Mode.sublime-package", line 16, in <module>
ImportError: No module named 'vhdl_mode'

Need to resolve this quickly.

Appears as if I used from . import <module> this will work when inside the package.


PyOdide test failure

https://github.com/simonw/datasette/actions/runs/9469427870/job/26088069712

    from typing_extensions import deprecated  # noqa
ImportError: cannot import name 'deprecated' from 'typing_extensions' (/lib/python3.10/site-packages/typing_extensions.py)

Full stacktrace:
Error: Page.evaluate: PythonError: Traceback (most recent call last):
  File "/lib/python3.10/asyncio/futures.py", line 201, in result
    raise self._exception
  File "/lib/python3.10/asyncio/tasks.py", line 232, in __step
    result = coro.send(None)
  File "/lib/python3.10/site-packages/_pyodide/_base.py", line 500, in eval_code_async
    await CodeRunner(
  File "/lib/python3.10/site-packages/_pyodide/_base.py", line 353, in run_async
    await coroutine
  File "<exec>", line 8, in <module>
  File "/lib/python3.10/site-packages/datasette/app.py", line 39, in <module>
    from .views.base import ureg
  File "/lib/python3.10/site-packages/datasette/views/base.py", line 11, in <module>
    import pint
  File "/lib/python3.10/site-packages/pint/__init__.py", line 18, in <module>
    from .delegates.formatter._format_helpers import formatter
  File "/lib/python3.10/site-packages/pint/delegates/__init__.py", line 12, in <module>
    from . import txt_defparser
  File "/lib/python3.10/site-packages/pint/delegates/txt_defparser/__init__.py", line 12, in <module>
    from .defparser import DefParser
  File "/lib/python3.10/site-packages/pint/delegates/txt_defparser/defparser.py", line 9, in <module>
    from ..base_defparser import ParserConfig
  File "/lib/python3.10/site-packages/pint/delegates/base_defparser.py", line 24, in <module>
    from pint.facets.plain.definitions import NotNumeric
  File "/lib/python3.10/site-packages/pint/facets/__init__.py", line 72, in <module>
    from .context import ContextRegistry, GenericContextRegistry
  File "/lib/python3.10/site-packages/pint/facets/context/__init__.py", line 14, in <module>
    from .definitions import ContextDefinition
  File "/lib/python3.10/site-packages/pint/facets/context/definitions.py", line 19, in <module>
    from ..plain import UnitDefinition
  File "/lib/python3.10/site-packages/pint/facets/plain/__init__.py", line 13, in <module>
    from .definitions import (
  File "/lib/python3.10/site-packages/pint/facets/plain/definitions.py", line 19, in <module>
    from ..._typing import Magnitude
  File "/lib/python3.10/site-packages/pint/_typing.py", line 8, in <module>
    from .compat import Never, TypeAlias
  File "/lib/python3.10/site-packages/pint/compat.py", line 46, in <module>
    from typing_extensions import deprecated  # noqa
ImportError: cannot import name 'deprecated' from 'typing_extensions' (/lib/python3.10/site-packages/typing_extensions.py)

This is the actual test code: https://github.com/simonw/datasette/blob/e1bfab3fca22e4f8d06dcf419e945f13fc20aef1/test-in-pyodide-with-shot-scraper.sh#L21-L41

Running this runs tests locally:
./test-in-pyodide-with-shot-scraper.sh

Got a surprising different error:
::1 - - [11/Jun/2024 09:43:46] "GET / HTTP/1.1" 200 -
Error: PythonError: Traceback (most recent call last):
  File "/lib/python3.10/asyncio/futures.py", line 201, in result
    raise self._exception
  File "/lib/python3.10/asyncio/tasks.py", line 232, in __step
    result = coro.send(None)
  File "/lib/python3.10/site-packages/_pyodide/_base.py", line 500, in eval_code_async
    await CodeRunner(
  File "/lib/python3.10/site-packages/_pyodide/_base.py", line 237, in __init__
    self.ast = next(self._gen)
  File "/lib/python3.10/site-packages/_pyodide/_base.py", line 141, in _parse_and_compile_gen
    mod = compile(source, filename, mode, flags | ast.PyCF_ONLY_AST)
  File "<exec>", line 2
    import micropip
IndentationError: unexpected indent

That error was fixed by doing this:
wheel=$(basename $(ls dist/*.whl) | head -n 1)

... and now I can replicate that CI bug locally.

Fix was to force it to install a modern version of typing-extensions:
https://github.com/simonw/datasette/blob/9a3c3bfcc7d30d65514421bd315f1b8b5b735b86/test-in-pyodide-with-shot-scraper.sh#L36-L37


[FEAT] Adding support for strikethrough/custom cloze

Is your feature request related to a problem? Please describe.
Currently highlights are utilized which turn out to ne impotant as visual cues for me while reading. If we could have custom clozes, we could have out own symbols to work with!!
*Describe the solution you'd like
We could have any set of symbols for this plug-in to search for. We can just enclose the cloze in those symbols which we want to assign.
eg __cloze__or ~~ cloze~~or ₹₹cloze₹₹Anything really.

I believe cloze symbols can be altered in settings.

I believe cloze symbols can be altered in settings.

there are two modes, bold or highlight. Thats it.

Ah, you're right. I confused this with other settings.

I think I might be able to add this but will need time.

I think I might be able to add this but will need time.

If you cn please do. Happy to wait..

Hi,
I've just made a release v1.13.0 that ships with custom cloze patterns 🥳 all thanks to #943. The updated documentation is live here.
I've tested the release but not as extensively as I normally would. Perhaps we need a beta version of the plugin? That being said, I'm on standby to fix bugs ASAP. Just give me a shout.
Cheers.


Wrong mapping when using long Id

Hi,
Great lib overall, thanks for sharing your work.
I have a mapping issue when using long Ids.
Here is a short console app sample that reproduces the problem: longIdsIssue.cs.
I create 4 dynamic Expandos with distincts long Ids. There is a child table Id (int) too.
As you see all Ids (parents and children) are distincts, so in the end we should have 4 distinct instances of the parent class, each one being linked to  a distinct instance of the child class.
Instead, the mapping results in only 2 instances of the parent class, one containing 3 children and the other containing the last child.
The problem goes away if I change Ids to int.
Manuel

Hi,
I found the culprit in GetIdentifierHash (InternalHelpers.cs):
unchecked
{
    // Include identifier hashcode to avoid collisions between e.g. multiple int IDs
    identifierHash += identifierValue.GetHashCode() + identifier.GetHashCode();
}

One can't rely on GetHashCode() to uniquely identify a long. Actually one can't rely on an hash code to uniquely identify anything... It's just a hash, not a key.
Colllisions will happen and well... they did. In the sample I provided, 4 of my 3 long values have the same hash code. In my real database there are more than 1000 collisions actually.
I guess the fix would be to maintain your own hastable collision mecanism. That is ìnstanceCache should be a Dictionary<Tuple<int, int, object>, ICollection<object>>() and then you would have to compare the real identifiers before returning an instance.
Hope this helps.
Manuel

I submitted PR #49 to fix this.
Just changed the Cache Key to compare identifiers whole values and not their hashcodes.

Fixed. Pull request #49 merged in master


[Bug] Exiting full screen of MediaElement calls MainPage's OnAppearing() method

Description
The MainPage OnAppearing() method is called when exiting full screen of MediaElement. This creates issues when using dynamic logic for MasterDetailPages or Tabbedpages.
Is it expected that exiting fullscreen on MediaElement would call MainPage OnAppearing() method?
Steps to Reproduce

Download attached project
Launch project into iOS Simulator
Tap "First Item"
Make MediaElement full screen.
Place break on line 29 in MainPage.cs
Exit MediaElement full screen. Code will stop in MainPage's OnAppearing().

Expected Behavior
Exiting fullscreen on MediaElement should not call MainPage OnAppearing() method
Actual Behavior
Exiting fullscreen on MediaElement calls MainPage OnAppearing() method
Basic Information

Version with issue: Latest Xamarimn.Forms <IP_ADDRESS>5
Last known good version:
IDE: VS 2019 Mac
Platform Target Frameworks:

iOS: 13.4

Reproduction Link
MediaElementTest.zip

As the MainPage goes from not visible to visible I would personally expect the Appearing event to be triggered.

As the MainPage goes from not visible to visible I would personally expect the Appearing event to be triggered.

Shouldn't it call the Appearing event of the open TapPage instead? I have since then upgraded to AppShell and it has fixed this issue.

Shouldn't it call the Appearing event of the open TapPage instead? I have since then upgraded to AppShell and it has fixed this issue.

I'm not sure if that is actually fixing your issue, or if an open bug in Shell is causing it to work as you expected:
https://github.com/xamarin/xamarin.forms/issues/6486

I'm not sure if that is actually fixing your issue, or if an open bug in Shell is causing it to work as you expected:
https://github.com/xamarin/xamarin.forms/issues/6486

I guess I'm missing some fundamentals on how to deal with a user exiting full-screen mode. I expected it to behave in a similar fashion as when one hits the back button to return to a previous page on the stack. What am I missing?

I guess I'm missing some fundamentals on how to deal with a user exiting full-screen mode. I expected it to behave in a similar fashion as when one hits the back button to return to a previous page on the stack. What am I missing?

To be fair I find it kind of making sense like Steven mentions. In addition, but this is mostly personal taste I guess, I don't think executing logic that makes up that kind of UI should be in the OnAppearing (or similar). For now I'm closing this one.

To be fair I find it kind of making sense like Steven mentions. In addition, but this is mostly personal taste I guess, I don't think executing logic that makes up that kind of UI should be in the OnAppearing (or similar). For now I'm closing this one.


Instructions/Image to build “locally” on a 2i2c hub

I am hearing from researchers at LEAP that they have trouble building images locally.
I realize this can be hard on a variety of machines (windows seems to cause trouble), so here is a suggestion:
Can we provide a docker image with docker, repo2docker, etc that we could run on a 2i2c hub, so that user can create and test their repo before pushing to github (and thus creating a potentially big image in the registry via the CI)?
Happy to help with testing this

@jbusecke I think the path forward here is to deploy https://2i2c.org/blog/2024/jupyterhub-binderhub-gesis/ to LEAP.
I see you should have access to https://imagebuilding-demo.2i2c.cloud/. Log in and try it out, particularly the 'build your own image' functionality. Currently it requires you to specify github repos in the form of /, but that's being worked on. This will build and run the same way repo2docker-action runs, and is the long term path forward.
A possible goal (working alongside @batpad) is to deploy this on the NASA VEDA hub by end of next quarter. We can target LEAP as well to make this possible.
This is a better path forward than trying to get docker working within docker containers on the hub.
What do you think?

This is great to see @yuvipanda!
Quick comments/questions:

Will the user have to specify the repo each time, and the image will be rebuilt on the fly? Or will built images be cached somehow?
Depending on the answer to above, I think about two things: Longterm reproducibility (e.g. a docker image build from a non-locked conda env file might be different depending on the time it was created) and image storage utilization (longer term question, but how can we ensure to only retain tested tags of a given image).
I am actually not able to get the demo working (I tried with https://github.com/ocean-transport/scale-aware-air-sea/ (which has a Dockerfile). Could you given an example how this would work?

Thank you so much for working on this!

@jbusecke if i type ocean-transport/scale-aware-air-sea into the 'github repository' box (instead of the whole url) it works. There's UX work to be done here but the core functionality works. Try that again?
There's optimistic caching, same way as mybinder.org. The git ref (which is currently just HEAD so main or master, but will be user inputtable soon) is used to tag the built image. However, they may get cleaned up over time, and a rebuild will be triggered. Also each hub has its own cache so that would also cause rebuilds as the repository is used across different hubs.
So the answer to long term reproducibility would be to use lockfiles! I think that's kinda the same regardless of using repo2docker-action or using repo2docker in this dynamic fashion.
I hope being able to deploy this throughout will help us expand the pool of people who can make images


small fontSize rename, and 0-indexing arrays?

Example from Readme, regarding theme:
export default {
  ...
  space: [0, 4, 8, 16, 32, 64, 128, 256, 512],
  fontSizes: [16, 20, 24, 32],
  text: {
    h1: {
      fontSize: 3, // this is 24px, taken from `fontSize` above
    },
    p: {
      fontSize: 1, // & this is 16px, taken from `fontSize` above
    },
  },
}

Might be an idea to rename some fields to:
export default {
   ...
  space: [0, 4, 8, 16, 32, 64, 128, 256, 512], // in pixels, not em
  fontSizes: [16, 20, 24, 32], // in pixels, not em
  text: {
    h1: {
      fontSizeIndex: 2, // self-explaining, so no doc needed
    },
    p: {
      fontSizeIndex: 0,
    },
  },
}

So that you can't confuse the index with a size, and to 0-index it since people are familiar with that when dealing with arrays. The following example in the Readme seems to be using 0-indexing, so either case might just be a Readme remnant.
<Text
  sx={{
    color: 'primary',
    padding: [1, 3], // [4px, 16px] from theme!
  }}
>
  Themed color!
</Text>

Alternatively also rename: padding → paddingIndex.

We're actually following the theme UI spec, and I use this everywhere, that it probably won't change. If you want to use raw values in pixels, you can use the style prop

Oh yeah the readme is probably picking the wrong index, we can fix that

Ok, cool.

Want to PR the docs?

Sure, but I don't know if 0-indexing or 1-indexing is the correct one to pick.

0-index is correct. There's no magic, it just checks theme[key][value]


upgraded node_js versions in travis.yml (using alias and removed unma…

upgraded node_js versions used for travis incl. aliases supported by travis-ci.org

travis-ci checks fail, because #56 is not merged yet

merged #56 into this PR to make tests pass.

PR is up to date now

Travis CI errored on "current" and "default" as it seems NVM deprecated some aliases.  I'm going to merge this into a separate branch under the proj4js/mgrs repo (to make sure the git history is preserved) and then update that branch.


render results page for record search

The view partial for results is _results.html.erb
http://stackoverflow.com/a/27880065

@crowesn this still a valid issue?


Configuring ports for inbound and outbound traffic via annotations can supported in the form of port ranges.

(This is used to request new product features, please visit https://discuss.istio.io for questions on using Istio)
Describe the feature request
Configuring ports for inbound and outbound traffic via annotations can supported in the form of port ranges.
Both linux iptables and istio-iptables support configuring port ranges (e.g. 10000:20000), but the inject validator only supports single ports separated by commas.
For exclude scenarios in particular, there is a general requirement in our practice.
Describe alternatives you've considered
Affected product area (please put an X in all that apply)
[ ] Ambient
[ ] Docs
[ ] Installation
[x] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[x] User Experience
[ ] Developer Infrastructure
Affected features (please put an X in all that apply)
[ ] Multi Cluster
[ ] Virtual Machine
[ ] Multi Control Plane
Additional context
How the Inject Validator validates ports:
https://github.com/istio/istio/blob/6c56df453d13aedc48019da5fc74362746e6fcd6/pkg/kube/inject/validate.go#L159-L184

What do you need this for?

We have hundreds of ports that do not expect to be intercepted

@howardjohn anything new？


Wait for dialog closure

Hi all!
After opening a new dialog by code, how can I attend the closure of dialog before executing the remaining code?
This my code in grid.ts
protected addButtonClick() {
    var d = new xyzDialog();
    d.loadByIdAndOpenDialog(1);

    // This code must execute after the dialog is close with confirm
    // BUT NOW it runs immediately
    MyXYZService.PerformWork(
    {
        value1: this.myfield.value,
        value2: this.myfield2.value
    },
    response => {
       this.refresh();
    });
}

Thank you

d.element.on('dialogclose', () => { ... });

But actually if dialog has a confirm button, you should put that work in handler of confirm button.

Thank you @volkanceylan


Training of contextual models

The end result of a lot of preparatory PRs and refactors: automatically training contextual models.
Fixes #362
CC @jgd5 for the training server parts, and @stanford-oval/core-almond for the genie parts.
Marking as draft until the prereq PR https://github.com/stanford-oval/genie-toolkit/pull/87 is merged.

Pull Request Test Coverage Report for Build 1576

143 of 156 (91.67%)  changed or added relevant lines in 10 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.2%) to 66.609%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

training/run-training-task.js
40
41
97.56%

training/tasks/prepare-training-set.js
31
32
96.88%

training/job_specs.js
11
13
84.62%

training/sandboxed_synthetic_gen.js
21
23
91.3%

training/tasks/evaluate.js
32
39
82.05%

Files with Coverage Reduction
New Missed Lines
%

training/tasks/prepare-training-set.js
2
86.99%

Totals

Change from base Build 1565:
0.2%

Covered Lines:
6717

Relevant Lines:
9490

💛  - Coveralls


fix: only invalidate candidates of the same kind

Draft because it is built on top of https://github.com/algesten/str0m/pull/498.
We ran into a bug where a candidate was incorrectly invalidated based on IP only without considering the kind of candidate. The bug was in our software because we didn't invalidate a host candidate and our tests didn't catch it because there, we invalidated it "accidentially" by wanting to invalidate the corresponding srflx candidate. The (unit)-tests don't have a NAT so there host == srflx. But in the real world, we had a NAT but the two nodes were on the same subnet, thus they ended up making a host-host connection and failed to migrate that to another candidate because it was never invalidated.
I am not sure if there was a specific reason to not filter by kind here?

It's our own API, if we want kind, I don't see why not.

@algesten Rebased on latest main now that #498 is merged.


New improved error message for CPython

See https://github.com/python/cpython/issues/123440. Friendly-traceback should be able to provide a similar message for earlier Python versions.

See also https://github.com/python/cpython/issues/123539


chore: optimize local testing of amplify-dev

Issue #, if available:
Description of changes:
The changes enable developers to use amplify-dev directly for local testing by just one command yarn setup-dev. The cli binary in node_modules can also be used for local amplify e2e tests.

Add @aws-amplify/cli with caret version(latest) as the dev-dependency.
Remove additional dependencies(cli-core, graphql-core) since they are already included in cli.
Add scripts to hoist cli package in node_modules so that it can scan the related plugins successfully.
Add scripts to link amplify-dev to yarn global

How are these changes tested:

yarn setup-dev and run amplify-dev -v
Run amplify-dev codegen [subcommands] to make sure it runs successfully and reflects local changes.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

amplify-dev is the binary Amplify CLI uses to test their local changes to CLI packages. In our scenario, this binary will be from the latest released CLI package from NPM and our local codegen plugin, which can then be used to test our local codegen changes. For a Amplify CLI developer, this might be a bit confusing if we use the same name to reference both binaries. My suggestion is to either call this out explicitly in the contribution doc that we override the behavior of amplify-dev or rename our reference to amplify-codegen-dev.

amplify-dev is the binary Amplify CLI uses to test their local changes to CLI packages. In our scenario, this binary will be from the latest released CLI package from NPM and our local codegen plugin, which can then be used to test our local codegen changes. For a Amplify CLI developer, this might be a bit confusing if we use the same name to reference both binaries. My suggestion is to either call this out explicitly in the contribution doc that we override the behavior of amplify-dev or rename our reference to amplify-codegen-dev.

I agree to explain it in the document that the behavior will be override. We cannot change the name because of this code snippet unless there is additional change to cli. In addition, there is no impact for cli developers by using amplify-dev if they run the command under cli repo because the new link will always override the old one.

Codecov Report

Merging #146 (47995df) into master (8fbd99a) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #146   +/-   ##
=======================================
  Coverage   84.41%   84.41%
=======================================
  Files         139      139
  Lines        5410     5410
  Branches     1122     1122
=======================================
  Hits         4567     4567
  Misses        726      726
  Partials      117      117

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 8fbd99a...47995df. Read the comment docs.


Bug: Sums set to zero when renaming account

Applies to all amounts of all children accounts of the account renamed. OUCH!

Confirmed on the lasted release v2.0.3.
I also found the transaction disappeared.

Fixed in v2.0.4

please push this to f-droid. it's still 1.6 there!


Bug Report

I've had teslamate working for over a year now, thanks, it's great.  I re installed it and checked all usernames and passwords and all seems fine. I can launch Teslamate but when I try to open the GUI, I get a 502 bad gateway black page when launched from the add-on itself. When I click in the sidebar to launch the GUI, I get a message asking me to launch Teslamate (even though it's already been launched), when I click okay then I get the same 502 bad Gateway error page. None of the mqtt values are working. entities still exist, I'm guessing from before the problem but they don't update.
Anything I could do to fix this?

Do I need to enter the Tesla API token Encryption key? I did not do it this time.


September tier and format changes

@TheImmortal

Need sources for all of these...

#3959 has the right idea.

...nevermind, the link isn't right either...

Please don't merge everything into one pull request. Suspect tests should definitely not be a part of this.

To be fair, it is possible to rebase-merge


WIP No more "Terminate Batch Job? (Y/N)" - Take 2

Bugfix.
I found a better way to accomplish #626.

Before, the Rez Python process launched a cmd.exe subshell followed by another cmd.exe subshell with the environment set up called rez_shell.bat
Now, the Rez Python process launches a cmd.exe subshell, calling rez_shell.bat which then exits and puts the user in the original subshell.

The result is the same features and benefits, but one less layer to worry about. Most importantly, ctrl+c from a subshell doesn't exhibit the .bat prompt.
Before
$ rez env python-3 -- python -m http.server
Serving HTTP on <IP_ADDRESS> port 8000 (http://<IP_ADDRESS>:8000/) ...

Keyboard interrupt received, exiting.
Terminate batch job (Y/N)? y
Interrupted by user
Traceback (most recent call last):
...
AttributeError: 'module' object has no attribute 'killpg'

After
$ rez env python-3 -- python -m http.server
Serving HTTP on <IP_ADDRESS> port 8000 (http://<IP_ADDRESS>:8000/) ...

Keyboard interrupt received, exiting.
Interrupted by user

And, wouldn't you know it, this also solved #616, making cmd.exe a much better experience. Win!

Except FYI keep in mind this has significant effects on a Windows environment, including use via the API. It shifts the process hierarchy created when creating a context. I've done my best to evaluate this, but then I only have so many environment to test in. I would consider this BETA until more testing in real environments has happened.

I noticed the alteration to the proc hierarchy, hence the minor version
update (as opposed to patch) to at least nod to that fact this PR does more
than may have been apparent.
I'll add to the release notes to highlight that Windows users should take
note.

Except FYI keep in mind this has significant effects on a Windows
environment, including use via the API. It shifts the process hierarchy
created when creating a context. I've done my best to evaluate this, but
then I only have so many environment to test in. I would consider this BETA
until more testing in real environments has happened.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/nerdvegas/rez/pull/627?email_source=notifications&email_token=AAMOUSQ5FIOT37LD7XKVYBTP6W7LNA5CNFSM4HMLGVPKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZTD4QQ#issuecomment-510017090,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAMOUSQE6EJY7AZT7TVCJEDP6W7LNANCNFSM4HMLGVPA
.

Could you please elaborate a bit more?
We are using it on windows via the API, so we might be affected.

The key difference is that arguments made via -- were previously incorporated into the rez-context.bat script, whereas they are now passed via the command-line, after rez-context.bat has finished. It can have an effect on character escaping.
E.g.
rez env mypackage -- my_command --with-an "argument"

Was previously turned into:
rem Start of context.bat

set KEY=valueA;%KEY%
set KEY=valueB;%KEY%
set KEY=valueC;%KEY%
...

rem Coming in from `--`
rez env mypackage -- my_command --with-an "argument"

rem Finally, yielding control back to the user
cmd /K

Where that final cmd /K launched a new process which is where you typically end up after a rez env. With this PR, that last command no longer exist, as that is where the "Terminate Batch Job?" was coming from. The process you enter is the one from the original call to cmd. It's simpler.
The crux is with this -- mechanism. To incorporate that into this new process hierarchy, it is passed to the original process as a string, over the command-line, as opposed to written into the batch script. The batch script does a better job at escaping (from what I can tell) than the REPL mechanism.
Finally, because there is one level of processes less, if you had anything that depended on that, then you would need to update it. For example, if you got to the rez.exe executable by stepping up through the hierarchy (via e.g. psutil) then it would have one level less to traverse. Another example is Windows command-line buffer, of which there are 4 per default. There were 5 buffers in use prior to this PR (one per process in the hierarchy), and now there are 4, which is why history works. And again, if you depended on that (for whatever reason, I can't think of any off hand), then that would break too.

to at least nod to that fact this PR does more than may have been apparent.

It may very well cripple any and all use of Rez, as it's affecting the point at which contexts are generated and entered. Buyer beware. At least we'll get some good testing going now that it's released into the wild and can hopefully either confirm that it works or fix it more quickly.

Cool, thanks for the heads up!


Use <IP_ADDRESS> as the default host instead of localhost

This should be used to avoid connection refused exceptions when trying
to connect to IPv6 socket (since there is no code to handle ipv4
fallback).

LGTM, thanks!


PR offer: move to Typescript in leu of Vue 3 release

Vue 3 is moving from Flow to Typescript, and maybe single-spa-vue should too.
I say "PR offer" because I'd be willing to work on this if this is something you want.

I use typescript in some projects and enjoy it, but am a bit hesitant about this. The main concerns are that I haven't seen you contribute to single-spa-vue before and don't see many benefits of refactoring this project to typescript.
I think there's a difference between a maintainer proposing changing programming languages versus a first-time contributor. The following tweet comes to mind: https://twitter.com/_developit/status/1251176832424181762
As far as I know, rewriting to typescript doesn't provide any benefits to the consumers of this library, since we already have "types" in the package.json.  Any benefits would only be for maintainers of single-spa-vue and any future contributors, although one could argue that requiring typescript knowledge increases the barrier to entry for new contributors. Also, "Vue is written in typescript" isn't a very compelling reason for me to refactor single-spa-vue.
There are other changes to this library that I think would provide more benefit that I could point you to, if you'd like to help out with them. One in particular is to standardize the domElementGetter logic across single-spa-vue, single-spa-react, single-spa-angular, etc by publishing an npm library that contains the logic.

Thanks for the quick response!  I see your types.  The reason I personally would like it to be written in typescript is that it makes the main file easier to read.
Today I started looking into single-spa, and I had a question about what the singleSpaVue function did, so I pressed goto definition in my editor (I use vim btw /meme) and it took me to a .d.ts file that didn't tell me at all how it worked.  So I went to this GitHub repo and looked at the code here.  But it was harder to follow what was going on without strict interfaces.  So I had to have the .d.ts file opened in one half of my screen and the code in another, which was not ideal either.
That's a really interesting tweet you linked; I hadn't seen that before, thanks!  One response that I like is one asking about jsdoc.  You say that you don't want to increase the barrier of entry for contributors, but if you also want to put solid standards for type coverage in you code (either through .d.ts, jsdoc, or typescript), then anybody who wants to add a function or class to this library will be required to document their contribution.
Speaking of asking for better jsdoc coverage, I found the precision of the .d.ts file lackluster.  Many of the types in there are either so broad that they're unhelpful for people trying to get an understanding of the codebase (like the SingleSpaVueLifecycles), or nearly wrong (like SingleSpaVueOpts.appOptions says it's optional and any, but https://github.com/single-spa/single-spa-vue/blob/main/src/single-spa-vue.js#L27 places requirements both on that it's required and some of the subtypes).
I would be okay with either contributing details to the .d.ts or adding jsdoc, I'm not a TypeScript evangelist.  But one reason I like typescript here is that with its powerful type inference capabilities, many of the manual labor that would need to be done with .d.ts or jsdoc can be done automatically.  For example, instead of having SingleSpaVueLifecycles all return Promise<any>, Typescript could infer that mount returns Promise<typeof instance.vueInstance> (which could be further inferred to be Promise<Vue | Element> if we added it as a dev dependency, which is a separate controversial idea for sure that I may not advocate for) for less effort than it took to write that .d.ts interface in the first place.
Anyways, thanks so much for taking the time to read this!  And as we evaluate whether to use single-spa in our product and begin integrating it, expect to see more issues and PRs (not type related!) to come.
Thank you


Move the documentation to ReadTheDocs

Close #11.
This will be the end of DOCUMENTATION.md, as it will be replaced by this docs.

So, let's try. If something fails, I will fix it on commits, not under this pull request.

I created a project named Documentation building to track this larger process.

By-the-by, I didn't removed the documenation page from setup.py. But I fixed that on 0b77bee.

I created a label called documentation - ReadTheDocs, which replaces documentation on some specific cases.


Update documentation with new organization

I have been looking at the documentation and it does not seem to be updated with respect to the new organization of OF.

This is very true!  @xabomon please feel free to point out specifics for where we can improve the docs.  The docs upgrade is very important and more input the better!

I've added issue #636 which is the start of this process.

new docs website and reorg takes care of this....though further documentation and tutorials are always needed!


feat(HMS-2304): Nest list endpoints with 'data'

Tested with
https://github.com/RHEnVision/provisioning-backend/pull/638 and https://github.com/RedHatInsights/image-builder-frontend/pull/1299
Verified with a successful  aws launch

Need those PRs to get merged for retest pass

Any point in
/retest

Shall we wait for the PR check? Will it even pass without prod promotion?


Dynamic components, ready, activate and v-for strange behaviour

Vue.js version
1.0.17
Reproduction Link
https://jsbin.com/lagucugemu/12/edit?html,js,output
Steps to reproduce
Create 2 components, one that reference the other, and use it in a v-for loop
What is Expected?
Component ready callback should always be be called
What is actually happening?
I have a component that references another component.
Everything works well until I use it in a v-for loop
Outside v-for it renders ok
<component :is="compB"></component> ==> Component B containing "component A"
Inside v-for component-a ready callback gets never called
<component v-for="n in 1" :is="compB"></component> ==> Component B containing "component ???"
Is there a valid reason for this or is it a bug?
Thanks

It appears that the ready event is only called once per component, using 'created' seems to work https://jsbin.com/fukosaqosu/edit?html,js,output
I don't know if this is intentional or not.

@ryanshawty I've commented out the component outside v-for, but ready and attched hooks are still not called
See here: https://jsbin.com/seceqotazi/3/edit?html,js,console,output
I can't use the created callback because I need to be sure $el is attached to the DOM

@straps I can't find any docs related to activate hook. can you tell me where you found it?

See here: http://vuejs.org/guide/components.html#activate_Hook
On Fri, Mar 11, 2016 at 5:34 PM, prog-rajkamal<EMAIL_ADDRESS>wrote:

@straps https://github.com/straps I can't find any docs related to
activate hook. can you tell me where you found it?
—
Reply to this email directly or view it on GitHub
https://github.com/vuejs/vue/issues/2445#issuecomment-195440679.

@straps sorry, i found it right after commenting and deleted my comment, so others won't have to bother . guess i was late in deleting

Thank you @yyx990803


MM-32226: adjustted "more unreads"-indicator positioning

Summary

doubled top-positioning fo "more unreads"-indicator
added double-quotes for UTF-8 charset setting
fixed path-resolving in sass files

Ticket Link
Fixes MM-32226
Screenshots

Hello @michelengelen,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.

/update-branch

@hmhealey I did add the requested changes.
Feel free to drop me a message, when you clarified the usage in Legacy Sidebar with Eric and/or Matt and I will adjust the code accordingly (if necessary)

Looks good to me on Firefox, but I have no idea why Matt's issue is occurring. I'm also seeing it on Chrome. Perhaps the changes to the nesting in that CSS file have caused issues with specificity of different rules, but I don't know why that would only be happening on Chrome then

I know the cause and will fix it later. It is a bug with nesting styles in SCSS

@matthewbirtch I did fix the issue with the indicator spanning the full height. Could you please re-check it? Thanks! ✨

/update-branch

@hmhealey all is fixed now ... mind having another look, so we can move forward with it?


Redis- Master/slave role detection through DNS

Expected behavior
Master connections should be created on new master.
Actual behavior
We are using Elasticache with 1 master and 1 slave. The redis endpoints are behind route53 record sets. When we swtich the endpoints in route53 to point to new master and slaves. The redisson is pointing to incorrect slave.
Steps to reproduce or test case
endpoints=redis://redis-slave-1.dev.com:6379,redis://redis-slave-2.dev.com:6379
where route53 recordsets are pointing redis-slave-1.dev.com to read endpoint of a node which is master.
and redis-slave-2.dev.com points to read endpoint of node (slave).
If we change the recordset redis-slave-1.dev.com (earlier pointing to master) to point to read endpoint of a node which is slave and we also switch redis-slave-2.dev.com (earlier pointing to slave) to point to read endpoint of node (master), then this error comes.
The following logs are found:
[sson-netty-1-16] org.redisson.connection.DNSMonitor       : Detected DNS change. Master redis://redis-slave-1.dev.com:6379 has changed ip from <IP_ADDRESS> to <IP_ADDRESS>
org.redisson.connection.DNSMonitor       : Detected DNS change. Slave redis-slave-2.dev.com has changed ip from <IP_ADDRESS> to <IP_ADDRESS>
Then all the writes to redis are returning error with:
org.redisson.client.RedisException: ERR Error running script (call to f_1a2512673a7e300ca9d3d3d069a725acc43a6f4e): @user_script:1: @user_script: 1: -READONLY You can't write against a read only slave.   . channel: [id: 0x730e4414, L:/<IP_ADDRESS>:60542 - R:redis-slave-1.dev.com/<IP_ADDRESS>:6379] command:
Redis version
3.2.4
Redisson version
3.7.5
Redisson configuration
@Bean(destroyMethod = "shutdown")
public RedissonClient redissonClient() {
Config config = new Config();
RedisProperties redisProperties = getRedisProperties();
config.useReplicatedServers().setLoadBalancer(new RoundRobinLoadBalancer()).setScanInterval(redisProperties.getScanInterval()).
setSubscriptionConnectionPoolSize(redisProperties.getSubscriptionPoolSize()).setSubscriptionConnectionMinimumIdleSize(redisProperties.getSubscriptionIdleSize()).
setSubscriptionsPerConnection(redisProperties.getSubscriptionPerConnection()).
setMasterConnectionPoolSize(redisProperties.getMasterConnectionPoolSize()).setSlaveConnectionPoolSize(redisProperties.getSlaveConnectionPoolSize()).
setSlaveConnectionMinimumIdleSize(redisProperties.getIdleConnectionSize()).setMasterConnectionMinimumIdleSize(redisProperties.getIdleConnectionSize()).
setIdleConnectionTimeout(redisProperties.getIdleConnectTimeout()).setReconnectionTimeout(redisProperties.getTimeout()).
setReadMode(ReadMode.SLAVE).setConnectTimeout(redisProperties.getConnectTimeout()).setTimeout(redisProperties.getTimeout()).addNodeAddress(redisProperties.getRedisHostName());
return Redisson.create(config);
}
Please note that redisson is easily able to detect master/slave and able to switch connections when doing promotion of a slave.
It is also able to detect the DNS change successfully if the master endpoint is replaced by another cluster's master endpoint.
But, when we switch the DNS in a manner so that the earlier recordset which was pointing to a master now points to a slave and vice-versa, redisson is unable to detect it.

This would be a great to have feature.

Fixed in https://github.com/redisson/redisson/issues/3736


Import table #1 (STEM Degrees Conferred by Level)

See import list at #21

This has been flagged as a set we're interested in for a pre-loaded visualization: "What fraction of STEM degrees are granted to Black women, compared to other demographic groups? How has this changed over time?
Show this as a trend chart. "
Let's prioritize this for upload along with the other flagged sets.

Is there a Sheet with processed_csv for this dataset?

https://docs.google.com/spreadsheets/d/1EKFKSF2Ex8rd-irm83qDqLwTYMOyxWZTg1gqXq-n8lE/edit?resourcekey=0-JZkTIVKk-BotO_lLeExA9g#gid=1933997560


dbt docs generate is very slow if many tables exist in the catalog, even if they are not used in the dbt project

Expected behavior
When I create a dbt project which writes to multiple schemas (e.g. by configuring seeds to be written to schema with suffix _seeds) and run dbt docs generate, I expect the run-time to depend on the number of tables in these target schemas.
Actual behavior
The run-time depends on the total number of tables in the catalog. For instance, if ~3000 tables exist in the catalog, dbt docs generate can take around 10 minutes.
The reason is that the get_catalog macro reads system.metadata.table_comments and filters using schema_name in ('schema_1','schema_2', etc). However, Trino does not push down this filter and instead reads all table comments from all tables, which can be incredibly slow (processing only ~15 tables per second).
A possible fix, which I will add a PR for shortly, is to rewrite that query using union all, as follows:
select ... from system.metadata.table_comments where ... and schema_name = 'schema_1'
union all
select ... from system.metadata.table_comments where ... and schema_name = 'schema_2'
union all
etc.

By doing this, Trino reads only the table comments from the tables in the selected schemas, and running dbt docs generate is much faster, taking only a few seconds if the dbt project only contains a few tables.
Steps To Reproduce

Create an Iceberg catalog. Create several thousand tables in it.
Create a dbt project which uses the catalog as its target. Add a seed. Configure in dbt_project.yml to write the seed to its own schema as follows:

seeds:
  trinotest:
    schema: seeds

Run dbt seed
Run dbt run
Run dbt docs generate
Observe that it takes 10 minutes.

Log output/Screenshots
11:13:18  Running with dbt=1.4.1
11:13:18  Found 2 models, 4 tests, 0 snapshots, 0 analyses, 310 macros, 0 operations, 1 seed file, 0 sources, 0 exposures, 0 metrics
11:13:18
11:13:20  Concurrency: 1 threads (target='dev')
11:13:20
11:13:20  Done.
11:13:20  Building catalog
11:21:24  Catalog written to /home/myusername/trinotest/target/catalog.json
Operating System
Ubuntu 22.04.1 LTS
dbt version
1.4.1
Trino Server version
407-e.0
Python version
3.10
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Resolved by https://github.com/starburstdata/dbt-trino/pull/273


Increase max retries on resume type VM

When connecting to a resume type VM for the first time, the wait time was not long enough. Increasing the retry count will solve this issue. If after this delay the VM is still not responsive on the vsock it's likely an issue on the VM startup itself and ok to close. This Fixes #122

I stumbled on that issue when testing on rPI (4g)


Docs Request: document updating a manifest

The current documentation doesn't explain how one updates a manifest for an existing cluster.
I'd write that myself, except that I've been unable to figure out how to do it with trial & error.

Hi Josh,
Kubectl edit pg cluster-name is how I often do this. I think there is also a replace or apply command that works on CRDs, but I don’t have access to a cluster to experiment with this right now.

actually both kubectl apply and kubectl replace work on a CRD with a reasonably modern client (mine reports 1.7.6 as a version.)

I tried apply on 1.8 and got the error that the manifest already existed.

Same problem. When try to apply manifest - get error

» ~/bin/google-cloud-sdk/bin/kubectl --context minikube apply -f ./manifests/minimal-postgres-manifest.yaml
The postgresql "pg-cluster" is invalid: apiVersion: Invalid value: "postgresql": must be acid.zalan.do/v1
» cat ./manifests/minimal-postgres-manifest.yaml | grep apiVersion:
apiVersion: acid.zalan.do/v1
» kubectl --context minikube get postgresql pg-cluster -o yaml | grep apiVersion:
apiVersion: acid.zalan.do/v1

Minikube version 1.8.0
Try with kubectl versions 1.7.5 and 1.9.2 - nothing change.

kubectl --context minikube replace -f ./manifests/minimal-postgres-manifest.yaml

Work correct

@mobilesfinks it works for me (kubectl 1.8.2):
kubectl apply -f minimal-postgres-manifest.yaml postgresql "acid-minimal-cluster" configured
Did you try to make any changes to the manifest before doing kubectl apply? If I try it with the manifest that has not been changed since the last create/apply, I'm getting a  different, however, quite obscure error (version 1.8.2 for both the client and the server):
kubectl apply -f minimal-postgres-manifest.yaml The postgresql "acid-minimal-cluster" is invalid: apiVersion: Invalid value: "acid.zalan.do/__internal": must be acid.zalan.do/v1

Most kubectl options for this issue are mentioned here, I guess. I also use edit. Closing now. Anybody, feel free to reopen if still facing this problem.


Add support for Pipedream CLI

Overview

Add support for Pipedream CLI. The shell plugin provisions a configuration file at ~/.config/pipedream/config. The shell plugin also imports the API Key and the Org ID from the same file at the same path, if they exist.
Type of change

[x] Created a new plugin
[ ] Improved an existing plugin
[ ] Fixed a bug in an existing plugin
[ ] Improved contributor utilities or experience

Related Issue(s)

Resolves: #
Relates: #

How To Test

Install Pipedream CLI and set up the shell plugin.
If the config file exists at ~/.config/pipedream/config, the first time op plugin init pd is run, the API Key and Org ID can be imported into 1Password.
Test with pd login status. It should show that the login is successful.

Changelog
Add support for Pipedream CLI

Additional information

[x] Check this box if this is a Hashnode Hackathon submission

Corresponding blog post: https://rajapri28613.hashnode.dev/1password-shell-plugin-for-pipedream


Add backwards as a property of AnimatedSprite.

Fixes https://github.com/godotengine/godot/issues/30785.

I don't see what's the purpose of this? It doesn't do anything as a property of AnimationSprite

@cgxeiji Is this still desired? If so, it needs to be rebased on the latest master branch.

The new property needs documentation. Also the backwards argument of play() is no longer needed; it could be removed.

@TokageItLab didn't you add backwards loop?

@fire My implementation affect only animation tree, not sprite.

Seems like there is no interested in this PR from any side. So closing.

P.S. ^ I added alternative recently in #71907.
Now AnimatedSprite can play backwards with play_backwards() and retrieve playback direction with backward = get_playing_speed() < 0, it is same with AnimationPlayer.


Added lost usage of USE_AWS_MEMORY_MANAGEMENT

Issue #, if available:
Description of changes:
Check all that applies:

[ ] Did a review by yourself.
[ ] Added proper tests to cover this PR. (If tests are not applicable, explain.)
[ ] Checked if this PR is a breaking (APIs have been changed) change.
[ ] Checked if this PR will not introduce cross-platform inconsistent behavior.
[ ] Checked if this PR would require a ReadMe/Wiki update.

Check which platforms you have built SDK on to verify the correctness of this PR.

[ ] Linux
[ ] Windows
[ ] Android
[ ] MacOS
[ ] IOS
[ ] Other Platforms

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

If you do not add CUSTOM_MEMORY_MANAGEMENT test support to RunTests, not sure this will get tested.  When I made similar changes earlier today, the unit tests in aws-sdk-cpp bombed out.  Here's an interesting RunTests.cpp... but any CI needs to have a test run with -DCUSTOM_MEMORY_MANAGEMENT=ON enabled as one of the jobs to make this useful.
/**
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * SPDX-License-Identifier: Apache-2.0.
 */

#include <gtest/gtest.h>
#include <aws/core/Aws.h>
#include <aws/core/utils/logging/LogMacros.h>
#include <aws/testing/TestingEnvironment.h>
#include <aws/testing/platform/PlatformTesting.h>
#include <aws/testing/MemoryTesting.h>

#if defined(HAS_UMASK)
#include <sys/stat.h>
#endif

Aws::SDKOptions options;

#ifdef USE_AWS_MEMORY_MANAGEMENT
class TestMemoryManager : public Aws::Utils::Memory::MemorySystemInterface
{
public:
    void *AllocateMemory(std::size_t blockSize, std::size_t alignment,
                         const char *allocationTag) override
    {
        (void)alignment;
        (void)allocationTag;
        return malloc(blockSize);
    }

    void FreeMemory(void* memoryPtr) override
    {
        free(memoryPtr);
    }

    void Begin() override
    {
    }

    void End() override
    {
    }
};
#endif // USE_AWS_MEMORY_MANAGEMENT

int main(int argc, char** argv)
{
#if defined(HAS_UMASK)
    // In order to fix github issue at https://github.com/aws/aws-sdk-cpp/issues/232
    // Created dir by this process will be set with mode 0777, so that multiple users can build on the same machine
    umask(0);
#endif

    Aws::Testing::RedirectHomeToTempIfAppropriate();

    options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Trace;
    options.httpOptions.installSigPipeHandler = true;
#ifdef USE_AWS_MEMORY_MANAGEMENT
    TestMemoryManager tmm;
    options.memoryManagementOptions.memoryManager = &tmm;
#endif // USE_AWS_MEMORY_MANAGEMENT

    AWS_BEGIN_MEMORY_TEST_EX(options, 1024, 128);

    Aws::Testing::InitPlatformTest(options);
    Aws::InitAPI(options);
    // Disable EC2 metadata in client configuration to avoid requests retrieving EC2 metadata in unit tests.
    Aws::Testing::SaveEnvironmentVariable("AWS_EC2_METADATA_DISABLED");
    Aws::Environment::SetEnv("AWS_EC2_METADATA_DISABLED", "true", 1/*override*/);
    ::testing::InitGoogleTest(&argc, argv);
    int retVal = RUN_ALL_TESTS();
    Aws::Testing::RestoreEnvironmentVariables();
    Aws::ShutdownAPI(options);
    AWS_END_MEMORY_TEST_EX;

    Aws::Testing::ShutdownPlatformTest(options);

    return retVal;
}

TEST(InitShutdown, Repeatable)
{
    for (unsigned ii = 0; ii < 5; ++ii)
    {
        // queue up some work for the logger, enough for it to be live until shutdown
        for (unsigned jj = 0; jj < 10000; ++jj) {
            AWS_LOG_WARN("InitShutdown.Repeatable", "test warn level");
        }

        Aws::ShutdownAPI(options);
        Aws::InitAPI(options);
    }
}


StringValues: Inconsistent hashcode for single-valued instances depending on construction

Describe the bug
Two StringValues instances initialized in different ways with the same single value may or may not produce the same hashcode depending on the actual value they hold.
Or, given a fixed string value, they may produce the same or different hashcodes across different .NET runtime executions.
To Reproduce

.NET Core 2.1.503, Microsoft.Extensions.Primitive 2.1.1

Run this unit test repeatedly.

var sv1 = new StringValues("value");
var sv2 = new StringValues(new [] { "value" });

Assert.Equal(sv1.GetHashCode(), sv2.GetHashCode());

The assertion will sporadically fail.
Expected behavior
The assertion should succeed consistently.
StringValues.Equals is always true for the many forms of sv1.Equals(sv2),  so right now we sometimes end up with equal instances with different hashcodes, breaking the contract between .Equals and .GetHashCode.
Root cause
For single-valued instances, StringValues.GetHashCode calculates the hashcode differently according to the internal representation:

sv1.GetHashCode() returns the hashcode of the one string value stored in the _value internal field.

result: "value".GetHashCode()

sv2.GetHashCode() uses a HashCodeCombiner for the one value stored in the first element of the internal _values array field. The combiner accumulates hashcodes into a long, and then returns the hashcode of that long.

result: ((long)"value".GetHashCode()).GetHashCode()

Now, the hashcode of a long is:
(unchecked((int)((long)m_value)) ^ (int)(m_value >> 32))

This returns m_value if m_value is > 0 so the double .GetHashCode() above is ok when "value".GetHashCode() is in that range, and the two hashcodes will be the same. But a negative "value".GetHashCode() ends up producing a different value altogether.
In other words, two StringValues instances initialized in different ways with the same single value may or may not produce the same hashcode depending on whether the hashcode of the value they hold, by virtue of being negative, ends up setting the sign bit of a long.
Also, because hashcodes are seeded differently at every .NET runtime execution, across different runs StringValues hashcodes that were equal in one run won't be in another run.
Suggested fix
This can be fixed in several ways, but I think the fix that meshes best with the style of this code would be to go from:
        public override int GetHashCode()
        {
            if (_values == null)
            {
                return _value == null ? 0 : _value.GetHashCode();
            }

to:
        public override int GetHashCode()
        {
            if (this.Count == 1)
            {
                return this[0].GetHashCode();
            }

I'm available to do a pull request incl. unit test.
Additional context
dotnet --info output:
.NET Core SDK (reflecting any global.json):
 Version:   2.1.503
 Commit:    4c506e0f35

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.16299
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\2.1.503\

Host (useful for support):
  Version: 2.1.7
  Commit:  cca5d72d48

.NET Core SDKs installed:
  2.1.502 [C:\Program Files\dotnet\sdk]
  2.1.503 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

Edits: clarifications on which hashcode values produce this bug.

We should make sure that StringValues with a single element array should be special-cased in GetHashCode and have it generate the same kind of hash code as it would if it was a single string.

@anurse  just stumbled accross this issue.
Since https://github.com/aspnet/Extensions/pull/2062 got merged, this issue could be closed.

Oops! Good catch @gfoidl, thanks!


DBeaver 5.3.3 does not import existing license

Hi, I've just updated DBeaver to the latest EE version , 5.3.3, from 5.3.1 which had a NPE bug opening license stuff...
Anyway, I'm trying to start DBeaver now and it cannot find my license - prompts to import/buy new one. I do have a perpetual license bought , and when I go to "License Manager" it correctly shows it in the list of available licenses. But then if I click on Import it again asks me to upload/paste a license. I don't know where the license is on the disk, so cannot copy/paste it - would expect the product to be able to correctly apply it, since it clearly sees it in the list of available licenses.
How do I proceed now?
Thanks,
Marina

Hello,
generally it is much faster to solve such questions using tickets system on dbeaver.com or by email on<EMAIL_ADDRESS>.
Please send your license ID on<EMAIL_ADDRESS>Maybe you have too old license, it is perpetual but only for versions released during one year after license issue time (https://dbeaver.com/products/dbeaver-ee/). In this case you can download previous version of DBeaver from https://dbeaver.com/files and keep using it.
In order to use new versions you will need to extend your license or to purchase a new one.


Add option to use environment variables from secretRef in kafka-connect

I want to make sealed secrets available to kafka-connect. That does not seem to be possible, because there is no way to set a secretRef like this:
envFrom:
  - secretRef:
      name: my-secret

Is this a missing feature, or is it somehow already possible?

Hey @1DIce
Thanks for reporting this.
We don't have it at the moment, but it's a quick one. Feel free to open a PR at will.
Cheers :clinking_glasses:


Creating Ganache server with specified accounts (private key and balance) creates accounts with zero balance

Initially found when using ganache-cli, I tracked it down to ganache-core.
var options = { accounts: [{ sekretKey: <secret>, balance: <balance> }] }
var server = Ganache.server(options);

Accounts created this way always have zero balance even though it's specified.
UPDATE: Further testing shows that accounts are being created with 100 ETH balance when the balance is not specified; when it's specified then the accounts are created with zero balance, which is still a bug.

Hi @aleybovich,
It looks like you've misspelled secretKey in your blob above. Also bear in mind that we run the OpenZeppelin test suite as part of every ganache-core release, and those tests make use of this functionality.
Be sure that you're specifying the balance key as a hexidecimal string, as well.
Hope this helps!


Querying with OData filters is extremely slow for large ammout of data

Package Name:  @azure/search-documents
Package Version:  ^11.2.1
Operating system:
[ ] nodejs

version: 14.19.1

[ ] browser

name/version:

[ ] typescript

version: 4.6.4

Is the bug related to documentation in

[ ] README.md
[ ] source code documentation
[ ] SDK API docs on https://docs.microsoft.com

Describe the bug
Retrieving large amount of documents is extremely slow. It takes more than 3 minutes to get ~20MB of data.
const { SearchClient, AzureKeyCredential, odata } = require("@azure/search-documents");

const client = new SearchClient(
  "<endpoint>",
  "<indexName>",
  new AzureKeyCredential("<apiKey>")
);

async function main() {
  const baseRateMax = 200;
  const ratingMin = 4;
  const searchResults = await client.search("WiFi", {
    filter: odata`Rooms/any(room: room/BaseRate lt ${baseRateMax}) and Rating ge ${ratingMin}`,
    orderBy: ["Rating desc"],
    select: ["HotelId", "HotelName", "Rating"],
  });
  for await (const result of searchResults.results) {
    // Each result will have "HotelId", "HotelName", and "Rating"
    // in addition to the standard search result property "score"
    console.log(result);
  }
}

main()

Via Azure Search:
Getting 13997 documents took: 177985.586ms - 19.93 mb
Getting 13997 documents took: 219891.240ms - 25.98 mb
Getting 13997 documents took:   3259.752ms -  0.71 mb
Getting 8000 documents took:  88010.829ms - 11.39 mb
Getting 8000 documents took:  91332.387ms - 14.80 mb
Getting 8000 documents took:   1872.590ms -  0.41 mb
Getting 3000 documents took:  31550.000ms -  4.27 mb
Getting 3000 documents took:  32204.501ms -  5.55 mb
Getting 3000 documents took:    912.496ms -  0.15 mb
Getting 1000 documents took:   9749.348ms -  1.42 mb
Getting 1000 documents took:  10806.594ms -  1.85 mb
Getting 1000 documents took:    441.661ms -  0.05 mb
Via Elasctic Search with scroll:
Getting 13997 documents took: 17715.053ms - 28.82 mb
Comparing a similar query between Azure Search & Native Elastic Search, was 12 times slower for less data.
To Reproduce
Steps to reproduce the behavior:
1.
Expected behavior
I would expect to get the results faster
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
My current Azure Search tier:

Azure ResourceId:
/subscriptions/64e7acb6-246f-4829-903e-b2d5c0d2ce37/resourceGroups/TrustMarket/providers/Microsoft.Search/searchServices/trustmarket

Hello @mihaiLucian, can you please elaborate when you say "Comparing a similar query between Azure Search & Native Elastic Search, was 12 times slower for less data.", how are you getting the documents from Native Elastic Search: REST API, SDK - which one in this case -, etc.? This is so our teams are able to understand the comparison and tools used. Thank you so much in advance for clarifying.


Missing android,ios & android folders and js files

When I run "react-native init FirstApp".
This will walk you through creating a new React Native project in D:\ReactNative\FirstApp
Installing react-native package from npm...
There's no any errors in the console.
This FirstApp React Native Project just get package.json and node_modules and Missing android/ios folders and js files.
OS:Windows 7
nodejs:v5.11.0
react-native-cli: 0.2.0

@facebook-github-bot label Android

I think this is missing sufficient information to proceed, so I'm going to close this.


Autofill is unable to associate credentials and is always asking if they should be stored

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce
We created an application with a login form and want to save the credentials in the system password safe (e.g. the Google Password Manger on Android). We hust the AutfillHints on the Username/E-Mail and password text field and everything works fine on Android.
In Xcode we created an associated domain, something like: webcredentials:<subdomain>.<domain>?mode=developer and created an apple-app-site-association file which is available at ./.well-known/apple-app-site-assocation:
{
   "webcredentials":{
      "apps":[
         "<TeamID>.<AppID>"
      ]
   },
   "applinks":{
      "apps":[ ],
      "details":[
         {
            "appID":"<TeamID>.<AppID>",
            "paths":[ "*", "/" ]
         }
      ]
   }
}

Expected results
Android and iOS will ask for confirmation to store the credentials after login and provide the possibility to choose the login credentials on the login page.
Actual results
On Android everything works as expected but iOS (we are only able to try it on iOS 15.7.7 which is not ideal but in the expected range of customer devices) behaves weird:

The keyboard overlay does not show the saved credentials but the possibility to open the password manager and you have to manually select the credentials. They are then entered correctly in the email and password field.
After every login a system overlay shows up and ask for confirmation to save the credentials even if they are already stored. The following is a minimal code snippet for the login form
We know that the apple-app-site-association file is accessed by the application but something seems to be off.

Code sample
Code sample
 Container _buildLoginForm(BuildContext context) {
    return Container(
        padding: const EdgeInsets.all(20.0),
        child: AutofillGroup(
            onDisposeAction: AutofillContextAction.commit,
            child: Wrap(runSpacing: 10, children: [
              TextField(
                autofillHints: const <String>[AutofillHints.username],
                decoration: getTextFieldDecoration("E-Mail"),
                controller: _emailController),
              TextField(
                  obscureText: true,
                  autofillHints: const <String>[AutofillHints.password],
                  decoration: getTextFieldDecoration("Password"),
                  controller: _passwordController,
                  onEditingComplete: () => _handleLogin()),
              ElevatedButton(
                onPressed: () => _handleLogin(),
                child: const Text("Login"),
              )
            ])));
  }```
</details>

### Screenshots or Video

<details>
<summary>Screenshots / Video demonstration</summary>

[Upload media here]

</details>

### Logs

<details><summary>Logs</summary>

```console
[Paste your logs here]

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.10.6, on macOS 13.5.2 22G91 darwin-arm64, locale de-DE)
    • Flutter version 3.10.6 on channel stable at /Users/builduser/Desktop/dev/tools/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f468f3366c (3 months ago), 2023-07-12 15:19:05 -0700
    • Engine revision cdbeda788a
    • Dart version 3.0.6
    • DevTools version 2.23.1

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/builduser/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A240d
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] VS Code (version 1.82.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.72.0

[✓] Connected device (3 available)
    • iPad von Build User (mobile) • f108aef935b763dbfe1e4fa7e029eed1b07a439e • ios            • iOS 15.7.7 19H357
    • macOS (desktop)              • macos                                    • darwin-arm64   • macOS 13.5.2 22G91 darwin-arm64
    • Chrome (web)                 • chrome                                   • web-javascript • Google Chrome 117.0.5938.92

[✓] Network resources
    • All expected network resources are available.

• No issues found!

Hi @jsc57x . Thanks for filing this. I see there is an already open issue describing this exact case https://github.com/flutter/flutter/issues/116889. Kindly upvote, comment and follow up on the issue for updates.
Closing this as a duplicate of the existing issue, if you disagree, please comment and I'd reopen this.
Thank you!

Thanks for the answer, yes I see that the bug with the focus lost might be problem 2. But I don't see that the other problem is mentioned (in fact the behaviour is shown in the demo video). Should I comment the other ticket or alter this one?

Hi @jsc57x. Please comment on the existing issue.


Support for Stretch possible?

Any chance I could Use this also for the old Plugwise Stretch ?
In HA it gets recognized, but gives an error when entering the 8 characters: ‘ Ongeldige authenticatie, controleer de 8 karakters van uw Smile-ID’
I Think this is to start with the fact that the stretch Wants the username ‘stretch’ when logging in
I CAn visit this page which I read somewhere contains information needed: http://<IP_ADDRESS>/core/domain_objects
A snippet from that page:
Wasdroger 043AECA dryer 2014-04-05T01:09:44.235+02:00 2020-07-30T07:58:15.458+02:00 2020-07-30T07:58:14.206+02:00 electricity_consumed Wh 2020-07-30T06:00:00+02:00 PT1H 0.00 2020-07-30T07:58:14.177+02:00 electricity_produced W 2014-04-05T02:03:17.416+02:00 0.00 electricity_produced Wh PT1H 2020-07-30T07:58:14.177+02:00 electricity_consumed W 2020-07-28T10:08:07.206+02:00 1.31 2020-07-30T07:58:15.427+02:00 relay 2019-05-10T21:19:52.022+02:00 on 2020-07-30T07:58:15.458+02:00 on true printer 2015-05-26T19:41:31.087+02:00 2019-04-29T22:18:45.364+02:00 Plugwise NR 0000-0440-0107 2011-06-27T10:52:18+02:00 2014-04-05T01:05:07.112+02:00 2020-07-30T07:58:22.394+02:00 0.00 0.00 0.00 off

Is this related / see also recent messages on https://community.home-assistant.io/t/plugwise-smile-custom-component-beta/183560/98

Supported added in v1.4.0
And in Plugwise-beta v0.7.0/0.8.0


implement get file stream for writing

I implemented the new method for getting a stream to write files.
Can you please give feedback regarding the type of exception and also on how to handle the ReadWrite value that works on FileSystem but not for azure since it does only allow either read or write.
Also I dont even know if I can test this locally or only with the actions

Thanks @garcipat! For the ReadWrite thing, I think basically we want to be able to read a file, write a file (overwrite if it exists) and append to a file which is what ReadWrite is currently doing, correct? I'm thinking maybe we should be more explicit about that and change up the enum we are using for getting a stream in the higher foundatio library to reflect those actions. Then for Azure, I think they have an append feature and would imagine most storage implementations would be able to append as well.
For testing, it is using a storage emulator in the docker-compose.yml file at the root. So if you docker compose up in the root, you will have a running storage emulator.

Okay.  Should I do another PR in the main repo first then implementing it for the other providers?
Will check the append thing. For files both read and write are supported. Should that not be exposed because its too specifit to the file system?

Maybe try implementing ReadWrite as append in azure and make sure that works before we go and change the core Foundatio stream abstraction?

Okay I tried too get this to work with a read/write stream but i think Azure (maybe as well others) dont allow read and write at the same time.
To explain a little bit what I tried to do any why I'm workin gon that is, that Im having an ZIP archive in file storage. But ZipArchive requires a stream that can read, write and seek. I even tried to write my own stream but It seems that this is not feasable. But wiht local file storage this works fine. I now just dont know how it would be best to have the interface. Only exposing Read and Write is losing the advantage of having both if you are working with FileSystem. But exposing ReadWrite maybe is only supported by a few.
Its not a big issue since I'm extending the IFileSotrage interface anyway and also the implementations in my code so I can change the behaviour if I like to. But since I was working on it anyway i thought why not to contribute and making that available for others.
Tell me what you think would be best. I could also check a few other providers like AWS and see if those can handle it and its maybe only an issue on azure.

@garcipat Hmm... So I guess in the zip scenario you wouldn't want to just append to a file, you'd actually want to seek and overwrite portions of the file, correct?
I've seen a few articles online that seemed to be saying you could seek to different blocks and then overwrite that entire block. One problem is that I think our Azure storage implementation is using an outdated client that we need to get upgraded. Wonder if the newer library would support it?
I guess we need to figure out if a majority of blob storage implementations would support that scenario and if so then it would make sense to keep the abstraction as is with a ReadWrite option and we would just have to throw a not implemented exception in ones that didn't support seeking. I guess we need to do some research and find out what the support level is.
I see this article for S3 indicating that it does not support seekable streams by default, but maybe there are workarounds:
https://medium.com/circuitpeople/random-access-seekable-streams-for-amazon-s3-in-c-bd2414255dcd
I saw a similar one for Azure, but can't seem to find it.
Have you found any info?
It seems like even an append operation isn't implemented in S3 and probably others since they are S3 compatible. Which makes me feel like we should keep this abstraction simple for now and change to use our own enum that just has read and write stream support and we can always add additional modes in the future since we will be using our own enum.

No I didn't have time to investigate yet. Then I will create a internal
enum with only read and write that can be expanded if more widly supported
options are available. I will still investigate. Currenly only time is
limited.
Let me make a PR for the main package and then update the others.
Eric J. Smith @.***> schrieb am Fr., 15. Sep. 2023,
21:50:

@garcipat https://github.com/garcipat Hmm... So I guess in the zip
scenario you wouldn't want to just append to a file, you'd actually want to
seek and overwrite portions of the file, correct?
I've seen a few articles online that seemed to be saying you could seek to
different blocks and then overwrite that entire block. One problem is that
I think our Azure storage implementation is using an outdated client that
we need to get upgraded. Wonder if the newer library would support it?
I guess we need to figure out if a majority of blob storage
implementations would support that scenario and if so then it would make
sense to keep the abstraction as is with a ReadWrite option and we would
just have to throw a not implemented exception in ones that didn't support
seeking. I guess we need to do some research and find out what the support
level is.
I see this article for S3 indicating that it does not support seekable
streams by default, but maybe there are workarounds:
https://medium.com/circuitpeople/random-access-seekable-streams-for-amazon-s3-in-c-bd2414255dcd
I saw a similar one for Azure, but can't seem to find it.
Have you found any info?
It seems like even an append operation isn't implemented in S3 and
probably others since they are S3 compatible. Which makes me feel like we
should keep this abstraction simple for now and change to use our own enum
that just has read and write stream support and we can always add
additional modes in the future since we will be using our own enum.
—
Reply to this email directly, view it on GitHub
https://github.com/FoundatioFx/Foundatio.AzureStorage/pull/33#issuecomment-1721764077,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABXTN43DEFYVEJQHBPELF2TX2SWQ7ANCNFSM6AAAAAA4TPFSOI
.
You are receiving this because you were mentioned.Message ID:
@.***>

Are the license agreement checks broken? I signed it but it just wont detect it.

I just logged in and checked configuration and they seem to be configured right, but the site was super slow. I wonder if they are having issues.

I just logged in and checked configuration and they seem to be configured right, but the site was super slow. I wonder if they are having issues.

I only had issues on the AzureFoundation one. The other in the base repo worked fine.

I just logged in and checked configuration and they seem to be configured right, but the site was super slow. I wonder if they are having issues.

I only had issues on the AzureFoundation one. The other in the base repo worked fine.

I found out what the issue was. I pushed things with my github account of my project I'm working in. Therefore I had to also sign it with that account. Need to pay attention not to push with that one.

Thanks so much for the PR!

I happy to contribute. I well see if I can also do that with the AWS package if not already done.

That would be awesome! It doesn't yet support it


Remove createObservable() and replace it with asRxObservable()

Suggestion: rename also executeAsBlocking to asBlocking.
Everything would have the same format: asSomething

Well, we want strongly show that this method will execute operation in
current thread as soon as you call it while other methods are lazy
On Sun, 24 Jan 2016, 18:25 inorichi<EMAIL_ADDRESS>wrote:

Suggestion: rename also executeAsBlocking to asBlocking.
Everything would have the same format: asSomething
—
Reply to this email directly or view it on GitHub
https://github.com/pushtorefresh/storio/issues/582#issuecomment-174309340
.

--
@artem_zin

It's part of #607, I'm closing all other issues about deprecated apis.


[ch3749] Customise meta description for committee

https://app.clubhouse.io/enmarche/story/3749/modifier-les-meta-descriptions-des-pages-de-comités-locaux

IMO you can change also the og:meta and twitter:description meta tags. It's the same content.


v0.8.0

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_76x6udnoxt/clone/recipe/meta.yaml:15: pip_install_args: pip install should be run with --no-deps.
WARNING: /tmp/abs_76x6udnoxt/clone/recipe/meta.yaml:64: license_file_overspecified: Using license_file and license_url is overspecified.
Errors were found

Linter check found the following problems:
The following problems have been found:
WARNING: /tmp/abs_cbkmfhjy0a/clone/recipe/meta.yaml:64: license_file_overspecified: Using license_file and license_url is overspecified.
Warnings were found


KAFKA-9540: Move "Could not find the standby task while closing it" log to debug level

As described in the ticket, this message is logged at the error level but only indicates that a standby task was not created (as is the case if its subtopology is stateless). Moving this to debug level, and clarifying the implications in the log level.
Targeting this PR against 2.4, as the issue is incidentally fixed in trunk as part of the tech debt cleanup. We should also merge this fix to 2.5 but need to wait for the release, since this is obviously not a blocker

Cherry-picked to 2.5


Usage Metrics unclear

Can someone please explain how to read the "usage metrics" table? What do the percentage rates stand for?

https://data.syncthing.net

Percentiles. Imagine a graph of memory usage on the X axis, and number of people with that usage on the Y. The resulting curves will be roughly bell-shaped: lots of people around the mean, and trailing off towards the sides. Draw a vertical line such that the area under the curve and to the left of the line represents 5% of the total area under the line (i.e. 5% of the total number of people). The Y value of the point where that line intersects the curve is the 5% value in the table. Likewise the 50% value indicates the average. Etc.

http://en.wikipedia.org/wiki/Percentile


proposal: Go 2: struct field methods, or anonymous callback helper types

While implementing the main functionality of a Go struct, we often need to define associated "helper" types whose purpose is merely to implement a certain interface with methods that often call right back into the main struct (or directly access the state in the main struct).  It would be nice if such "callback helper" types could be anonymous, avoid diverting the developer's attention away from the main struct, and avoid needing explicit back pointers to the main struct.  This goal could be accomplished by allowing method declarations attached to fields within structs, as discussed below.
For example, suppose the main struct needs to invoke some standard encoding API like json.NewEncoder() but needs to pass an io.Writer to it.  The main struct does not want to be an io.Writer itself: that is, it does not want a Write() method in its own public API.  Instead, the main struct just needs a some subsidiary helper object to pass to json.NewEncoder(), which implements the io.Writer interface, and whose custom Write() method calls back into the main struct to be implemented there with access to all the state in the main struct.
Concretely, I find that more-or-less the following pattern occurs often in Go code:
// the main object we want: all the state is here and all the real action happens here
type MainObject struct {
   writer mainObjectWriterCallback  // embedded helper to implement a custom io.Writer
}

func (m *MainObject) Init() {
   writer.backPointer = m // make sure the helper can get back to the MainObject's state
}

func (m *MainObject) EncodeThyself() {
   someCodec.EncodeTo(&m.writer)   // EncodeTo() wants an io.Writer
}

func (m *MainObject) encodeWrite(p []byte) (n int, err error) {
   // implement the Write method that someCodec.EncodeTo() wants, using MainObject's state
}

// the helper type, which exists only to be an io.Writer and forward Write() back to MainObject
type mainObjectWriterCallback struct {
   backPointer *MainObject
}

func (mowc mainObjectWriterCallback) Write(p []byte) (n int, err error) {
   n, err = mowc.backPointer.encodeWrite(p)
   return
}

Of course mainObjectWriterCallback.Write() could simply "do the work itself" by following its mowc.backPointer back to the MainObject.  But this organization breaks the flow of the logic that really belongs back in MainObject, not in the mainObjectWriterCallback helper.  And the separate named type mainObjectWriterCallback is still needed, with its explicit back pointer mowc.backPointer to the main object, which needs to be initialized explicitly in Init(), etc.
Simpler, and more concise, anonymous helper types
I propose that a future version of Go allow such helper type(s) and associated callback forwarding methods to be replaced with code like the following, in which method declarations attach can attach a method directly to a field within a struct:
type MainObject struct { // all the state is here and all the real action happens here
   writer struct{}  // embedded helper: no longer needs a type name, may be empty
}

func (m *MainObject) EncodeThyself() {  // this is a normal struct method
   someCodec.EncodeTo(&m.writer)   // EncodeTo() wants an io.Writer
}

func (m *MainObject) writer.Write(p []byte) (n int, err error) {  // this is a struct field method
   // implement the Write method that someCodec.EncodeTo() wants, using MainObject's state
}

Note that the writer field is declared as an empty, anonymous struct{} in this example.  However, attaching method(s) to it like writer.Write() effectively creates an anonymous (sub-)struct type associated with that field, with the associated methods, and which is capable of satisfying any interfaces that might require those methods.  Thus, the call to EncodeTo(&m.writer) works because the writer field has a suitable Write() method, even though the field's declared type of struct{} does not.  Further, this writer.Write() method implicitly "knows" that it is part of MainObject, not just an associated helper type, and can directly access all of the main struct's state via the primary m pointer, without needing to follow any explicit back pointer from a separate helper type.
Extending existing types with additional methods in anonymous helper types
The declared type need not always be an empty struct{} as in the above example, of course.  Instead, the developer can pick any "base" type T and implicitly extend T with additional methods.  In the following variation of the above example, MainObject wants to implement writer as a standard bytes.Buffer object, but needs to extend the helper object with an additional WriteSpecialThing() method that someCodec.EncodeTo() demands:
type MainObject struct { // all the state is here and all the real action happens here
   writer bytes.Buffer  // embedded helper type built on the standard bytes.Buffer struct type
}

func (m *MainObject) EncodeThyself() {  // this is a normal struct method
   someCodec.EncodeTo(&m.writer)   // EncodeTo() demands both Write() and WriteSpecialThing() methods
}

func (m *MainObject) writer.WriteSpecialThing(the Thing) error {  // this is a struct field method
   // code to write a Thing, potentially using any state in MainObject, not just in MainObject.writer
}

Implementing field methods and anonymous helper types
A straightforward way to implement this feature would be by automatically rewriting the appropriate field(s) in the main method to have a hidden struct type, which uses the existing struct composition feature to "inherit" the field's declared type with its existing methods but then enhance it with additional methods.  For example, the above example in which MainObject.writer extends bytes.Buffer would be functionally equivalent to the following code:
type MainObject struct {
   writer hiddenHelper  // hiddenHelper extends the declared bytes.Buffer type with additional methods
}

type hiddenHelper struct {  // hidden helper struct automatically generated by the Go compiler
   bytes.Buffer   // basic declared type of MainObject.writer to be extended with additional methods
   backPointer *MainObject  // automatically-initialized back pointer to the main object
}
func (hh hiddenHelper) Write(p []byte) (n int, err error) { ... }

A smarter implementation could probably eliminate the need for hidden back pointers at all.  Suppose the Go compiler knows that this hidden helper type is only ever instantiated within a MainObject struct (since it's a field of MainObject), and that field is always located at constant offset o within the MainObject struct.  Then the implementation of writer.Write - pointed to by the hidden type's method dispatch table - can simply take the pointer it receives to MainObject.writer and subtract offset o to recover the MainObject pointer that the code in that method needs.  (This hidden pointer arithmetic happens to be equivalent to what C++ compilers already do to handle multiple inheritance efficiently, but this proposal is not about multiple inheritance.)
Thus, besides the convenience and conciseness benefits of field methods, there are also potential (slight) storage space and efficiency benefits in not having to maintain (or follow) back pointers from helper types associated with a struct type.
Author background

Would you consider yourself a novice, intermediate, or experienced Go programmer?  Experienced
What other languages do you have experience with?  C, C++, Java, Haskell, JavaScript, assembly, ...

Related proposals

Has this idea, or one like it, been proposed before? Not to my knowledge.
Does this affect error handling? No.
Is this about generics? No.

Proposal

What is the proposed change? See above.
Who does this proposal help, and why? Anyone implementing a struct that needs helper types just to implement callback interfaces that some external API demands.
Please describe as precisely as possible the change to the language. See above.
What would change in the language spec? Method declarations could declare methods of fields, like func (m *MainObject) writer.Write(), whereas traditionally methods can be declared only associated with the "top-level" struct being defined.
Please also describe the change informally, as in a class teaching Go. See above.
Is this change backward compatible? Yes, except possibly with respect to reflection, which might start "seeing" something new and unexpected when reflecting on a struct.  See above for before and after equivalents.
Orthogonality: how does this change interact or overlap with existing features?  The proposed feature leverages and conceptually builds on the existing struct composition feature already allowing an arbitrary existing type to be extended with new methods.  It arguably makes struct composition easier and more useful in an important common case.
Is the goal of this change a performance improvement? No.  (Although it might eventually enable a slight performance and storage-efficiency improvement depending on how it is implemented, as discussed above.)

Costs

Would this change make Go easier or harder to learn, and why?  The obvious cost is slightly complicating the language a bit further: having the feature is more complicated than not having the feature.  Users will not necessarily need to learn or use it, but my impression is that this design pattern is common enough that users will learn and want to use it.
What is the cost of this proposal? (Every language change has a cost).  Primarily, a slight complexity increase in both the language and the compiler implementation.  Also, potential confusion and subtleties related to the fact that a struct field can now effectively have "two types" at once: the declared field type, and the hidden helper type extended with the additional methods associated with the field.
How many tools (such as vet, gopls, gofmt, goimports, etc.) would be affected? All the tools that know about method declarations and would need to be updated to know about field method declarations in order to make sense of them.
What is the compile time cost? A slight cost of a slight automatic transformation; should be negligible.
What is the run time cost? The runtime cost should be zero or negative (a slight performance improvement) if the feature is implemented sensibly.
Can you describe a possible implementation? See above.
Do you have a prototype? (This is not required.) No.  Only the idea for now.

Concretely, I find that more-or-less the following pattern occurs often in Go code: ...

Do you have any real-world examples of this pattern? I've never seen it, so it's difficult for me to imagine where this helps.
I do think a slightly different formalism would clarify this proposal. When you say that func (m *MainObject) writer.Write(...) creates a hidden anonymous type for the writer field, and that field then has "two types at once," that is hard to reconcile with my understanding of programming languages in general and Go in particular. If we were to instead say that it creates a method of *MainObject that is scoped to the writer field, that seems to accomplish your goal, and I find it easier to understand.

Thanks for your comments.  I haven't and probably won't have time to do an extensive analysis of large existing Go codebases to quantify how common this kind of need is.  For the moment I'm just subjectively reporting that I've encountered this kind of need many times in a variety of contexts in recent years.  Everyone's experience will vary, of course.
I agree that the "two types at once" perspective might be confusing and unnecessary.  I'm not sure that I immediately understand your alternative "scoped to the writer field" formulation, though.
Actually, another way of thinking about this that might be conceptually simpler and cleaner is as follows.  The fields of a struct still have only one type - the declared type - so the proposal changes nothing in that regard.  Assignments to/from that field, and other operations using that field, still work as always.  There are only two (afaik) small "point changes" in behavior:

When taking a pointer to the field and immediately converting that pointer to an interface reference (e.g., var w io.Writer = &m.writer, or using &m.writer as an argument to a function taking an io.Writer parameter), it is no longer just the methods in the field's underlying type that can satisfy the interface's demands, but additionally the field methods declared as part of the enclosing struct.  Thus, a pointer to the field is immediately assignable to interfaces that a pointer to its underlying type might not have been assignable to.  The Go compiler arranges whatever method dispatch magic may be needed to connect the interface's methods either to the underlying type's methods or the field's methods, as appropriate.
Normal method calls directly referring to the relevant field can invoke either the methods of the field's underlying type or methods attached to the field in this proposal.  That is, other code in the package could invoke m.writer.Write() directly in the above example, not just via an io.Writer interface assigned from an &m.writer pointer.

If you take a pointer to a field with methods and assign it to a pointer variable referring to the field's underlying type, however (e.g., var w *struct{} = &m.writer using the first example above), then that pointer of course "forgets" that the object it points to ever had additional methods that the struct{} type doesn't, and the pointer variable isn't usable to call those field methods.
A more subtle question is whether that "lost information" should be dynamically recoverable or not dynamically.  Maybe it's simpler to say no: if the information about the existence of the field methods is not "captured" in an immediate assignment to a suitable interface, it's lost in any resulting pointer and cannot be recovered by dynamic type casts or type switch statements.  But in the "hidden helper type" implementation suggested above, the natural answer might be yes, since a dynamic cast or type switch might be able to detect that hidden type hiddenHelper supports a Write() method and recover access to it.  I'm frankly not sure which of these potential semantic variations is preferable: the former seems simpler from a typing perspective, while the latter seems more powerful and not necessarily more difficult to implement.  But this is a detail that should be considered in a design document if this proposal or something like it were to get to that stage.

Another approach to this issue might be #25860.  Then EncodeThyself could return an interface with a method where the method is a closure that refers back to m of type *MainObject.
This proposal seems like a lot of machinery to accomplish something that we can already do, that thing being to provide an exported method on a type that is only accessible from within the type.  It took us a while to understand what is happening, which suggests that the operation is rather complex for a language like Go.
Is there anything we are missing here?
-- for @golang/proposal-review

Also https://github.com/golang/go/issues/47487

Based on the discussion above, and the emoji voting, this is a likely decline.  Leaving open for four weeks for final comments.

No further comments.


In UI editing, creation, and saving of notes

Just thought I'd create an issue for this one as well.
Largely, while I'm using a model is going to be the most likely time I'm going to want to edit its notes, so it'd be handy if I could do it on the fly.
It'd also be handy if I could send the current prompt, negative prompt, or even all the info for the last generated model to a note, or send the current note to the prompt and/or negative prompt. (Though obviously you can copy and paste, so not the highest priority on that.)
(I tend to reuse variations of the same negative prompts, and take previous prompts that worked for me and edit them into new ones. I'm definitely going to have a few useful prompts and negative prompts in my notes folder.)

This one is definitely something I need to explore more. The documentation for the markdown component on the gradio docs is pretty lacking. I'm wondering if I'm going to need a mix of both gradio backend with JS frontend to swap the element to a textarea and then send the updated contents

@Zetaphor
I'd imagine you could hide or show an input field with the text in it & button to save it, or put it in an accordion element. It is one of these areas that might be easier if we were working with a full tab, and had more space...


Emi Dashboard Filter

What does this pull request do? Explain your changes. (required)

Specific updates (required)

-

How did you test each of these updates (required)

Does this pull request close any open issues?

Screenshots (optional):

Checklist:

[ ] I have read the CONTRIBUTING document.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.

all this code was merged on #474