Disable dbt file log handler registered in logbook which is triggered from other modules that use logbook

I was able to reproduce the issue with @cesar-loadsmart's help. I was seeing the following errors:
Traceback (most recent call last):
  File "/Users/matteo/Library/Caches/pypoetry/virtualenvs/fal-eFX98vrn-py3.9/lib/python3.9/site-packages/logbook/handlers.py", line 216, in handle
    self.emit(record)
  File "/Users/matteo/Library/Caches/pypoetry/virtualenvs/fal-eFX98vrn-py3.9/lib/python3.9/site-packages/dbt/logger.py", line 481, in emit
    assert len(self._msg_buffer) < self._bufmax, \
AssertionError: too many messages received before initialization!

So I went into dbt's logger.py file and added stack trace printing:
    def emit(self, record: logbook.LogRecord):
        """emit is not thread-safe with set_path, but it is thread-safe with
        itself
        """
        # START: added by me       #########
        traceback.print_stack()
        print(f"XXXX {self.disabled} {self.initialized} {len(self._msg_buffer)} {self._bufmax}")
        # END: added by me         #########
        if self.disabled:
            return
        elif self.initialized:
            super().emit(record)
        else:
            assert self._msg_buffer is not None, \
                '_msg_buffer should never be None if _log_path is set'
            self._msg_buffer.append(record)
            assert len(self._msg_buffer) < self._bufmax, \
                'too many messages received before initialization!'

The stack trace then showed something VERY unexpected:
  File "/Users/matteo/Library/Caches/pypoetry/virtualenvs/fal-eFX98vrn-py3.9/bin/fal", line 8, in <module>
    sys.exit(cli())
  File "/Users/matteo/Library/Caches/pypoetry/virtualenvs/fal-eFX98vrn-py3.9/lib/python3.9/site-packages/fal/cli/cli.py", line 39, in cli
    fal_run(
  File "/Users/matteo/Library/Caches/pypoetry/virtualenvs/fal-eFX98vrn-py3.9/lib/python3.9/site-packages/fal/cli/fal_runner.py", line 71, in fal_run
    run_scripts(scripts, project)
  File "/Users/matteo/Library/Caches/pypoetry/virtualenvs/fal-eFX98vrn-py3.9/lib/python3.9/site-packages/fal/run_scripts.py", line 76, in run_scripts
    script.exec(context, faldbt)
  File "/Users/matteo/Library/Caches/pypoetry/virtualenvs/fal-eFX98vrn-py3.9/lib/python3.9/site-packages/fal/fal_script.py", line 30, in exec
    exec(
  File "<string>", line 135, in <module>
  File "<string>", line 132, in execute
  File "<string>", line 97, in write_table
  File "<string>", line 91, in final_dataframe
  File "/Users/matteo/Library/Caches/pypoetry/virtualenvs/fal-eFX98vrn-py3.9/lib/python3.9/site-packages/pandas/core/frame.py", line 9025, in append
    warnings.warn(
  File "/Users/matteo/.pyenv/versions/3.9.7/lib/python3.9/warnings.py", line 109, in _showwarnmsg
    sw(msg.message, msg.category, msg.filename, msg.lineno,
  File "/Users/matteo/Library/Caches/pypoetry/virtualenvs/fal-eFX98vrn-py3.9/lib/python3.9/site-packages/logbook/compat.py", line 288, in showwarning
    logbook.dispatch_record(record)
  File "/Users/matteo/Library/Caches/pypoetry/virtualenvs/fal-eFX98vrn-py3.9/lib/python3.9/site-packages/logbook/base.py", line 1124, in dispatch_record
    _default_dispatcher.call_handlers(record)
  File "/Users/matteo/Library/Caches/pypoetry/virtualenvs/fal-eFX98vrn-py3.9/lib/python3.9/site-packages/logbook/base.py", line 1001, in call_handlers
    if handler.handle(record) and not handler.bubble:
  File "/Users/matteo/Library/Caches/pypoetry/virtualenvs/fal-eFX98vrn-py3.9/lib/python3.9/site-packages/logbook/handlers.py", line 216, in handle
    self.emit(record)
  File "/Users/matteo/Library/Caches/pypoetry/virtualenvs/fal-eFX98vrn-py3.9/lib/python3.9/site-packages/dbt/logger.py", line 471, in emit
    traceback.print_stack()
XXXX False False 141 1000

Notice that in the middle of the trace, you can see that this log originates from pandas
  File "/Users/matteo/Library/Caches/pypoetry/virtualenvs/fal-eFX98vrn-py3.9/lib/python3.9/site-packages/pandas/core/frame.py", line 9025, in append
    warnings.warn(

And the way it goes back to dbt is because dbt registers handlers in logbook:
  File "/Users/matteo/Library/Caches/pypoetry/virtualenvs/fal-eFX98vrn-py3.9/lib/python3.9/site-packages/logbook/handlers.py", line 216, in handle
    self.emit(record)
  File "/Users/matteo/Library/Caches/pypoetry/virtualenvs/fal-eFX98vrn-py3.9/lib/python3.9/site-packages/dbt/logger.py", line 471, in emit
    traceback.print_stack()

So this made me go and understand where this traceback.print_stack() was placed: it was the DelayedFileHandler class. This class has a method to set the directory to write to, in which it states
    def set_path(self, log_dir):
        """log_dir can be the path to a log directory, or `None` to avoid
        writing to a file (for `dbt debug`).
        """

And since we are not using the new logging system just yet. So I think a good approach, for now, is to disable it.

And by the way, the pandas warning was
warnings.warn(
            "The frame.append method is deprecated "
            "and will be removed from pandas in a future version. "
            "Use pandas.concat instead.",
            FutureWarning,
            stacklevel=find_stack_level(),
        )

Which I am not seeing anywhere in the logs. Maybe we should instead register a different logger that just prints...

And by the way, the pandas warning was
warnings.warn(
            "The frame.append method is deprecated "
            "and will be removed from pandas in a future version. "
            "Use pandas.concat instead.",
            FutureWarning,
            stacklevel=find_stack_level(),
        )

Which I am not seeing anywhere in the logs. Maybe we should instead register a different logger that just prints...

It ended up being that that warning has NOTSET level, so it is naturally not logged. When I tried sending a real WARN level log, it did appear.
We are good to merge, then.


Test triggering buildkite

@nefrathenrici, we have to add the “Launch Buildkite” label to launch buildkite.

Thank you! I was wondering what was going wrong


Intersection of ray and polygon contains point that does not lie on the ray

When finding intersections of a ray and a polygon, the result may contain point that does not lie on the ray. Try the following code:
const polygon = new Polygon(new Point(0, 0), new Point(100, 0), new Point(100, 100), new Point(0, 100), new Point(0, 50));
const ray = new Ray(new Point(50, 50), new Point(100, 50));
console.log(intersections(ray, polygon));

The result of the intersections function contains Point(0, 50) which does not lie on the ray.
I think this happens when there is a polygon vertex that lies on a line coincident with the ray. If Point(0, 50) is removed from the polygon, the result is valid.

Fixed in https://github.com/mathigon/euclid.js/commit/757cdf8ccb25aad7c7a2836f6ed71961302ef930 (released as v1.1.1 on NPM). Thanks!


Model looses modelfile context

What is the issue?
Hi, I have created a custom model using llava and also I created a custom modelfile, however, after several requests or computer restarts the model looses the modelfile configuration, I supposed that modelfile configuration wont change at least if I perform manual changes otherwise it should be working as expected, In the beggining I thought that I should save the session/state but that just works with the interactive console, I'm experiencing the error through the API calls (generate endpoint)
any help or advice is welcome
thanks in advance!
OS
Linux, Docker
GPU
Nvidia
CPU
Intel
Ollama version
0.3.9

What are the contents of your Modelfile?    Can you supply system logs for the times when the API calls fail?


Keys with trailing '.' don't seem to be supported

I am migrating I18n files (written for a different library) which use the original language text as keys, which sometimes contain trailing dots.
This leads to missing translation warnings, probably because the dot character is treated in a special way.
Is this behavior by intention?
If not, is it an issue of react-native-i18n or should I post this bug report to the i18n-js project?
Thanks in advance,
Harald

The same holds true for a trailing '.'
For example: 'Nr.'

@haraldreingruber It's the default behaviour from i18n-js.
If you to change the default separator, just set I18n.defaultSeparator = '/'; (or any character you want)

@zoontek Thanks a lot for the hint. Will try this workaround.

I18n.defaultSeparator = '/';

does it work, for me it is not working.


Support for multiple terminals

It would be great if I could link to multiple terminals on Windows.  For Instance I have one terminal open running Git Bash, I would like to have another terminal that is the R Console. This already works on Linux since you can call both from the regular terminal, but not on Windows since you have to use the R console exe directly.

I'll have to think of an easy way to implement this. Feel free to offer suggestions as to how you would like to be able to launch a terminal with a different shell.

An implementation suggestion would be putting multiple paths to the console separated by a semicolon.. and then being able to right click the Add Terminal icon and choose from the list of consoles based on the executable name minus the extension.
This package is great by the way. I am almost to the point where it has completely replaced my need for other IDEs.

That could work. The first shell would be the default and then all shells would be listed in the right click menu. Right now, right click menus for the package are configured in a file. I will have to see if Atom will let me dynamically change the right click menu like this.


The value of type parameter type is invalid

Hi,
when i try to apply a custom script extension to my scale set i get the error Message: "The value of type parameter type is invalid". Do anyone know this error meesage?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: bf54fb22-6522-87f9-e63f-07ecee909abf
Version Independent ID: 5ec14ed2-693b-e98b-44d3-792d1a44be30
Content: Tutorial - Install applications in a scale set with Azure CLI - Azure Virtual Machine Scale Sets
Content Source: articles/virtual-machine-scale-sets/tutorial-install-apps-cli.md
Service: virtual-machine-scale-sets
GitHub Login: @cynthn
Microsoft Alias: cynthn

You could be seeing this issue because of this open issue on Azure CLI repo: https://github.com/Azure/azure-cli/issues/12594
Please check and let me know.
A PR has been created for CLI issue which should resolve the error you are seeing.

@Karishma-Tiwari-MSFT Looks like thats it, Thank You!

Thanks for sharing the update. We will now close this issue. If there are further questions regarding this matter, please tag me in a comment. I will reopen it and we will gladly continue the discussion.


Github Actions should also check build on Windows and Mac

Right now, we only run tests using ubuntu-latest. The build process should be modified to also test on windows and mac. This is especially important given that we are increasingly using tor, which has different installation instructions across these platforms.

There seem to be some Windows/Mac issued when using selenium/geckodriver in Windows and Mac:
https://github.com/scholarly-python-package/scholarly/issues/211
https://github.com/scholarly-python-package/scholarly/issues/196
and it would be good to configure the test suite to run such tests in Windows/Mac to see how prevalent they are.

With Tor getting deprecated in 1.5, extending the Github Actions to build the package on other OS becomes trivial. So this should be doable with 1.5 release.


Support additional properties

I would like to add some extra properties to a JSON Schema, that are not initially shown in the editor but if the user clicks on something like "show additional properties". One question is how to mark those in the JSON schema. (We should not handle all those properties as additional that are not listed as required.Taking a short look, I did not find anything.

Background: I would like to write a schema that covers all/most of the LRMI properties in schema.org while distinguishing some core properties for quick and simple description vs. some additional information with regard to educational use, audience etc.


Change Default .vscode directory path

Hey,
is it possible to change the path where the .vscode cirectory is created?
Im running Code on a USB-stick and dont want it to save extension on the local computer anytime.
Thank you!

You can use --user-data-dir and --extensions-dir command line arguments, see the doc page.

@yume-chan thank you!
Does Code then still use the extensions installed in the namend Directory of do i have to install them everytime again?

Code will ONLY use extensions in your specified extension folder.

Ok thank you @yume-chan


⚠ Processors has degraded performance

In b693195, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 48 ms

Resolved: Processors performance has improved in e722982.


(WIP) Add space view icons to tabs

What
This PR improves the space view tab UI:

[x] add the space view icon to the tab
[x] Change the color of the Space View title to Global/Color/Grey/175
[x] Change the tab design so that it looks like the design system version (more discrete tabs)
[ ] better selection UI? TBD
[ ] better drag and drop UI? TBD

Closes #2737
Current look:

Checklist

[x] I have read and agree to Contributor Guide and the Code of Conduct
[ ] I've included a screenshot or gif (if applicable)
[ ] I have tested demo.rerun.io (if applicable)

PR Build Summary
Docs preview
Examples preview

Two open questions TBD @martenbjork

Selection style. Currently:

Drag and drop thingy style. Currently:

Slack huddle summary:

The selection state will be added to Figma. The entire tab's background will be blue.
The dragged tab (the thing under the cursor) should match the shape and style of the initial tab, so that it feels like you're dragging the same object.
The rectangle that signifies where the view will be created is a bit too blue and bright. Maybe background color rgba(255,255,255,.1) and border rgba(255,255,255,.2) could work?

The rectangle that signifies where the view will be created is a bit too blue and bright. Maybe background color rgba(255,255,255,.1) and border rgba(255,255,255,.2) could work?

I'll make a quick, separate PR with that change, so that we can look at the result and possibly iterate.


Enable Groups model and groups field in People view in Django admin

This way we can now configure certain staff users to have access to  certain Django admin models only. What is more, we can make this access read-only. I will do this manually in the admin after releasing this  branch.
@m-kuhn @faebebin ideally I would like to have this in the upcoming release.

Task linked: QF-2728 Add staff permission in Django admin so users can read-only certain views

Group filter for People admin? Yeah, why not! But I think it is out of scope for this PR.

Yes agree. LGTM


HTTP response code 404 output Cache-Control header

Demo code:
    public class HomeController : Controller
    {
        [ResponseCache(Duration = 60 * 60)]
        public IActionResult Index()
        {
            return NotFound();
        }
}

https://github.com/aspnet/Mvc/blob/aeab6e295efdc0b1d89c375b62a84fe3b6ba969e/src/Microsoft.AspNetCore.Mvc.Core/Internal/ResponseCacheFilter.cs#L165-L175
The HTTP response code is 404( or 401 ), also output cache header  Cache-Control: public,max-age=3600.

Thank you for filing this issue. We're going to consider this in one of our future releases.

When the database crashes, the index page will always display errors in 60 seconds.
    [CustomExceptionFilter]
    public class HomeController : Controller
    {
        [ResponseCache(Duration = 60)]
        public IActionResult Index()
        {
            SqlConnectionStringBuilder sqlConnectionStringBuilder = new SqlConnectionStringBuilder
            {
                DataSource = "***",
                UserID = "sa",
                Password = "***",
                InitialCatalog = "tempdb"
            };
            using (SqlConnection sqlConnection = new SqlConnection(sqlConnectionStringBuilder.ConnectionString))
            {
                sqlConnection.Open();
                using (SqlCommand sqlCommand = new SqlCommand("select getdate()", sqlConnection))
                {
                    DateTime dateTime = (DateTime)sqlCommand.ExecuteScalar();
                    ViewData["Time"] = dateTime;
                }
            }

            return View();
        }
    }

    public class CustomExceptionFilterAttribute : ExceptionFilterAttribute
    {
        public override void OnException(ExceptionContext context)
        {
            context.Result = new RedirectResult("home/error");
        }
    }

You could call context.HttpContext.Response.Clear() in your exception filter prior to setting the result. That would match what the ExceptionHandlerMiddlware does: https://github.com/aspnet/Diagnostics/blob/dev/src/Microsoft.AspNetCore.Diagnostics/ExceptionHandler/ExceptionHandlerMiddleware.cs#L71. Another suggestion - if you aren't doing particularly interesting in the filter besides redirecting, you could let the ExceptionHandlerMiddleware - app.UseExceptionHandler("/HomeError") - handle this for you.

I insist that the results should be cached only if the response is 200.
https://github.com/aspnet/Mvc/blob/c09575dbd0aa9c27aaa5617335ecb35c3d5706fe/src/Microsoft.AspNetCore.Mvc.Core/Internal/ResponseCacheFilterExecutor.cs#L127-L131
The above code should be changed to the following:
                cacheControlValue = $"{cacheControlValue}max-age={Duration}";

                Task OutputCacheHeader(object state)
                {
                    HttpContext c = (HttpContext)state;
                    if (c.Response.StatusCode == 200)
                        c.Response.Headers[HeaderNames.CacheControl] = cacheControlValue;
                    return Task.CompletedTask;
                }

                context.HttpContext.Response.OnStarting(OutputCacheHeader, context.HttpContext);

I think this is an issue with the exception filter rather than the response cache. There's a reason the exception handler middleware clears the response.
It even has an OnStarting callback to clear caching headers; https://github.com/aspnet/Diagnostics/blob/8dce01f654962580e22e7c96ad4f313574407a40/src/Microsoft.AspNetCore.Diagnostics/ExceptionHandler/ExceptionHandlerMiddleware.cs#L108-L113, so why shouldn't the exception filter do the same?

Ok, I've got it.

Just to be clear; I didn't mean there's anything wrong with your exception filter - I think this is a framework concern. MVC shouldn't allow resources produced with an exception filter to be cached.


Rocket league no longer closes on exit

With the update using the epic login tricks method, rocket league no longer closes cleanly on exit.

Thanks for reporting the issue, I'll try to reproduce it locally. In the meantime you can switch back to logintrick = False which should be working again on the latest version


Better tutorialization in Adventure Mode

When starting Adventure Mode, the player should be given a brief rundown (1-2 screens maximum) of how the game works:

You have six levels
The better you do on levels, the further you move
Try to reach and finish the last level before the day ends
You only have one chance on each level

The player should be able to re-enable this explanation with some sort of "Re-enable Tutorials" button in the Settings menu.

Adventure mode now includes a little tutorial. This tutorial can be re-enabled with a "Re-enable Tips" button in the Settings menu.


Fixed an issue with the leftTensor parameter leading to a bug for scalars

Fix for #70
The issue was that the operation is performed in place on the first operand, but the output is passed as second operand.
The solution was to always use the output as first operand, filling it with the scalar if needed.
I fear that the problem might still exist with iterators.

Looking at this now

Any new progress on this? Thanks.

My bad. SubScalar was broken and I was halfway fixing it and then life got in the way

Will be fixed tomorrow

There is some infelicities when UseUnsafe is used.... looking into it and fixing it.
Here's a good example:
func TestIssue72(t *testing.T) {
	a := New(FromScalar(3.14))
	b := 0.0

	bsa, err := Sub(b, a)
	if err != nil {
		t.Fatal(err)
	}
	t.Logf("%v", bsa)
	ret, err := Sub(b, bsa, UseUnsafe())
	if err != nil {
		t.Fatal(err)
	}
	t.Logf("%v %v", ret, bsa)
}

Closing this, and using #73 instead.


[Bug] When drawing an arrow from inside of the shape it goes automatically in the back

If you try to draw an arrow from inside of the shape it goes in the back and we need to move it for it to reappear on top

Currently, you can hold the control/command key while you start drawing the arrow so that it doesn't 'connect' to the rectangle. Does that achieve what you want?
It's not very clear that you can do this though, so perhaps we could improve that somehow!

Great! I'll keep this issue here anyway, because it could certainly be clearer


Rename Maven goal to 'check-test-names`

The name check-tests-names is grammatically incorrect: https://english.stackexchange.com/questions/227378/usage-of-double-plural. The correct phrase would be test names instead of tests names.

@yegor256 Is it still relevant?

@volodya-lombrozo now it's all good


SQLModel integration

Hello, Do you have any plane to integrate tiangolo orm SQLModel . If yes have you any ETA.
THanks for the great work.

Hi @hacen-ai,
Yup, I am planning to do it in the next release.
My ETA - one week.

Hi @hacen-ai,
Version 0.9.0 has been released.

You are doing great job man.
Thank you for your work


[FLINK-24248][docs]update Gradle dependency

What is the purpose of the change
FLINK-24248
Brief changelog
Add
compile "org.apache.flink:flink-clients_${scalaBinaryVersion}:${flinkVersion}"

to the Gradle section of the Project Configuration page
Verifying this change
This change is a trivial rework / code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes /  no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes /  no)
The serializers: (yes /  no / don't know)
The runtime per-record code paths (performance sensitive): (yes /  no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (yes /  no / don't know)
The S3 file system connector: (yes /  no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

Thx for this PR and the review ... merging.


[$250] mWeb- Xero - The newly selected exporter is changed after few seconds

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.1.0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/4663222
Issue reported by: Applause - Internal Team
Action Performed:

Go to https://staging.new.expensify.com/home
Tap profile icon -- workspaces -- workspace-- accounting
Tap export
Tap preferred exporter
Select the unchecked workspace admin

Expected Result:
The newly selected exporter must not be changed after few seconds
Actual Result:
The newly selected exporter is changed after few seconds
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/3dca792e-0b12-47fd-9e54-f736f3bb77ca
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~012a35684251cade3f
Upwork Job ID:<PHONE_NUMBER>826946733
Last Price Increase: 2024-07-09

Issue OwnerCurrent Issue Owner: @eVoloshchak

@miljakljajic  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

This is happening on desktop web as well
https://github.com/Expensify/App/assets/20136219/39f21c9c-df3c-4421-94ba-c14e483010b4

I can't change the exporter. It reverted back to the previous after a few seconds
https://github.com/Expensify/App/assets/12546908/8289101a-b884-460e-8eab-df0a39e52aa0

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~0147ffcb350b578b95

I believe this is a BE issue, because after changing the preferred exporter the console logs show an API request being made with the appropriate arguments, and a successful response from the server. However a few seconds after receiving the successful response, Pusher sends multiple events including an update to the preferred exporter, but the update Pusher delivers still has the old account set as the preferred exporter.
https://github.com/Expensify/App/assets/100219291/7c6a90fa-ec3e-4f49-8965-5a706acedab5

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~01929686b8d6175591

This is happening on desktop web as well. (For some reason, the playback is not working correctly for me. If you are seeing the same problem download the video to watch the evidence)
web.evidence.s.mp4

I also think this is a backend issue. All options in the Export menu present the same behavior except for Purchase bill status, which gets reverted only when another option is changed.

I can switch this to internal

Just a reminder to have Internal issues put in Hot picks to be surfaced for volunteers. Retested this one and it's still reproducible.
https://github.com/user-attachments/assets/2328aa55-f425-4e77-8ae2-59c1e50c763c
CC: @aldo-expensify @lakchote @NikkiWines @francoisl for any thoughts!

@NikkiWines were you by chance picking this one up? I wasn't sure but we're going to be asking people to pick the hot picks up so I wasn't sure.

Ah no, sorry - I added the reviewing label here on accident, but I'm not working on this issue currently and  don't have the bandwidth to pick it up. The hotpick label should still apply.

Also fixed with: https://github.com/Expensify/Auth/pull/12130

@miljakljajic mind keeping an eye on that Auth PR and retesting when it's deployed?

Issue not reproducible during KI retests. (First week)

Yes


Fix second unnecessary 'publish' in instructions to publish local code to function app in Azure

Changes func azure functionapp publish publish to func azure functionapp publish

@ggailey777
Can you review the proposed changes?
Important: When the changes are ready for publication, adding a #sign-off comment is the best way to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

@pierceboggan great catch! And thanks so much for taking time to fix this doc bug! #sign-off


x/net/http2: flaky TestTransportResPattern_c0h1d0t0, TestTransportResPattern_c1h2d0t0

See https://build.golang.org/log/6c16a5f66e28811897fa9ff2818873f56a9a128c and https://build.golang.org/log/5ea1f443a67a371b9acdebeee89cc802345ce5fb.
--- FAIL: TestTransportResPattern_c0h1d1t0 (0.00s)
	transport_test.go:664: client: RoundTrip: http2: stream closed
FAIL
FAIL	golang.org/x/net/http2	7.585s

Also https://build.golang.org/log/11add19306c4c449d8d05e6b3fb05129b0407ed6
--- FAIL: TestTransportResPattern_c1h2d0t0 (0.00s)
	transport_test.go:664: client: RoundTrip: http2: stream closed
FAIL
FAIL	golang.org/x/net/http2	33.617s

This is just a bug in the x/net/http2 test. func testTransportResPattern needs to wait to response until the DATA frame arrives when withData is true.
Removing the Go1.7Maybe label.

Actually, it looks like the http2.Transport doesn't handle half-closed situations well.
The server should be able to keep reading the client's request body even after having replied. This is much sketchier in http1, but http2 is clear that it should work.
Somewhat low priority to fix properly, but we can at least fix the failing tests in the meantime.


bpfman: init at 0.5.4

Wanted to mess around with eBPF on NixOS and found that this project was missing from nixpkgs. The installation of the Systemd units is based on the one from borgmatic.
Note: bpfman can apparently also be used for Kubernetes. I have only tested the Linux side of it, which is what I am interested in.
Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 369098

x86_64-linux

:white_check_mark: 1 test built:

nixosTests.bpfman


Update MudDataGrid.razor

The change adds a conditional check to skip rendering columns that are marked as hidden. This ensures that hidden in the edit form

Description

The change adds a conditional check to skip rendering columns that are marked as hidden. This ensures that hidden in the edit form

How Has This Been Tested?

Type of Changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation (fix or improvement to the website or code docs)

Checklist

[ ] The PR is submitted to the correct branch (dev).
[x] My code follows the code style of this project.
[ ] I've added relevant tests.

This ensures that hidden in the edit form

I'm not sure about this change.
To me personally if they are hidden means I just don't need them at this moment, but if they miss from the form it could be confusing for some. This can be a breaking visual change for users who do not expect such behavior. @henon what do you think?
Also this change is missing tests which are necessary for this kind of change.

This ensures that hidden in the edit form

I'm not sure about this change. To me personally if they are hidden means I just don't need them at this moment, but if they miss from the form it could be confusing for some. This can be a breaking visual change for users who do not expect such behavior. @henon what do you think? Also this change is missing tests which are necessary for this kind of change.

When you edit in cell mode you can't edit the hidden columns, and can't you see the hidden columns. Why should form editing be different from cell editing?

This ensures that hidden in the edit form

I'm not sure about this change. To me personally if they are hidden means I just don't need them at this moment, but if they miss from the form it could be confusing for some. This can be a breaking visual change for users who do not expect such behavior. @henon what do you think? Also this change is missing tests which are necessary for this kind of change.

@rachavz Can you add screenshots to the description so we can get a better picture what this is about?


HARP-13842 - Adding gitlab-CI related file

Signed-off-by: Aluni<EMAIL_ADDRESS>Thank you for contributing to harp.gl!
Before requesting a pull request, please remember to check the following documents:

contribution guidelines
coding style

If you are adding new functionality we would highly appreciate if you can describe what is the capability you are adding and even better if you can add some examples. Please also remember to add tests for it.
CI Check
Our bots will check whether your PR can be directly integrated into the mainline. We have some internal integration tests running on the background, our bots will inform you of the next steps and someone from our team will take a look and help if needed!
And please do not forget to sign-off your commit! You can read more about DCO here. But, in short, you just need to use git commit -s or append --signoff when you are committing to the repo.
Happy contributing!

@gairik , please add the jira ticket number to the commit message.

@gairik , please add the jira ticket number to the commit message.

@gairik , please add the jira ticket number to the commit message.

I have added the jira ticket number to the PR title.

@gairik , please add the jira ticket number to the commit message.

I have added the jira ticket number to the PR title.

@gairik , please add the jira ticket number to the commit message.

I have added the jira ticket number to the PR title.

That is unfortunately not enough, because the PR disappears, and the commit stays, which makes it difficult to track later.
You can however change the commit message add it when you "Squash and merge", so please do it then.

@gairik , please add the jira ticket number to the commit message.

I have added the jira ticket number to the PR title.

That is unfortunately not enough, because the PR disappears, and the commit stays, which makes it difficult to track later.
You can however change the commit message add it when you "Squash and merge", so please do it then.

@gairik , please add the jira ticket number to the commit message.

I have added the jira ticket number to the PR title.

That is unfortunately not enough, because the PR disappears, and the commit stays, which makes it difficult to track later.
You can however change the commit message add it when you "Squash and merge", so please do it then.

I understand. Will do it.

@gairik , please add the jira ticket number to the commit message.

I have added the jira ticket number to the PR title.

That is unfortunately not enough, because the PR disappears, and the commit stays, which makes it difficult to track later.
You can however change the commit message add it when you "Squash and merge", so please do it then.

I understand. Will do it.


Unable to generate report using release archive file

I have downloaded latest archive file for Linux and was unable to generate report using the binary file go-test-parser.
Run command:
go-test-parser logs.log -o report
Got output:
Error: stat /workdir/go-test-parser/go-test-parser/cmd/templates/report.tmpl.html: no such file or directory
Usage:
  ./go-test-parser <go test -json -v output> [flags]
...

Seems like that the unpacked binary requires an html template file anyway, though I am not intended to run command go get github.com/tsovak/go-test-parser/... and would like to use just a downloaded binary file.
Is it possible to solve this issue? Would be very nice to have an option to generate test report using single binary file.
Thank you.

fixed


web: Initial code

Instead of a hardcoded "WRITE 'hello'." can we get the initial code from another source?
https://github.com/abaplint/transpiler/blob/main/web/transpiler/src/index.ts#L28
Either could work:

'.abap' file (not packed so it can be edited in the web repo)
function in a '.js' to return the code (not packed so it can be edited in the web repo)
URL

Just adds some flexibility on how we could start it up (in my fork ;-) ).

hmm, well, I think feel free to change the hardcoded value to whatever
but I guess you need something more/different?

yes, something longer like https://github.com/hdegroot/zwordle/blob/9cd0d005d7de5dacccd242e4d68268eee7ab4573/transpiler/zwordle.abap
eventually, I could hide the editor controls and have an ABAP app on the web

https://wordle.marcbernardtools.com/
https://github.com/Marc-Bernard-Tools/Wordle-Assistant
https://twitter.com/marcfbe/status/1579932361302548480


Create humber.txt

This is the second request to add the humber.ca domain.  The first one is not working.  JetBrains download site says humber.ca is not an authorized domain.

sorry for the delay - i see the file's already added and working http://prntscr.com/6bro3l - please try to reapply. i'm closing the request


[WIP] queen-attack: use Algebraic Notation for coordinates?

(this PR is not intended to be merged, but start a conversation; additional changes edits to the README would be required to make this edit complete)
Typically, chess coordinates are expressed in AN.  Wouldn't it add some flavor to this exercise to use that notation?
Doing so...

ups the fun factor 🎉  by increasing the depth of the exercise by pulling concepts from the domain of the problem space;
makes the exercise slightly more challenging 💪  ;
with numeric tuples, it's really easy to slip into primitive obsession (passing around arrays of integers, for example) — by using AN, it's easier to make the "argument" to address that code smell 🐽 .

I think that queen-attack used an unfortunate indexing system, as I already pointed out in https://github.com/exercism/x-common/issues/313#issuecomment-236798084, so I think that it deserves to be updated.
At least, we need to change the indexing system to be (1,1) based, right-up oriented, to match chess, but I'm still uncertain about if using chess notation in a string would be putting to much in a single exercise.
If all the exercises involve parsing, we dilute what makes each one of them interesting, so I'm usually against mixing too many things in the same problem. I believe that the problems should be short and focused, this way they don't get tiring and boring.
Maybe it is OK in this case, because it is related to chess anyway. I don't know...
Taking the opportunity to discuss another thing in the test suite, the create section has an interesting description:

Test creation of Queens with valid and invalid positions

It seems that this was written with OO in mind. What is being created :question:

I am in favour of using chess co-ordinates.
Reasoning:

This is phrased as a chess problem.
Working out if the queen is on the board is irrelevant to the problem.
Which way the board/co-ordinates are oriented is irrelevant to the problem.
We could add a different problem 'chess-co-ordinates' that is a simple one to handle
algebraic notation mappings that the student will have encountered before reaching this problem.

Additional proposal:

Remove co-ordinate validation checks from the test cases.

@rbasso said:

Taking the opportunity to discuss another thing in the test suite, the create section has an interesting description:

Test creation of Queens with valid and invalid positions

It seems that this was written with OOP in mind. What is being created ❓

... and @Insti replied:

Working out if the queen is on the board is irrelevant to the problem.

👍

I would like us to think about the complexity we're adding to the problem by making this change.

Instead of checking numbers students will now parsing & validating a string.
Instead of math boundaries for ranks students are now checking presence of a char.
Instead of math for diagonal checking, students are (probably) converting chars to integers and doing math

Which, fine, if there's some benefit to it. But I don't see what the benefit is beyond "It makes it more chess like." It certainly gives the students more things to do, but I don't think it makes the problem any better.
I don't think verisimilitude should be our goal in these problems. If making the problem more realistic makes the learning experience better, then I'm all for it. But I don't see it here.

I don't think verisimilitude should be our goal in these problems. If making the problem more realistic makes the learning experience better, then I'm all for it. But I don't see it here.

Yeah, well put, @IanWhitney... we don't want difficulty for difficulty's sake; that's just annoying.  Having had a chance to go away and come back to the idea, I see how the added requirement would likely just layer on more work, not change the solution fundamentally.  That is, practitioners would probably just have to do the work to interpret the AN into integer tuples and then everything would remain the same.
Thanks for the discussion!


Your requirements could not be resolved to an installable set of packages.

What did you do?
On installing this module with my lumen5.7 installation i got a error
./composer.phar require nordsoftware/lumen-oauth2
and you are stating that you support 5.3+ so 5.7 shouldn't be a problem right?
"require": {
"php": ">=7.1.3",
"laravel/lumen-framework": "5.7.*",
"vlucas/phpdotenv": "~2.2",
"zircote/swagger-php": "^3.0"
},

Can you post the full error message?

this is a copy of the console
https://pastebin.com/ret5SUMK

The problem is that we depend on a fairly old version of league-oauth2-server (4.x). If you're starting a new project I think it's better if you try to integrate the latest version of league-oauth2-server directly instead of using this library, we don't have the manpower to maintain and update it at the moment.


NMMN

Description

Steps to reproduce

Expected behavior

Environment

Swift compiler version info
Xcode version info
Deployment target:

autopkgtest.kali.org/


Renaming Package names to io.opentelemetry.sqlcommenter

This PR in general renames the package name from com.google.cloud.sqlcommenter to io.opentelemetry.sqlcommenter.
We have removed the uploadArchive build rule from gradle file and will incorporate the nexusPublish rule used in opentelemetry-java* in the next PR.

Verified with unit tests that all works fine.

Thanks @weyert


Update expressions.js

on Safari special Japanese characters become garbled

Hi!
As can be seen in the comment at the top of the file, these files are generated.
If you change them, they’ll just be changed again.
To fix this, you’ll have to change build.js: https://github.com/wooorm/franc/blob/main/script/build.js.
The file is also only in one package, but we ship several packages.
Closing as I can’t currently accept it, but if you find the time, I’d appreciate a fix in build.js!

sure, take a look @ https://github.com/wooorm/franc/pull/115


Wrapper around help text

This adds the wrapped help text printer to gruntwork-cli and a function to create a new cli.App that takes advantage of it.
Sample output:
Main help
Original
NAME:
   houston - A CLI tool for interacting with Gruntwork Houston that you can use to authenticate to AWS on the CLI and to SSH to your EC2 Instances.

USAGE:
   houston [global options] command [command options] [arguments...]

VERSION:
   snapshot

COMMANDS:
     exec       Execute a command with temporary AWS credentials obtained by logging into Gruntwork Houston
     ssh        Connect to an EC2 instance via SSH with your public key.
     configure  Configure houston CLI options.
     profiles   Show a status of all the defined profiles.
     start      Start the background HTTP server process so it can cache your AWS credentials. Note: the exec command starts the HTTP server process automatically.
     stop       Stop the background HTTP server process.
     status     Show the status of the background HTTP server process.
     help, h    Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h     show help
   --version, -v  print the version

New:
Usage: houston [--help] [--version] command [options] [args]

A CLI tool for interacting with Gruntwork Houston that you can use to
authenticate to AWS on the CLI and to SSH to your EC2 Instances.

Commands:

   exec       Execute a command with temporary AWS credentials obtained by
              logging into Gruntwork Houston
   ssh        Connect to an EC2 instance via SSH with your public key.
   configure  Configure houston CLI options.
   profiles   Show a status of all the defined profiles.
   start      Start the background HTTP server process so it can cache your
              AWS credentials. Note: the exec command starts the HTTP server
              process automatically.
   stop       Stop the background HTTP server process.
   status     Show the status of the background HTTP server process.
   help, h    Shows a list of commands or help for one command

Command help
Original:
NAME:
   houston exec - Execute a command with temporary AWS credentials obtained by logging into Gruntwork Houston

USAGE:
   houston exec [OPTIONS] <profile> -- <command>

DESCRIPTION:
   The exec command makes it easier to use CLI tools that need AWS credentials, such as aws, terraform, and packer. Here's how it works:

   1. The first time you run this command for a <profile>, it will open your web browser and have you login to your Identity Provider (i.e., Google, ADFS, Okta).
   2. After login, the Identity Provider will redirect you to the Gruntwork Houston web console, where you will pick the AWS IAM Role you want to use.
   3. Gruntwork Houston will fetch temporary AWS credentials for this IAM Role and POST them back to houston CLI running on your computer.
   4. The houston CLI will set those credentials as the appropriate environment variables and execute <command>.
   5. The houston CLI will cache those credentials in memory, so all subsequent commands will execute without going through the login flow (until those credentials expire).

EXAMPLES:

   houston exec dev -- aws s3 ls
   houston exec prod -- terraform apply
   houston exec stage -- packer build server.json

OPTIONS:
   --config value, -c value  The configuration file for houston (default: "/Users/yoriy/.houston/houston.yml")
   --port value              The TCP port the http server is running on (default: 41170)

New:
Usage: houston exec [options] <profile> -- <command>

The exec command makes it easier to use CLI tools that need AWS credentials,
such as aws, terraform, and packer. Here's how it works:

  1. The first time you run this command for a <profile>, it will open your web
  browser and have you login to your Identity Provider (i.e., Google, ADFS,
  Okta).
  2. After login, the Identity Provider will redirect you to the Gruntwork
  Houston web console, where you will pick the AWS IAM Role you want to use.
  3. Gruntwork Houston will fetch temporary AWS credentials for this IAM Role
  and POST them back to houston CLI running on your computer.
  4. The houston CLI will set those credentials as the appropriate environment
  variables and execute <command>.
  5. The houston CLI will cache those credentials in memory, so all subsequent
  commands will execute without going through the login flow (until those
  credentials expire).

Examples:

   houston exec dev -- aws s3 ls
   houston exec prod -- terraform apply
   houston exec stage -- packer build server.json

Options:

   --config value, -c value  The configuration file for houston (default:
                             "/Users/yoriy/.houston/houston.yml")
   --port value              The TCP port the http server is running on (default:
                             41170)

UPDATE:

Comments describing difference of these templates vs the default ones
Add a text that came out of urfave/cli into unit test
No more return type declared variables
TabAwareWrapText => IndentAwareWrapText (the latter is a more accurate name)
Comment with example of what IndentAwareWrapText is doing
Make linewidth a non const so that it can be overridden.

TODO:

[ ] Unit test for the actual printer checking for

[ ] Using the new templates as opposed to the default
[ ] Overriding linewidth
[ ] Real world example

Ok added some unit tests with real world examples for the overall printers. @brikis98 Ready for final review before merge!

Ok merging and doing a release! Thanks!


chore(master): release 3.10.0

:robot: I have created a release beep boop
3.10.0 (2024-11-04)
Features

annotation: allow ignore '=' in custom annotation (475c3e0)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v3.10.0
:sunflower:


Fargate doc

What does this PR do?

Adds clarification information to the docs for global tagging with Fargate.

Motivation
Multiple support requests
Additional Notes
N/A
Review checklist (to be filled by reviewers)

[ ] PR title must be written as a CHANGELOG entry (see why)
[ ] Files changes must correspond to the primary purpose of the PR as described in the title (small unrelated changes should have their own PR)
[ ] PR must have changelog/ and integration/ labels attached
[ ] Feature or bugfix must have tests
[ ] Git history must be clean
[ ] If PR adds a configuration option, it must be added to the configuration file.

Should we link to the Autodiscovery tagging section at the end: https://docs.datadoghq.com/agent/autodiscovery/tag/ ?

Should we link to the Autodiscovery tagging section at the end: https://docs.datadoghq.com/agent/autodiscovery/tag/ ?

Probably not since it's a different format


Symfony Materializecss select

Using materialize in symfony:
in my project materialize select only works if I include it like this: https://cdnjs.cloudflare.com/…/0.100.2/js/materialize.min.js with jquery as well https://ajax.googleapis.com /ajax/libs/jquery/3.3.1/jquery.min.js. But if I include it this way it does not work:

and

please any ideia to fix it.

On old versions, jQuery must be imported before materialize for it to work. Although I have no experience with Symfony and this would be a better question for Stack Overflow, I would guess that the asset pipeline through which you are including jQuery is causing the reordering of imports.


Add Rule meta data, name, description, etc???

We need to decide if we want to add support to rule meta data and if we think it would actually be valuable on not.
The initial thinking is that it would act as in code documentation and potentially in the future if some external system was involved it would be able to be passed to said external system.

This was merged in so closing this issue.


Serial output not working

When using this code:
Debug.setSerialEnabled(true);
Debug.begin(esp_hostname);
Debug.setResetCmdEnabled(true);
Debug.setCallBackProjectCmds(&processCmdRemoteDebug);
DEBUG("\n");
DEBUG("ESP8266 started...\n");
Serial.println("\n\nHello\n");
Debug.printf("Hello2\n");
The ESP8266 started (and everyting with the debug macro after this code) is not printed when using the DEBUG macro.
The Hello and Hello2 are printed.
What's wrong?

Bug is caused by _PasswordOk on line 445

Hi @jeroenst
Yes, It is correct.
I made a version 1.5.3, only use this if for passwords

I see your fix. But I think it would be better that serial debugging always works if enabled, also when a password is used on the telnet interface (which is great actually!).

Also it would be better to set password through a function so it can be changed while running the program on the esp imo

Tested your fix, it works when no password is defined. When a password is defined, the RemoteDebug lib has building errors.

@jeroenst , sorry by delay.
Please send the error

/home/jeroen/Arduino/libraries/RemoteDebug/RemoteDebug.cpp: In member function 'boolean RemoteDebug::isActive(uint8_t)':
/home/jeroen/Arduino/libraries/RemoteDebug/RemoteDebug.cpp:454:17: error: '_PasswordOk' was not declared in this scope
boolean ret = (_PasswordOk &&
^
/home/jeroen/Arduino/libraries/RemoteDebug/RemoteDebug.cpp: In member function 'void RemoteDebug::showHelp()':
/home/jeroen/Arduino/libraries/RemoteDebug/RemoteDebug.cpp:744:15: error: '_PasswordAttempt' was not declared in this scope
help.concat(_PasswordAttempt);
^
/home/jeroen/Arduino/libraries/RemoteDebug/RemoteDebug.cpp: In member function 'void RemoteDebug::processCommand()':
/home/jeroen/Arduino/libraries/RemoteDebug/RemoteDebug.cpp:1139:44: error: a function-definition is not allowed here before '{' token
void RemoteDebug::setFilter(String filter) {
^
/home/jeroen/Arduino/libraries/RemoteDebug/RemoteDebug.cpp:1150:33: error: a function-definition is not allowed here before '{' token
void RemoteDebug::setNoFilter() {
^
/home/jeroen/Arduino/libraries/RemoteDebug/RemoteDebug.cpp:1161:77: error: a function-definition is not allowed here before '{' token
String RemoteDebug::formatNumber(uint32_t value, uint8_t size, char insert) {
^
/home/jeroen/Arduino/libraries/RemoteDebug/RemoteDebug.cpp:1199:1: error: expected '}' at end of input
}
^
exit status 1
Error compiling for board Generic ESP8285 Module.

_passwordOk in .h is _PasswordOk in .cpp
_passwordAttempt in .h is _PasswordAttempt in .cpp
and there is a } missing on line 891 of RemoteDebug.cpp

Works with version 3.0.5


Add gulp task to automatically npm link after build

Does this mean we can just update npm and it'll fetch the newest one from Github?

no this just runs npm link after building which symlinks the built binary to the global one

Does this mean that we will be running npm link multiple times on each gulp build?


when will a new release be tagged?

I see that one can now use JMSSerializer 2.x. Do you plan on adding more changes for the next version or can you tag it now?

No no, I guess I could release a new version today.

Just released 1.3.0.


Error Due to Excessive TypeScript Errors and PR Body Length Exceeding Limit

My project contains numerous TypeScript mistakes, and it fails because the PR body length exceeds the allowable limit.
2023-05-25T15:40:15.8915435Z ##[group]Creating comment
2023-05-25T15:40:15.8915658Z comment body obtained
2023-05-25T15:40:15.8916061Z Error creating comment: Validation Failed: {"resource":"IssueComment","code":"unprocessable","field":"data","message":"Body is too long (maximum is 65536 characters)"}
2023-05-25T15:40:15.8916826Z Submitting a PR review comment instead...
2023-05-25T15:40:15.8917181Z Error creating PR review Unprocessable Entity: "Body is too long (maximum is 65536 characters)"
2023-05-25T15:40:15.8917482Z comment created

Any suggestions?

Oh indeed.
We could simply limit the ts error description to 60K in a first fix

Great work @ChrisWiles!
Is there any way to test related PR?

I have a similar issue where the errors in my base branch seem to exhaust the Annotation limit before annotations can be created for errors in modified/added/deleted files. The comparison of errors to the base branch is less useful and I wanted to focus on only errors in files related to the PR. If there was an option to skip the base branch comparison then i think it would solve both issues


Adding pending-upstream-fix advisories for GHSA-9mcr-873m-xcxp and GHSA-qg5g-gv98-5ffh

Adding pending-upstream-fix advisories for GHSA-9mcr-873m-xcxp and GHSA-qg5g-gv98-5ffh.
zed has multiple versions of the affected dependency defined, mapped to different components depending on that version stream. See note and link in advisory description.
CLOSE LINKED PR's when this is merged (see below)

Closing for now — my hunch is we still have more options for remediating, but we'll come back to this later per our prioritization process


Update README.md

Add Step 10 of Installation description

Thanks, I also just pushed a commit exlaining the different config options.


Add basic but flexible query language

An original target fake query which has various features was
((jim AND NOT haxby AND "important\" paper") OR ds_id:~"^000[3-9]..$" OR url:"example.com") AND metadata:non AND metadata[ex1,ex2]:"specific data" AND metadata[extractor2]:data

and this PR implements most of them -- check the modal window description of supported syntax:

quite flexible implementation so we could add/replace fields we are searching on
can search within specified metadata extractors

TODO (not here): search within JSON records is not part of this PR -- but likely would just allow to pass JSONPath for the most flexible functionality
TODO (not here): expose via API call. #269

has help on syntax supporting boolean operations etc. Closes #264
replacing original /search

I saw that coverage reported that not_expr is not covered, started to add the tests and ran into the failing test cases:
        ("NOT handbook", [1, 2, 4]),
        ("datalad AND (NOT handbook)", [2]),

which I cannot figure out why our NOT not working as it should -- just returns empty lists :-/
it happens if we do not specify which db entry to operate on, so we fall into that or_ across all known fields in _get_str_search https://github.com/datalad/datalad-registry/pull/308/files#diff-11394d8200a55a0ad0089b9d62dabe6194d7a14e711147c2b8d63a795b5aa2dbR223
    def _get_str_search(self, arg: Token) -> ColumnElement[bool]:
        value = self._get_str_value(arg)
        return or_(*[f(value) for f in known_fields.values()])

any ideas would be appreciated or otherwise might be worth disabling NOT for such cases or altogether for now.

    def _get_str_search(self, arg: Token) -> ColumnElement[bool]:
        value = self._get_str_value(arg)
        return or_(*[f(value) for f in known_fields.values()])

Based on the intent of what you want to search, it seems that the the lo

interesting... toying around with dandi datasets, and NOT:
it points to two dandisets where dandi metadata is loaded, could potentially have that AccessRequirements but does not! And if I select it to be limited metadata: field, then I get also all the private ones for which I do not even have any metadata loaded:

For some reason, I can't access your posted images.

hm, that is an odd failure
FAILED datalad_registry/tests/test_search.py::test_search_complex_smoke[handbook url:?datalad-expected17] - assert [] == [3]

  Right contains one more item: 3

  Full diff:
  + []
  - [
  -     3,
  - ]

let me rerun...

reran didn't "fix" it so there was a side effect from the fix and apparently tests didn't actually ran on that PR against this branch

dang -- it is for the test I added (late in the evening and likely while in the browser) in 95770a99f2d4d24309171d9bc57b7836bcecc7bf -- so apparently not correctly handling the comparison operation symbol :? -- will check now

"interesting"! Overall -- it boils down to lalr(1) not parsing it correctly

but switching to earley which parses that correctly (initial patch here included -- requires doing transformer "manually" for some reason)

diff --git a/datalad_registry/search.py b/datalad_registry/search.py
index b1e7ea4..5aa730e 100644
--- a/datalad_registry/search.py
+++ b/datalad_registry/search.py
@@ -242,7 +242,20 @@ class SearchQueryTransformer(Transformer):
         )

+def parse_query(query: str) -> ColumnElement[bool]:
+    """Parse the search query and return the SQLAlchemy expression.
+
+    A workaround necessary for using "earley" parser.
+    We have to use "earley" parser to support ':op' comparison operations.
+    """
+    # Parse the input to get a tree
+    parse_tree = parser.parse(query)
+    return transformer.transform(parse_tree)
+
+
 # Assuming `grammar` is your grammar definition string
-parser = Lark(grammar, parser="lalr", transformer=SearchQueryTransformer())
+parser = Lark(grammar, parser="earley")
+transformer = SearchQueryTransformer()
+
 # Example:
-# r = session.query(RepoUrl).filter(parser.parse("url:example OR ds_id:handbook"))
+# r = session.query(RepoUrl).filter(parser_query("url:example OR ds_id:handbook"))
diff --git a/datalad_registry/tests/test_search.py b/datalad_registry/tests/test_search.py
index 8c75194..eee11d9 100644
--- a/datalad_registry/tests/test_search.py
+++ b/datalad_registry/tests/test_search.py
@@ -2,7 +2,7 @@ import pytest

 from datalad_registry.models import RepoUrl, URLMetadata, db

-from ..search import parser
+from ..search import parse_query

 @pytest.mark.parametrize(
@@ -15,7 +15,7 @@ from ..search import parser
 )
 def test_search_errors(query):
     with pytest.raises(ValueError):
-        parser.parse(query)
+        parse_query(query)

 @pytest.fixture
@@ -112,7 +112,7 @@ def populate_with_url_metadata_for_search(
     ],
 )
 def test_search_complex_smoke(flask_app, query, expected):
-    r = parser.parse(query)
+    r = parse_query(query)
     # print(f"QUERY {query}: {r}")
     with flask_app.app_context():
         result = db.session.query(RepoUrl).filter(r)

results in other tests failures (you got to love testing!):
FAILED datalad_registry/tests/test_search.py::test_search_errors[unknown_field:example] - lark.exceptions.VisitError: Error trying to process rule "unknown_field_error":
FAILED datalad_registry/tests/test_search.py::test_search_complex_smoke[datalad AND (NOT url:handbook)-expected11] - assert [] == [2]
FAILED datalad_registry/tests/test_search.py::test_search_complex_smoke[datalad AND (NOT handbook)-expected14] - assert [] == [2]
FAILED datalad_registry/tests/test_search.py::test_search_complex_smoke[(url:handbook OR metadata[metalad_core]:meta1value) AND ds_id:844c-expected22] - assert [3] == [2, 3]
FAILED datalad_registry/tests/test_search.py::test_search_complex_smoke[(url:handbook OR metadata[metalad_core]:meta3value) AND ds_id:844C-expected23] - assert [3] == [1, 3]
FAILED datalad_registry/tests/test_search.py::test_search_complex_smoke[(url:handbook OR metadata[metalad_core]:value) AND ds_id:844c-expected24] - assert [3] == [1, 2, 3]

so will need to look into it more. Most likely just disabling having comparison operators for now, and sticking to lalr(1) for now.

ok, everything fixed and now I added  a helper to copy example queries to clipboard. Could be improved but already useful/usable so let's proceed (review + merge) or I would keep tuning it...

If you are going to refer to this "search" scheme as "query" in the web API, I think it would be more consistent if we replace "search" in the naming and references related to this scheme. We can rename search.py and test_search.py into query.py and test_search.py.

this PR indeed possibly adds some confusion here...  insofar we had actually a

filter - as an operation (inspired that it is DB's interface .filter) on subselecting which URLs to show.  That remains the case in the web UI. We are saying to

query is just parametrization for the operation
search - that is a new and somewhat odd addition here as expressed in search.py and test_search.py.  I guess I could have renamed them into filter.py and test_filter.py if we were to stick with filter. But as I hope we would extend to search for specific files (assets in DANDI), I am leaning to actually generalize DB-specific filter into search here. Pushed that unification to "search" in the web UI/parameters (query)

I think we need more space between the search query row and the URL table. Depending on content of the DB and the size of the browser window, a user can encounter a situation that a tooltip text can obstruct the view and function of buttons.

I am leaning to actually generalize DB-specific filter into search here. Pushed that unification to "search" in the web UI/parameters (query)

If this is the end goal for this feature, can we route this feature to /api/v2/dataset-urls/search when we implement the API endpoint for this feature instead of /api/v2/dataset-urls/query which you suggested in our previous zoom session?

a user can encounter a situation that a tooltip text can obstruct the view and function of buttons.

yeah, I ran into it often too. Added 1em margin for spaceing it out now.

I am leaning to actually generalize DB-specific filter into search here. Pushed that unification to "search" in the web UI/parameters (query)

If this is the end goal for this feature, can we route this feature to /api/v2/dataset-urls/search when we implement the API endpoint for this feature instead of /api/v2/dataset-urls/query which you suggested in our previous zoom session?

yes, we can name it /search as it is even present in #269.

@candleindark I "merged" your PR. all good for a merge/deploy? ;)


Harden hashing.

Currently, the hashing does not take the type as input. This opens the possibility that two views whose hashing takes the same input and so have the same hash. This small window of vulnerability should be addressed.

Let's be a bit more precise on what we intend to improve here.
The root View of an application (or more precisely of a bytecode-id) is known and has a fixed type (at least for those written in the Rust using our SDK). For instance, it could be struct MyAppStateView { value: RegisterView<u32> }.

Do we want to make sure that the hash is always different of the app is modified into struct MyAppStateView { value: RegisterView<(u16, u16)> } ?

Do we want to make sure that the hash is always different of the app is modified into `struct MyAppStateView { value: SomeOtherKindOfView<...> } ?

is easy. 1) is hard. I would argue that neither is super useful because bytecodes are immutable. What we need is a debugging framework to browse key-value stores (without the knowledge of the Rust source code) and understand what's going on (for instance debugging storage leaks, understanding storage fees, etc).


Optimisation: placeholder portals

In testing, placeholder portal location never changed. Removing this test
Queue placeholder portal creation until after everything else. Avoid deleting them to draw a regular portal in their place.
Roll the check for existing placeholder portals into the main createPortal function. Eliminate an extra comparison.

portal location changes are rare, but will happen when niantic accept location edits. this test is needed
not sure about delayed placeholder creation - it means there's nothing to select until map loading is complete.


Investigate performance of shared IPC namespace

Context
https://docs.docker.com/engine/reference/run/#ipc-settings---ipc

Shared memory segments are used to accelerate inter-process communication at memory speed, rather than through pipes or through the network stack. Shared memory is commonly used by databases and custom-built (typically C/OpenMPI, C++/using boost libraries) high performance applications for scientific computing and financial services industries. If these types of applications are broken into multiple containers, you might need to share the IPC mechanisms of the containers, using "shareable" mode for the main (i.e. “donor”) container, and "container:" for other containers.

Can explicitly sharing the IPC namespace improve performance of performance-intensive profilers on docker?
Todo
Benchmark with and without on a sample application + profiler combo that is know to be performance intensive

Probably pointless since the profilers operate directly in the CLR instance (dynamically loaded), so there is no IPC here. The IPC is only for telling the CLR to load the profilers library.


Using gapi.auth2 in Chrome extension

I am trying to migrate Chrome extension from gapi.auth to gapi.auth2:
gapi.auth2.init({
	client_id: CLIENT_ID,
	scope: 'https://www.googleapis.com/auth/drive.readonly',
	fetch_basic_profile: false,
	cookie_policy: 'none'
})

Gives an error:
Not a valid origin for the client: chrome-extension://zzzzzz has not been whitelisted for client ID xxxxxx.apps.googleusercontent.com. Please go to https://console.developers.google.com/ and whitelist this origin for your project's client ID.
But as I use credentials for Application type: Chrome App, there's no way to specify authorized origin for my client ID.
Request for possible fix - make auth library 'generate' correct authorized origin for Application type: Chrome App based on Application ID value: https://chrome.google.com/webstore/detail/zzzzzz -> set chrome-extension://zzzzzz as authorized origin.

@kospl gapi.auth2 does not support Chrome extensions, and the whitelisting problem is not the only issue preventing the library to work in Chrome extensions.
For Chrome extension, I would recommend using chrome.identity.
As an alternative, you could consider using Firebase Auth.

Does this mean
gapi.client.init({
      apiKey: API_KEY,
      clientId: CLIENT_ID,
      discoveryDocs: DISCOVERY_DOCS,
      scope: SCOPES
    })

also wouldn't work? Are gapi and Chrome extensions still incompatible?

Curious about this too.

still not working?


New admiralonco function: derive_param_lasta

Feature Idea
derive_param_lasta: checks last disease assessment from OVR (where ANL01FL=”Y”) as default
Flexibility needed:

to change the input source parameter from OVR
assessment value to check up until (e.g. only up until first PD)

Details: checks last disease assessment from PARAMCD=”OVR” (where ANL01FL=”Y”) as default and sets new parameter record with AVAL/AVALC from the source record. Set ADT as the last date where the condition is fulfilled. Option to censor at first PD.
Note: it is important that ANL01FL=”Y” provides only the eligible records to be considered for this derivation, as explained in the ADRS vignette.
Relevant Input
derive_param_lasta(
  dataset,
  dataset_adsl,
  filter_source,
  source_pd,
  source_datasets,
  set_values_to
)

Note: for source_pd a date_source() object is expected. See https://pharmaverse.github.io/admiral/reference/derive_param_tte.html as an example of how this works.
Note: if source_pd left NULL then not censored at first PD.
Relevant Output
New parameter: Covers LSTA and LSTAC from ADRS workflow doc.
Reproducible Example/Pseudo Code
pd <- date_source(
  dataset_name = “adrs”,
  date = ADT,
  filter = PARAMCD == “PD” & AVALC == “Y”
)

derive_param_lasta(
  dataset,
  dataset_adsl = adsl,
  filter_source = PARAMCD == "OVR" & ANL01FL == "Y",
  source_pd = list(pd),
  source_datasets = list(adrs = adrs),
  set_values_to = vars(
	PARAMCD = "LSTAC",
	PARAM = " Last Disease Assessment Censored at First PD by Investigator",
	PARCAT1 = "Tumor Response",
	PARCAT2 = "Investigator",
	PARCAT3 = "Recist 1.1",
	ANL01FL = "Y")
)

Reminder to use filter_pd from https://github.com/pharmaverse/admiralonco/issues/18 once available for the censor at first PD option

@sgorm123 , I replaced source_param with filter_source. I.e., instead of specifying the parameter code of the source parameter an arbitrary condition for selecting the source records can be specified. This allows to use other variables than ANL01FL.

@sgorm123 , I replaced source_param with filter_source. I.e., instead of specifying the parameter code of the source parameter an arbitrary condition for selecting the source records can be specified. This allows to use other variables than ANL01FL.

Thanks, makes sense

@sgorm123 , it is suggested because the new parameter should have an observation for each subject in ADSL even for those without any tumor assessment.

@sgorm123 , it is suggested because the new parameter should have an observation for each subject in ADSL even for those without any tumor assessment.

Thank you, I see. Is it also used to remove records in dataset that occur after a certain date in ADSL (e.g. TRTSDT)?

So far this was not intended. The idea was that such restriction is considered in the derivation of ANL01FL or that the required date variables are in dataset and you would use filter_source = PARAMCD == "OVR" & ADT>= TRTSDT.
I wonder if we need a keep_adsl_vars parameter which could be used to keep variables from dataset_adsl for the new observations. Otherwise, it could happen that TRTSDT is populated for PARAMCD == "OVR" but not for the new parameter.

@rossfarrugia , what do you think? Should we add the keep_adsl_vars parameter to the admiralonco derive_param_*() functions?

Thanks Stefan

source_datasets expects a named list of datasets. The date_source object does not contain any data, dataset_name is just a string. The source_datasets parameter defines which data should be used in the derivation.
This allows to create the date_source() object on a higher level without the data. For example
pd <- date_source(
  dataset_name = “adrs”,
  date = ADT,
  filter = PARAMCD == “PD” & AVALC == “Y”
)

could be defined at company level. Then you would not need to repeat the definition in each study and datacut.
The same approach is used for other source object in admiral, e.g., event_source or censor_source as input of derive_param_tte().

@ljin22

@sgorm123 @bundfussr - will try and add my replies to the questions in the above thread which i don't think were answered... happy to discuss more tomorrow as needed.

"Would one also use this filter to remove any responses that are not standard, e.g. c("NA", "NE", "ND")?" - agree that could be a use case for filter_source

"Should we add the keep_adsl_vars parameter to the admiralonco derive_param_*() functions?" - why would the ADSL vars from the source row not automatically be kept? We're definitely going to need things like the treatment group variables kept ready to set up for the TLGs. I wouldn't like the idea that a user had to list out every ADSL variable needed here as Step 2 of our ADRS workflow already has "Add ADSL required variables for subsequent derivations", so I would have expected them to stay populated for all newly created records automatically. I can't think of any scenario where I would want to see these suddenly made blank for the new parameter records.

"when I look at the derive_param_clinbenefit code there is an argument reference_date, which is required to be in ADSL and used to filter in the code ADT >= !!reference_date. Should we be consistent across the two functions?" - The reason for that parameter there is the code goes beyond the simple ADT>=TRTSDT that can be covered in ANL01FL (as is relevant for all parameters) and it needs to "check for sustained period of time before PD, subject would need to have a valid non-PD assessment at least xxx days after ADSL reference date", so there is an end window applied in the derivation which isn't the case for taking the last assessment. But if you did need to add one then filter_source could be used. That gives the user complete flexibility.

Thanks Ross, so filter_source seems to be how one would filter records from ADRS records.
Wrt, keep_adsl_vars, I agree, and defer to @bundfussr for further comment.  Thank you.
@ljin22  FYI.

@rossfarrugia , @sgorm123 , regarding keep_adsl_vars: We tried to keep ADSL variables automatically before but it did not work well. The idea was to keep variables which are constant within each subject. The issues were:

Determining the constant variables is time-consuming and led to a considerable performance decrease.
If a variable is constant by chance, it is considered as ADSL incorrectly.
The code is hard to review because from the call of the derive_param_*() function it is not obvious which variables are kept.

Therefore we decided to specify explicitly which variables should be kept for the new parameter. See the BDS Exposure vignette for an example. At the beginning the ADSL variable required for the derivations are stored in the adsl_vars variable and later this variable is used in the calls for derived parameters.
I think for the ADRS functions we have two options:

The variables to keep from ADSL are specified via the keep_adsl_vars parameter.
All variables in the dataset specified for dataset_adsl are kept. I.e., if the users do not want to keep all ADSL variables, they need to create a temporary ADSL dataset with a subset of the variables.

OK @bundfussr think i get it. So our Step 2 of ADRS template/vignette would be similar to the following from ADEX:
adsl_vars<-vars(TRTSDT, TRTSDTM, TRTEDT, TRTEDTM )

adex <- left_join(
  ex,
  select(adsl, STUDYID, USUBJID, !!!adsl_vars),
  by = c("STUDYID", "USUBJID")
)

Then in all downstream parameter functions they need to be aware to only keep those vars set in adsl_vars. But I assume then we don't need a new keep_adsl_vars argument for this in each and every parameter derivation function right? As in your ADEX example, I don't see a keep_adsl_vars argument in derive_param_exposure() for example. It seems to be set once at the start of the code and then gets fed into everywhere downstream.

For ADEX adsl_vars is specified for the by_vars parameter, e.g., by_vars = vars(STUDYID, USUBJID, !!!adsl_vars). It is not used automatically. The programming strategy forbids this.
In the ADRS functions we do not have a by_vars parameter. Therefore I proposed keep_adsl_vars.

OK, thanks @bundfussr, let's go with your suggestion then, Can you update all the issues impacted and let the developers know again please?
I'll make sure the vignette and template shows how you can just set this list of variables once as done in ADEX, so users don't repeat these in many places.

Or on reflection @bundfussr could even use by_vars here if that's more consistent with the way other admiral core parameter functions were designed? happy to go with your call though.

Ive been pondering this a little overnight and wonder if this function (indeed others too) should just return the new SET_VALUES and AVAL/C, plus the original data (which would need to include all columns needed for the filter)?  Joining with ADSL seems like it should be handled by the function caller, also as the admiral/admiralonco functions are to be piped (I presume) it could be a little confusing for the users as to when ADSL is joined. Further, I presume with allowing ADSL to be joined we also need to check for duplicate columns being returned from within the function.
I'll obviously go with whatever you decide, it is is just a thought, as Im just trying to get my head round the admiral design patterns.

@rossfarrugia @bundfussr @ljin22
What should the function do if there are two AVALs on the same last ADT? Take worse,  error, concatenate the values, anything else...

@rossfarrugia @bundfussr
Is there any ADMIRAL convention to all the dataframes from within the function to be returned (somehow) to the user for debugging?  At Amgen we use Loggers to print to the console at varying levels (which I see admiral does not) and also my convention (not Amgen) is to return a debug_list of all dataframes if the log level is set low enough (example below, of course in ADMIRAL without a Logger it would need to be an argument in the function call, e.g. debug_return = TRUE).
debug_list <- list()
debug_list$pd_data <- eval(rlang::parse_expr(source_pd$dataset_name)) %>%
admiral::filter_if(source_pd$filter) %>%
dplyr::select(!!!subject_keys, !!!by_vars, !!source_pd$date) %>%
dplyr::rename(temp_pd_date = !!source_pd$date)
:
:
if(Logger$LOG_LEVEL == 2){
db_debug_list <<- debug_list
}

@sgorm123 some replies from me:

ADSL join happens prior to these param functions in the ADRS workflow so you're just choosing which of these variables to keep from the source records you feed in, e.g. PARAMCD == "OVR"
we don't have anything in our Roche specs for this as i dont think you would ever have 2 exact same ADT tumor assessments unless there was maybe missing times. to be honest the AVAL isn't even really important though in this case as its the last date that we're trying to get out, which is then used as a censor for PFS in ADTTE.

@bundfussr could probably comment more and on the last point too about debugging

@sgorm123 , I would issue an error in case the last observation is not unique. Then the user can update the filter_source parameter to achieve uniqueness. Another option is that the functions provides an order parameter, which is defaulted to ADT. If necessary, the user could add other variables, e.g., vars(ADT, ASEQ) or vars(ADT, AVALN).
If there are duplicate observation, admiral provides a dataset with the duplicate observations to the user. If you call filter_extreme() with checktype equals "warning" or "error" for selecting the last observation this is done automatically.

Thanks, I like the addition of an order param (I shall add) and I shall also look at filter_extreme().
wrt..
> * ADSL join happens prior to these param functions in the ADRS workflow so you're just choosing which of these variables to keep from the source records you feed in, e.g. PARAMCD == "OVR"
This makes sense, though can I then just confirm a comment above from @bundfussr:
@sgorm123 , it is suggested [The ADSL Argument] because the new parameter should have an observation for each subject in ADSL even for those without any tumor assessment.
Is this the case then, as this leads me to believe ADSL should be joined in the function? Perhaps we can just discuss and agree later.
Thanks for all the help, Stephen

Ah yes that makes sense @sgorm123 - you would need to add a record for those patients that might not have an input source record from RS. Even if all the analysis vars are all going to be null.

Ah yes that makes sense @sgorm123 - you would need to add a record for those patients that might not have an input source record from RS. Even if all the analysis vars are all going to be null.

For these subjects, would ADT, AVAL and AVALC be NULL?

Ah yes that makes sense @sgorm123 - you would need to add a record for those patients that might not have an input source record from RS. Even if all the analysis vars are all going to be null.

For these subjects, would ADT, AVAL and AVALC be NULL?

In the case that subjects in ADSL but with no post-baseline data or no evaluable assessment in ADRS, such records could cause conformance check issues of missing both AVAL and AVLAC in BDS structure data, and NULL ADT does not contribute in next ADTTE workflow.  As ADaMs are "analysis-ready", should we just keep records with valid data?

Good point @ljin22 - i'm actually thinking we shouldn't create these blank records for this parameter as when I look at the ADTTE workflow we even have this covered already by:
censor_conditions=list(lasta_censor, **rand_censor**)
Also in our ADRS workflow we do say:
All parameters are only created if patient has a record in ADSL.
I'll feed this back to the Roche standards team.

@sgorm123 as per chat yesterday i'll update this issue to remove dataset_adsl argument which is no longer needed

@sgorm123 is this function ready? if so please do make a PR so we can get people starting on review


TestNG version should be specified in MANIFEST.MF

at least starting from 7.1.0 manifest doesn't contain information about current version, so the version can't be retrieved by tools
Background:
I try to workaround the problem that old testng versions do not recognise "https:"-dtd url and download it from internet which is not acceptable during different IDE activities (IntelliJ).
Could you please write correct Implementation-Version to the MANIFEST.MF?
Thanks

@akozlova - While this gets implemented, you can figure out the TestNG version today using the below approach
System.err.println(org.testng.internal.Version.VERSION);

Thanks but in order to use the workaround I would need to load class Version in the new classloader and check field by reflection, because IDE may bundle different version from what user has. I am also afraid of internal in the classname
I stay with jar name for now, I hope people do not rename jars nowadays...

@akozlova For my understanding, why do you need the version?
internal is supposed to be a warning for common users, not for 3rd party integration.
If you need something from the internal package, just warn us and we will make extra effort to keep it safe.
At least, some backports across versions can be done via https://github.com/testng-team/testng-remote


New version: Yota v0.2.1

Registering package: Yota
Repository: https://github.com/dfdx/Yota.jl
Created by: @dfdx
Version: v0.2.1
Commit: c57b70c0e846dc3cec1d404cc8afc2fd8fe69192
Git reference: master

A couple of issues... First, is skipping 0.2.0 intentional? Second, this needs a [compat] section in Project.toml with at least an entry for julia itself, e.g.:
[compat]
julia = "1"

would mean that the package is compatible with Julia versions [1.0.0, 2.0.0).

First, is skipping 0.2.0 intentional?

Earlier today I've registered a new release with tag v0.2.0 (IIRC, this was the way to do it with AttoBot), so Registrator refused to use the same version. If I delete the release, will Registrator be happy with version 0.2.0?

Second, this needs a [compat] section [...]
Will do, thanks!

Yes, if you delete the existing tag then Registrator will be happy to let you register this as v0.2.0. If you install TagBot then it will automatically tag versions after they are successfully registered.

Here's the updated version: #3738


Issue with vscode 1.47.0 - extensions.json should not be located in the user data directory

Syncify Version and Operating System
I am using Syncify v4.0.4 on Windows

Describe the bug
After installing and launching VS Code 1.47.0 every extension is missing and the Extensions pane loads infinitely.
For a detailled description see Issue#102082 in microsoft/vscode.
This bug exists, because Syncify creates a extension.json in the user data directory (%APPDATA%\Code\User in my case) where the settings.json is located. This folder is owned by VS Code so this lead to the issue. See this comment of @sandy081 for details.
If the extensions.json is removed from the user data directory and VS Code is restarted, vscode runs without any issues until Syncify run a Sync or Upload.
To Reproduce
Steps to reproduce the behavior:

Syncify is setup (File or Repo Syncer)
Run the Sync or Upload task of Syncify
Install the update to vscode 1.47.0
Restart VS Code
VS Code does not load any extensions and the Extensions pane loads infinitely

If you manually create a extensions.json file with valid json content in the user data directory, VS Code should also fail to load the extensions on next startup:

Create an extensions.json file next to settings.json in your user data dir with following content[
  {
    "id": "a"
  },
  {
    "id": "b"
  }
]

Open VS Code. No extension should now be loaded and the Extensions pane should loads infinitely

Expected behavior
Syncify should not create the extensions.json file in the user data directory.
Screenshots
Additional context

Recommendation is to use extension's global storage home to store extension's global state like this - https://code.visualstudio.com/api/extension-capabilities/common-capabilities#data-storage


impl Clone and Copy for Event

I think Event is too big for Copy, e.g. kevent is 32 bytes. Do you have a use case for Clone?

@Thomasdezeeuw
Yes, for example, when I receive a readable event, but I don't want to start processing the event immediately, so I want to put the event in a delay queue and then process it at a suitable time. At this time, I need Event to be Clone.

@Thomasdezeeuw Copy has removed.

Thanks @LuoZijun.


It is time to create release version in Github now

Could we have release in Github for stable version? So I can use the release version or its commit  to lock the status when I build the image internally and get update from upstream at same time.

Agreed. I cut one backdating it to our last commit here.


fitContent() not working first time

Im trying to use "firstChartApi.timeScale.fitContent()" in the sample app after setting the data but it is not working on 1st time on 2nd time it working properly could you please provide a sample on how to use it with a dynamic chart
My sample code:-
private fun createSeriesWithData(
data: Data,
priceScale: PriceScaleId,
chartApi: ChartApi,
onSeriesCreated: (SeriesApi) -> Unit) {
when (data.type) {
SeriesDataType.LINE -> chartApi.addLineSeries(
options = LineSeriesOptions(
priceScaleId = priceScale
),
onSeriesCreated = { api ->
api.setData(data.list)
onSeriesCreated(api)
}
)
        SeriesDataType.CANDLESTICK -> {
            chartApi.addCandlestickSeries(
                    options = CandlestickSeriesOptions(
                            priceScaleId = priceScale
                    ),
                    onSeriesCreated = { api ->
                        api.setData(data.list)
                        onSeriesCreated(api)
                    }
            )
            chartApi.timeScale.fitContent()
        }

    }
    firstChartApi.timeScale.fitContent()
}

Hi! Creating of series is async operation. So you should put the method fitContent right after the setting of data.
like this
        SeriesDataType.CANDLESTICK -> {
            chartApi.addCandlestickSeries(
                    options = CandlestickSeriesOptions(
                            priceScaleId = priceScale
                    ),
                    onSeriesCreated = { api ->
                        api.setData(data.list)
                        //Resize time scale
                        chartApi.timeScale.fitContent()
                        onSeriesCreated(api)
                    }
            )
        }

Hi @makedonsky94,
I dont want to create a new issue.
I used charts on two screens of my app and fitContent works very rearly, i faced this problem both of them.
First one is dashboard screen; first load ss, refresh ss and codes;

    viewModel.lineData.observe(viewLifecycleOwner) { data ->
        if (::areaSeries.isInitialized) {
            binding.tradingView.api.removeSeries(areaSeries)
        }
        binding.tradingView.api.addAreaSeries(
            options = addOptions(
                requireContext(),
                viewModel.chartColor
            ),
            onSeriesCreated = { api ->
                areaSeries = api
                areaSeries.setData(data.list)
                if (data.list.size > 20) {
                    binding.tradingView.api.timeScale.fitContent()
                }
                viewModel.hideChartLoading()
            }
        )
    }

Second one is detail screen: first load ss, refresh ss and codes;

private fun createSeriesWithData(
    data: Data,
    chartApi: ChartApi,
    onSeriesCreated: (SeriesApi) -> Unit
) {
    chartApi.addAreaSeries(
        options = addOptions(requireContext(), colorId),
        onSeriesCreated = { api ->
            api.setData(data.list)
            binding.tradingView.api.timeScale.fitContent()
            onSeriesCreated(api)
        }
    )
}


Portfolio Template

PORTFOLIO TEMPLATE
The portfolio template will contain features like home, experience, achievements and links to linkedin, github profiles etc which can be customized further.
I would be glad if you would assign me this issue.

@rittikadeb you can start working on this issue.


distinctUntilChanged should set prev value with keySelector if available even at the first time

Bug Report
Current Behavior
distinctUntilChanged on master seem not to set the prev value correctly the first time.
Expected behavior
the prev value should be set with keySelector if available even at the first time.
Reproduction
** Please provide repro code does not involves framework, or other setups to address this bug is specific to rxjs core **
https://github.com/ReactiveX/rxjs/commit/f467aa25da69859d1540413c6c2d5a289f2c88d2?branch=f467aa25da69859d1540413c6c2d5a289f2c88d2&diff=split
Environment

Runtime: -
RxJS version: master branch

Possible Solution
see above
Additional context/Screenshots

If this issue relates to a bug effected by the current implementation, it needs to include a code snippet that effects the bug. TBH, I don't understand what's being said here.

So the commit I linked does not count as code snippet?

TBH, I don't understand what's being said here.

What I was trying to say, thinking that someone will check the linked commit too, that the refactored code of distinctUntilChanged operator looks incorrect to me:
When 'first' is true (so the first time), the 'prev' variable is set to be 'value'. In every subsequent run (when 'first' is false) 'prev' is set via a ternary operator that uses the 'keySelector' function if it is defined.
So if I have a keySelector set, the first time distinctUntilChanged operator is called the value of 'prev' will be set WITHOUT the keySelector, then in the next call of distinctUntilChanged this 'prev' value will be compared with the 'value' processed WITH the keySelector. So even if the 'value' is the same, this comparison will return false.

... the refactored code of distinctUntilChanged operator looks incorrect to me.

That's why I want to see a snippet that shows it won't behave has expected - i.e. I want to see a reproduction of a bug. The code looks correct to me and I don't want to spend my time investigating something that looks correct.

I don't want to spend my time investigating something that looks correct
Fair enough, no one wants to work.

So I created a PR, that contains a new test case and the fixed operator. Hopefully this will help, I cannot be more explicit then this.

Okay, I see what you mean. I presumed you'd commented on a commit that had been made in this repo.


Write shortest possible code: How to order a list (python)

Please write shortest code example for this question:
How to order a list in python
How to do it:

Go to python codes
Create new file (named in underscore case, should contain key words from title) with md extension (markdown file).
Propose new file with following content (please use all three blocks if possible - title, code itself and explanations list):

# How to order a list

```python
code part1 part2 part3 ...
```

- part1 - explain code part 1
- part2 - explain code part 2
- ...

More advanced template for examples and linked solutions. More docs here.

https://onelinerhub.com/python/list_ordered


Resource limits for self-hosted manfests

We should be setting resource limits in the self-hosted manifests.
Currently blocked by deciding what those limits should be.

We should also have a table of recommended values for various levels of scale.

Would be useful to know this for the calico-dcos install as well.


Mixed chart types

You support Mixed chart types ? and is there an example?

Here is the sample of showcase. https://github.com/pepstock-org/Charba-Showcase/blob/master/src/org/pepstock/charba/showcase/client/samples/ComboBarLineView.java

@nseb this is the picture.

Thanks a lot , I'm Trying


Merge prTesting_201903281032 branch to master branch

Docs Build status updates of commit 83d0506:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

split/updateTestRef.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Prim distributed gpt

PR types

Others
PR changes

Others
Description

Pcard-66975

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: lxd-cumt:x: zhaoyinglizhaoyingli seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


extended-eventsource writes directly to stdout (and this behavior isn't configurable)

In several places this package uses console methods to write directly to standard output. This can be problematic when used from a CLI program where I want to have full control over my program's output. Currently I'm seeing messages like Connection established in my output which I have no straightforward way of preventing.
Would you consider accepting a pull request which removes all usages of console.*? Or if not, perhaps a new option to allow some mechanism to disable them?

Hey @mkantor,
thank you for the feedback and creating the issue!
I would not disable logging by default as the native EventSource depends on logs as the only real interface for runtime information. This is the part of the spec that describes this:
https://html.spec.whatwg.org/multipage/server-sent-events.html#implementation-advice

Implementations are especially encouraged to report detailed information to their development consoles whenever an error event is fired, since little to no information can be made available in the events themselves.
[https://html.spec.whatwg.org/multipage/server-sent-events.html#implementation-advice]

I just published a new version (1.4.6) that has an option called disableLogger.
Also you can define a custom logger and provide it via the logger option.
Please leave feedback if this change helps!

I just realized, that you offered to create a PR.
If you have anything else or additional to this and want to do it yourself, you are more than welcome to create a PR :)
Thank you!

No worries, the changes you made look great to me. Thanks for the speedy response!