AdoptOpenJDK 11 crashes when compile source files with ToolProvider.getSystemJavaCompiler

Platform:
macOS High Sierra
Architecture:
x86_64
Related Java version:
openjdk version "11.0.4" 2019-07-16
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.4+11)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.4+11, mixed mode)
My team has a project which is written with Java 8. We encounter a bug while trying to compile java source with arguments -proc:only.
Here is sample project that you can demonstrate the case.

Processor returns an Element object which it's original type is ClassSymbol. With using JDK 11, whenever i try to access element's kind with Element#getKind(), java throws Assertion Error. But, if I ignore the exception and try to access elements' kind, it returns succesfully.
After while, I dig into to the code, I found exception causes somewhere in ImplicitCompleter in JavacProcessingEnvironment.
Whenever it tries to run
JavacProcessingEnvironment.this.compiler.readSourceFile(this.topLevel, (ClassSymbol)sym);

it fails in this line (line number: 536 in mycase)
if (!this.modules.enter(List.of(tree), c))
In such scenario, JavacProcessingEnvironment calls Modules#initModule() while processing annotations. However, JavacProcessingEnvironment holds states and i think it's not able to manage correctly so it's not calling initModule right after AbstractProcessor#process() scope out.
The following line check states and DO NOT initialize modules correctly:
public List<JCCompilationUnit> enterTreesIfNeeded(List<JCCompilationUnit> roots) {
    return this.shouldStop(CompileState.ATTR) ? List.nil() : this.enterTrees(this.initModules(roots));
};

Just because of the modules is not initialized correctly, when I try to access elements' kind java throws AssertionException.
To able to get a success result, i had to run with try-catch Element#getKind() like;
int remainAttempt = 3;
while(remainAttempt-- > 0) {
    try {
        ElementKind kind = element.getKind();
        return true;
    } catch (AssertionError error) {
         System.err.println("Attempt failed, remaining attempt: " + remainAttempt);
     }
 }

In first attempt fails, and second while loop returns true. Probably, JavacProcessingEnvironment reset states when an exception occurs(passing to new round) so second attempts not fails as the first one.

@bilalekremharmansa - Can you try with the adoptopenjdk.net/upstream.html build?

@karianna First of all, I encounter the problem on my macOS.
As you ask to try with the upstream build, I tried on Linux -- debian 9. Both of the releases, early access and general-availability, produce same result as mine so the bug occurs.
openjdk version "11.0.5-ea" 2019-10-15
openjdk version "11.0.4" 2019-07-16

Finding an upstream reporter for you...

I've reported this upstream as: https://bugs.openjdk.java.net/browse/JDK-8232013

FWIW, there has been some movement on the upstream bug. AFAIUI the code uses Element.getKind() after the compiler has been closed.

I did not notice the comments, thanks for  notifying. Is there anyway that write a comment to the bug.jdk ?

Not unless you are OpenJDK author (an upstream OpenJDK role). Feel free to post it here and I'll relay.

Gotcha.. That would be great, thanks!
@ Jan Lohada, we have in common that there must not be any call to javac just after it's closed. On the other hand, I think we can still support Element.getKind(). Since, concrete Element object is constructed by JavaCompiler (i've not digged into to code, might not be true %100), what if JavaCompiler constructs an concrete Element object which has a class member that type of Kind enum, like;
class XXX implements Element {
  Kind kind;
  .....

  XXX(Kind kind) {
    this.kind = kind
    ....
  }
}

With this way, calling Element.getKind() would not go to JavaCompiler to ask that what's the Kind of the object since Element already knows what it is. Is there any concern with this approach ?


fix: add types fields to exports

Description
Since 4.9, Typescript prioritises the exports field over typesVersions and types.

Thanks you!


Add common action parameter: email-notification

Possible values: owners or administrators.
If 'owners', any email notice will go to to the house owner.
If 'administrators', email notice go to the admins.
The email addresses are configured in zone-api-config.yml.

New parameter available to all actions: notificationAudiences. Possible values: 'owners' or 'administrators'.


docs: add Discourse community link to contact section

Add link to Discourse community platform in the contact section to provide users with an additional support channel alongside Discord.

Disclaimer: This review was made by a crew of AI Agents.
Code Review Comment for PR #139
Overview
This pull request introduces modifications to the README.md file, adding a link to the Discourse community platform in the contact section. This enhancement improves user access to support channels.
Key Code Changes

Navigation Bar Addition

Added a Discourse link to the navigation bar:- [Discord](https://discord.com/invite/X4JWnZnxPb)
+ [Discord](https://discord.com/invite/X4JWnZnxPb) | [Discourse](https://community.crewai.com/)

The addition maintains consistent formatting and follows the existing URL structure.

Contact Section Update

Updated support instructions:- For support, please join our [Discord community](https://discord.com/invite/X4JWnZnxPb) ...
+ For support, please join our [Discord community](https://discord.com/invite/X4JWnZnxPb), [Discourse](https://community.crewai.com/)...

Link formatting adheres to Markdown standards but consider adding an Oxford comma for clarity.

Whitespace Adjustments

Removed extra blank lines for improved consistency:- {two blank lines at end of file}
+ {one blank line at end of file}

Improvement Suggestions

Readability Enhancement: Using an Oxford comma in the contact section could improve clarity:
For questions or support, please join our [Discord community](https://discord.com/invite/X4JWnZnxPb), [Discourse](https://community.crewai.com/), or open an issue in this repository.

Community Descriptions: Brief descriptions for each support channel could enhance user understanding:
For questions or support, please join our communities:
- [Discord](https://discord.com/invite/X4JWnZnxPb) for real-time chat and quick support
- [Discourse](https://community.crewai.com/) for in-depth discussions and knowledge sharing
- Or open an issue in this repository for bug reports and feature requests

Historical Context
The recent changes emphasize the shift towards integrating more user support channels. This follows previous improvements made in documentation across related pull requests, reflecting an ongoing commitment to enhancing user experience and accessibility.
Related Pull Requests
It would be beneficial to review pull requests that previously modified the README.md to identify established patterns in documenting community resources or enhancements to user support.
Conclusion
Overall, the changes are well-executed and significantly contribute to documentation clarity and accessible user support mechanisms. The minor suggestions provided aim to enhance readability but do not detract from the new functionalities introduced.
Verdict
✅ LGTM (Looks Good To Merge)

Solid documentation improvement.
Consistent formatting across added links.
Minor readability suggestions that are optional.

Thank you for your contributions to improving user support within the community!


BigQuery Feature: support materialized views

Summary
This adds support to the client library for materialized views, a new kind of abstraction to the bigquery Table resource type.  It joins similar table features such as managed tables, logical views, and external tables.
Details
More detailed information about this work has been shared out of band with library maintainers.

No changes required.


Roll Plugins from 0c99a3ba749b to db7e1a545682 (55 revisions)

Roll Plugins from 0c99a3ba749b to db7e1a545682 (55 revisions)
https://github.com/flutter/plugins/compare/0c99a3ba749b...db7e1a545682
2021-05-19<EMAIL_ADDRESS>[package_info] Migrate maven repo from jcenter to mavenCentral (flutter/plugins#3918)
2021-05-19<EMAIL_ADDRESS>[android_intent] Migrate maven repo from jcenter to mavenCentral (flutter/plugins#3906)
2021-05-19<EMAIL_ADDRESS>[android_alarm_manager] Migrate maven repo from jcenter to mavenCentral (flutter/plugins#3904)
2021-05-19<EMAIL_ADDRESS>[google_sign_in] Migrate maven repo from jcenter to mavenCentral (flutter/plugins#3914)
2021-05-19<EMAIL_ADDRESS>[google_maps_flutter] Migrate maven repo from jcenter to mavenCentral (flutter/plugins#3913)
2021-05-19<EMAIL_ADDRESS>[wifi_info_flutter] Migrate maven repo from jcenter to mavenCentral (flutter/plugins#3925)
2021-05-19<EMAIL_ADDRESS>[flutter_plugin_android_lifecycle] Migrate maven repo from jcenter to mavenCentral (flutter/plugins#3912)
2021-05-19<EMAIL_ADDRESS>Mark in_app_purchase as stable (flutter/plugins#3929)
2021-05-19<EMAIL_ADDRESS>[sensors] Migrate maven repo from jcenter to mavenCentral (flutter/plugins#3921)
2021-05-19<EMAIL_ADDRESS>[espresso] Migrate maven repo from jcenter to mavenCentral (flutter/plugins#3911)
2021-05-19<EMAIL_ADDRESS>[path_provider] Migrate maven repo from jcenter to mavenCentral (flutter/plugins#3919)
2021-05-19<EMAIL_ADDRESS>[connectivity] Migrate maven repo from jcenter to mavenCentral (flutter/plugins#3909)
2021-05-19<EMAIL_ADDRESS>[device_info] Migrate maven repo from jcenter to mavenCentral (flutter/plugins#3910)
2021-05-19<EMAIL_ADDRESS>[battery] Migrate maven repo from jcenter to mavenCentral (flutter/plugins#3907)
2021-05-19<EMAIL_ADDRESS>[webview_flutter] Bump version for republishing (flutter/plugins#3928)
2021-05-19<EMAIL_ADDRESS>[url_launcher] Migrate maven repo from jcenter to mavenCentral (flutter/plugins#3902)
2021-05-18<EMAIL_ADDRESS>[espresso] Minor cleanup (flutter/plugins#3901)
2021-05-18<EMAIL_ADDRESS>[in_app_purchase] Add reference to the codelab in the README (flutter/plugins#3896)
2021-05-18<EMAIL_ADDRESS>[in_app_purchase] Expose the NSLocale object (flutter/plugins#3897)
2021-05-17<EMAIL_ADDRESS>Clean up webview readme (flutter/plugins#3900)
2021-05-17<EMAIL_ADDRESS>Bump min Android SDK to the version required at runtime (flutter/plugins#3894)
2021-05-17<EMAIL_ADDRESS>Migrate some tool commands to NNBD (flutter/plugins#3899)
2021-05-17<EMAIL_ADDRESS>[image_picker] Image picker fix alert (flutter/plugins#3881)
2021-05-15<EMAIL_ADDRESS>[webview_flutter] Remove fallback Activity and watch uiMode (flutter/plugins#3849)
2021-05-15<EMAIL_ADDRESS>Begin migrating tools to NNBD (flutter/plugins#3891)
2021-05-15<EMAIL_ADDRESS>Update tool README for packages use (flutter/plugins#3882)
2021-05-15<EMAIL_ADDRESS>Overhaul CONTRIBUTING.md (flutter/plugins#3890)
2021-05-14<EMAIL_ADDRESS>[video_player][camera] Use TestWidgetsFlutterBinding.ensureInitialized(); to make sure necessary resources are initialized. (flutter/plugins#3892)
2021-05-13<EMAIL_ADDRESS>[image_picker] Image picker fix metadata (flutter/plugins#3873)
2021-05-13<EMAIL_ADDRESS>Revert "Temporarily run Windows tests via GitHub Actions (#3875)" (flutter/plugins#3885)
2021-05-13<EMAIL_ADDRESS>[in_app_purchase] update min Flutter version to 1.20.0  (flutter/plugins#3887)
2021-05-13<EMAIL_ADDRESS>Revert "Temporarily disable Windows tests (#3862)" (flutter/plugins#3884)
2021-05-13<EMAIL_ADDRESS>[in_app_purchase] Configure correct App Bundle identifier (flutter/plugins#3883)
2021-05-12<EMAIL_ADDRESS>[in_app_purchase] Implementation of the app facing package (flutter/plugins#3877)
2021-05-12<EMAIL_ADDRESS>[in_app_purchase] Android example using in_app_purchase_android package (flutter/plugins#3861)
2021-05-12<EMAIL_ADDRESS>[in_app_purchase] iOS example using in_app_purchase_ios package (flutter/plugins#3870)
2021-05-12<EMAIL_ADDRESS>Only mark PRs for publishing that change pubspec (flutter/plugins#3878)
2021-05-11<EMAIL_ADDRESS>Revert "[tool] github action to auto publish (skeleton)  (#3834)" (flutter/plugins#3880)
2021-05-11<EMAIL_ADDRESS>[tool] add an skip-confirmation flag to publish-package for running the command on ci (flutter/plugins#3842)
2021-05-11<EMAIL_ADDRESS>[tool] github action to auto publish (skeleton)  (flutter/plugins#3834)
2021-05-11<EMAIL_ADDRESS>[in_app_purchase] Update to pub version of in_app_purchase_platform_interface dependency (flutter/plugins#3879)
2021-05-11<EMAIL_ADDRESS>Temporarily run Windows tests via GitHub Actions (flutter/plugins#3875)
2021-05-11<EMAIL_ADDRESS>[tool] version-check publish-check commands can check against pub (flutter/plugins#3840)
2021-05-11<EMAIL_ADDRESS>[google_sign_in] document web usage (flutter/plugins#3876)
2021-05-11<EMAIL_ADDRESS>Unpin iOS GoogleMaps pod dependency version (flutter/plugins#3850)
2021-05-11<EMAIL_ADDRESS>[in_app_purchase] Federated Android implementation (flutter/plugins#3841)
...

Commit queue failed; closing this roll.


⚠ Fortnite has degraded performance

In 866f623, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1586 ms

Resolved: Fortnite performance has improved in f4289d6.


parse filter min max as integer for type integer

@simon-leech  That is possible but not in this PR. This PR is for a fix where the wrong type is assigned to a value.
Changing the behaviour of an input will be a lot more involved. First an input utility would have to be created. In the case of the range slider the input utility which formats input values would then have to be integrated into the slider utility.
In the case of numeric the filter. The input utiliity would have to be created. The utility integrated into the slider element utility. The configuration for the numeric format would have to be integrated into the filter, and then fed all the way done towards the input utility.
None of this is related to this PR.
This PR is for defining the min and max as integer for integer type filter.


TinyMCE not compiling with Sprockets 4

For some reason, TinyMCE assets aren't being compiled when using Camaleon with Sprockets 4. I haven't been able to track down why this happens. TinyMCE appears to be correctly required by this line, and eveything else required in that manifest seems to work fine. I'm not sure whether the problem is in Camaleon, tinymce-rails, or sprockets.
The only workaround I've found (besides downgrading Sprockets) is:
# config/environments/production.rb

config.assets.compile = true

This is definitely a workaround and not a solution, though, since this causes the files to be served without the fingerprinting used for CDN cache expiration.

I've opened an issue on the tinymce-rails repo. I think that gem might require a compatibility update.


PlatformDialogAction iOS text color

In Android the color of the text is the same as the primary color, but on iOS it stay blue. For me make sens that it take also the primary color for the text as iOS offer natively the tintColor to change that text. Because in 99% we want to get rid of this blue text to put our own color

I believe at this stage this cannot be changed since the code uses is just a wrapper over the Material and Cupertino widgets. By the looks changing the color of the button is not exposed by the widget

Ho ok, strange that it's not automatic then ^^ thanks


Can breadjam configure renderPattern in VSCode user settings?

Hey @TINGWEIJING , thanks for such a cute and fun plugin! 😄
When I'm using BreadJam among different VSCode windows, I found each renderPattern in different window cannot follow the choice selected in Bread Jam: Select Render Pattern command. I chose Pattern 10，while in other window it was Pattern 1. I've tried to config bread-jam.renderPattern in my user setting, however found nothing happens.
So I was wondering if the plugin has provided some way for users to save their configuration among different window/workspaces. Or maybe some undocumented features can help? 🤔

Hi @a20185
Thank you for your feedback!
I will work on this setting.

Hi @a20185 Thank you for your feedback! Unfortunately, I do not implement any extension setting to achieve such behaviour. I will work on this setting soon.

Thanks, Weijing!
Can't wait to see it soon. That helps a lot since our development routine requires switching projects frequently 😊


Fix symbol table patching for overriding default methods

ast_replace (potentially) copies the input AST, hence it's important
to do the symbol table patching on the output AST. Otherwise the
patching will happen on the wrong nodes, which leads to methods with
a wrong symbol table.
Fixes #3305

Hi @Trundle,
The changelog - fixed label was added to this pull request; all PRs with a changelog label need to have release notes included as part of the PR. If you haven't added release notes already, please do.
Release notes are added by creating a uniquely named file in the .release-notes directory. We suggest you call the file 3719.md to match the number of this pull request.
The basic format of the release notes (using markdown) should be:
## Title

End user description of changes, why it's important,
problems it solves etc.

If a breaking change, make sure to include 1 or more
examples what code would look like prior to this change
and how to update it to work after this change.

Thanks.

The test here is different than @EpicEric's minimal example from #3305, however, I verified that this change fixes #3305.

This is an awesome first contribution @Trundle. Thanks.
Can you add release notes? If that is done before Friday, this can go out with the release that is happening on Friday.

Whoops I should have probably mentioned this, yes. The other tests mostly use traits and not interfaces. As the bug happens with both, I tried to be consistent with the other tests.
I added some release notes, I hope that's how it works. I unfortunately forgot to add a "ci skip" though :/

@Trundle no need to worry about skip ci

@Trundle release notes look good. This will go out with tomorrow's release. Thanks!


Fix indentation ingress template

I think it might be better, but I haven't had the time to test it and check the generated Yaml, sorry!

bors merge


Ordering ACLs

I can't seem to find a way to order the ACLs. The order of evaluation of path acls is important.
Is there a way to do this without manually editing the haproxy.cfg file on the running container ?

You're right. At the moment, there is no way to order ACL. My paths are always unique so I haven't had that problem. I can, for example, add order number as an additional parameter of the reconfigure request. Do you think that would solve the problem? Please let me know if you have any other suggestion.

Has there been any update on the ability to Order ACLs?

Sorry for not responding to this issue earlier. I had too many things on my plate and could not get free time to work on this.
I think I'll be able to implement ordering by the next weekend. Before I do that, I'd like to pass the idea through you and check whether you think it would fulfill your needs.
The idea is to add a new parameter called "aclName". It will not have any special meaning (yet) except that the proxy configuration will be generated with ACLs ordered alphabetically. The reason for something like that is in another feature request to have more than one ACL per service so I thought to join the two. Do you think that would do the trick or you expected something different?

Actually, I thought it would be more difficult than it was. You can use aclName in reconfigure and remove requests. ACLs are ordered alphabetically by their names. If not specified, serviceName is used instead.
Can you please try the release 1.101 from Docker Hum and let me know whether it fits your use case?

Would it be possible to order the ACLs by length?
For example say I have three services that I want to map to these paths
foo => /foo
foo-bar => /foo/bar
foo-bar-foo => /foo/bar/foo
For example "/foo/foo/foo" should be directed to "foo" service since that best matches.
"/foo/bar/bar" should directed to "foo-bar" service since it best matches.
By best here I mean has a larger match string.

Initial assessment seems that this service listens on an API to create configuration files for each service that docker-swarm-listener finds.
Then it will iterate through the configuration files found on disk, which the golang func naturally sorts by filename.
What I requested above seems like it would be a bit difficult.
Curious is there any reason why you persist these configurations to disk instead of memory as a slice? Would be easier to do manipulations. A sort interface can be made which orders the services by name, then others like myself that would like a custom algorithm could implement that interface.

The reason for persisting configs to disk is for historical reasons. The proxy was created before the new Swarm appeared. It used Consul for service discovery and Consul Template to create HAProxy config out of Consul's data. In the meantime, the new Swarm appeared with integrated service discovery. Today, if I'd ignore proxy users that combine it with Docker Engine without Swarm or the old Swarm, there would be no reason to use Consul and, therefore, to persist to disk.
Back to you request... I can change the code so that all configs are persisted in memory (I already did that for some other data proxy uses). I just need a good excuse to refactor and this request might be it.
However, I'm still not sure whether this is a great feature or something potentially very dangerous that could cause misconfigurations. I just need to wrap my head around the best way to do this without creating trouble for the existing users.
Can we work together to define a flow and initial design?

That makes a lot of sense!
As far as design, have you ever used node express? It uses something called middleware / pipeline pattern. The basics is that output of a function is the input of the next function. If you ever used a pipe in a bash command its similar in concept.
function sortByName(services []Service) Services[] {
  //sort the list by service name
  return services
}

function consul(service []Service) Services[] {
  //write the config files for consul
  return services
}

// at some other point
dfp.use(sortByName)
// dfp.use(customMiddleware1)
// dfp.use(customMiddleware2)
dfp.use(consul)

// start the proxy
dfp.start()

Think of the above code more like pseudo code, just to highlight the idea. People write functions that can manipulate the data or do some action based on the data. It is done in order. If someone wants something specific, like what I requested above I would write my own custom middleware and plug it in.

Closing due to inactivity


New lines are concatenated and not broken, need two lines

Describe the bug
When I have a Markdown as follows:
Markdown(
    """
    Test1
    Test2
    Test3
    """
)

I get the following result:

If I add an extra line between them, they get separated:
To me, this seems like the wrong behavior, as you can see even from the markdown rendered here in GitHub:
Test1
Test2
Test3
Is there any way to fix it, or control this behavior?
Thanks :)
Checklist

[x] I can reproduce this issue with a vanilla SwiftUI project.
[x] I can reproduce this issue using the main branch of this package.
[x] This bug hasn't been addressed in an existing GitHub issue.

Steps to reproduce
Shown in problem description
Expected behavior
Shown in problem description
Screenshots
Shown in problem description
Version information

MarkdownUI: [e.g. 2.0.0, or a commit hash]
OS: iOS 17.4
Xcode: 16 Beta 5

Additional context
Add any other context about the problem here.

Also ran into this issue this morning.
Version: MarkdownUI 2.3.1
Xcode: 16.0 Beta

Hi @freak4pc,
Thanks for reporting this. There has been some discussion in the past about how MarkdownUI renders single line breaks.
In Markdown, single line breaks within a paragraph are treated as soft line breaks. Soft line breaks are typically rendered as spaces, which is consistent with what a browser would do.
For instance, the following HTML:

foo
baz

Is rendered as:
foo baz

GitHub's behavior varies depending on the context:

It renders soft breaks as line breaks in issue descriptions and comments, like you demonstrated.
It renders soft breaks as spaces in md files.

For instance, if you edit the repository's README.md file adding a line break on the first line, nothing changes in the preview.

Edit
Preview

In Markdown, you can use a backslash \ at the end of a line to force a line break within a paragraph.
struct LineBreakView: View {
  var body: some View {
    Markdown {
      """
      Test1\\
      Test2\\
      Test3
      """
    }
  }
}

MarkdownUI also supports the
 tag.
struct LineBreakView: View {
  var body: some View {
    Markdown {
      """
      Test1

      Test2

      Test3
      """
    }
  }
}

Unfortunately, there is currently no workaround if you want to avoid changing the text as suggested above.
I don't have the time right now, but it should be feasible to add an environment value to let users configure how a Markdown view renders soft breaks.

Hi @freak4pc,
Thanks for reporting this. There has been some discussion in the past about how MarkdownUI renders single line breaks.
In Markdown, single line breaks within a paragraph are treated as soft line breaks. Soft line breaks are typically rendered as spaces, which is consistent with what a browser would do.
For instance, the following HTML:

foo
baz

Is rendered as:
foo baz

GitHub's behavior varies depending on the context:

It renders soft breaks as line breaks in issue descriptions and comments, like you demonstrated.
It renders soft breaks as spaces in md files.

For instance, if you edit the repository's README.md file adding a line break on the first line, nothing changes in the preview.
Edit	Preview

In Markdown, you can use a backslash \ at the end of a line to force a line break within a paragraph.
struct LineBreakView: View {
  var body: some View {
    Markdown {
      """
      Test1\\
      Test2\\
      Test3
      """
    }
  }
}

MarkdownUI also supports the
 tag.
struct LineBreakView: View {
  var body: some View {
    Markdown {
      """
      Test1

      Test2

      Test3
      """
    }
  }
}

Unfortunately, there is currently no workaround if you want to avoid changing the text as suggested above.
I don't have the time right now, but it should be feasible to add an environment value to let users configure how a Markdown view renders soft breaks.

Thanks, appreciate the detailed answer :)
I'm happy to try and work on a PR for this - would you mind directing to me to the place in the code where a soft break is detected / handled ?

This seems like a reasonable place to allow configuration via environment, let me know if that strategy feels good to you and I'm happy to cook something up :)

I'm actually wondering if it should be part of the theme itself:

Thanks for working on this, @freak4pc! I really appreciate it.
I wouldn't add this configuration to the theme. I like the idea to have a soft break mode enum and add it to the environment using a dedicated view modifier.
struct LineBreakView: View {
  var body: some View {
    Markdown {
      """
      Test1
      Test2
      Test3
      """
    }
    .markdownSoftBreakMode(.lineBreak)
  }
}

I will have a look at your PR over the weekend. Thanks again for your contribution!


warnings and deprecations

from a recent build:
WARNING -  Config value: 'extra_css'. Warning: The following files have been automatically included in the documentation build and will be added to the HTML: extra.css. This behavior is deprecated. In version 1.0 and later they will need to be explicitly listed in the 'extra_css' config setting.
WARNING -  Template variable warning: 'homepage_url' is being deprecated and will not be available in a future version. Use 'nav.homepage.url' instead.
WARNING -  Template variable warning: 'favicon' is being deprecated and will not be available in a future version. Use '{{ base_url }}/img/favicon.ico' instead.
WARNING -  Template variable warning: 'page_title' is being deprecated and will not be available in a future version. Use 'page.title' instead.
WARNING -  Template variable warning: 'site_name' is being deprecated and will not be available in a future version. Use 'config.site_name' instead.
WARNING -  Template variable warning: 'google_analytics' is being deprecated and will not be available in a future version. Use 'config.google_analytics' instead.
WARNING -  Template variable warning: 'page_description' is being deprecated and will not be available in a future version. Use 'config.site_description' instead.
WARNING -  Template variable warning: 'toc' is being deprecated and will not be available in a future version. Use 'page.toc' instead.
WARNING -  Template variable warning: 'next_page' is being deprecated and will not be available in a future version. Use 'page.next_page' instead.
WARNING -  Template variable warning: 'previous_page' is being deprecated and will not be available in a future version. Use 'page.previous_page' instead.
WARNING -  Template variable warning: 'copyright' is being deprecated and will not be available in a future version. Use 'config.copyright' instead.
WARNING -  Your theme does not appear to contain a 'main.html' template. The 'base.html' template was used instead, which is deprecated. Update your theme so that the primary entry point is 'main.html'.
WARNING -  Template variable warning: 'content' is being deprecated and will not be available in a future version. Use 'page.content' instead.
``

https://github.com/iamale/mkdocs-alabaster/pull/7 fixes it.

thanks again!


Use PluginGroup trait instead of Plugin for DefaultPickingPlugins

Maybe it's better to use, something like this? :
pub struct DefaultPickingPlugins;

impl PluginGroup for DefaultPickingPlugins {
    fn build(&mut self, group: &mut PluginGroupBuilder) {
        group.add(PickingPlugin);
        group.add(InteractablePickingPlugin);
        group.add(HighlightablePickingPlugin);
    }
}

Instead of:
pub struct DefaultPickingPlugins;
impl Plugin for DefaultPickingPlugins {
    fn build(&self, app: &mut App) {
        app.add_plugin(PickingPlugin)
            .add_plugin(InteractablePickingPlugin)
            .add_plugin(HighlightablePickingPlugin);
    }
}

And in Bevy use:
.add_plugins(DefaultPickingPlugins)

Instead of:
.add_plugin(DefaultPickingPlugins)

Yup! I just realized this earlier today, funnily enough. Thanks for filing an issue.

Can I raise a PR doing this changes , If you are not going to?

Yes please.

@aevyrie Please do the review


Convert relative include paths to absolute

In pull request #1553 the relative include paths have been changed to absolute based on the working directory from the build json file. The intention was to accomplish as less modifications on the provided build command as possible. However, leaving relative paths in a plist interferes with the skipfile functionality:
project files:
/absolute/path/to/the/project/a/b/f.h
/absolute/path/to/the/project/main.cpp

good build command: g++ -I/absolute/path/to/the/project/a main.cpp
bad build command: g++ -I./a main.cpp
main.cpp:
#include "b/f.h"
int main() { ... }

skipfile:
-/absolute/path/to/the/project/a*

This configuration doesn't skip the reports from subdirectory "a" with the bad build command.

I usually prefer avoiding expanding relative oaths to absolute as much as possible to have fidelity with the original process and remain as portable as possible. I would expect the skipfiles to contain relative paths to be portable. Will we work in that scenario?

In a skipfile what should the paths be relative to? Because in a compilation database the build commands may vary the current working directory even for every single command, as the build system jumps between directories. Moreover the user shouldn't be aware whether a path is provided with a relative or absolute path after a -I flag.
The skipfile contains regexes and maybe that could handle this relative path case.

Will clang print the absolute file paths into the plist files? In this case if there is an error in /absolute/path/to/the/project/a/b/f.h and the compilation command used for analysis is g++ -I./a main.cpp?

Yes, I tried it, and this is the point of this pull request.

Ok, just to clear up the current clang behavior. If clang gets a relative include path the file path in the plist report file will be relative. If clang gets an absolute include path the file path in the plist will be absolute.

Could we use this clang argument -fdiagnostics-absolute-paths? Does clang-tidy print out absolute paths in the diagnostics?

Unfortunately this flag doesn't solve the problem. This flag refers only to the diagnostic messages (i.e. compilation errors, warnings, notes. etc.):
./hello/f.h:3:13: warning: division by zero is undefined [-Wdivision-by-zero]
vs.
/absolute/path/hello/f.h:3:13: warning: division by zero is undefined [-Wdivision-by-zero]


Uncomment config::DbConfig::SQLITE_DBCONFIG_RESET_DATABASE

I need it for https://github.com/deltachat/deltachat-core-rust/pull/2980

I think we need to detect when this happens and throw cached statements away? I'm concerned this causes issues.

@thomcc In my case I don't have any cached statements at the point when I reset the database. This happens when I just created the tables but then decided I want to import a backup, so I reset the database and import.
I don't think some clever detection will help, because I have a connection pool and if other connections have cached statements they will not be cleared anyway.
There are probably other ways to break cached statements, like deleting and recreating the table etc., I would rather assume someone setting db_config flags knows what they are doing rather than trying to do some magic that will break in even more complex ways.

If I detect that all my cached statement start failing after some operation (resetting the database, migration etc.) I will insert flush_prepared_statement_cache explicitly or actually reopen connections.

My concern here is more if there's a way to cause memory unsafety through this.
I don't want to have to add an advisory for unsoundness caused by a niche API that could be replicated in a more obviously safe way (close all connections and delete the DB file or similar, which is how we always did this in firefox).
But I guess I'll try to look into it.

My concern here is more if there's a way to cause memory unsafety through this.

Will prepared statements segfault if you try to execute them after resetting the database? If they just fail, that's expected. If they segfault, it's a bug in sqlite.

I can also reset the database from another process, even by running sqlite3 binary and piping the following commands in:
.schema
.dbconfig reset_database on
vacuum
.dbconfig reset_database off

rusqlite cannot detect this and shouldn't try to.

Should I merge ?

Go for it


FileExistsException when Uploading asset bundle to "s3" filesystem

I have a feeling the recent update to 2.0.2 is causing the below error during publishing to s3. I'm on Laravel 8.
Uploading asset bundle to "s3" filesystem...

Illuminate\Contracts\Filesystem\FileExistsException

File already exists at path: [path to file]/lasso-bundle.json

I rolled back to 2.0.1 and the error is gone.

Ah... Okay, I thought that maybe this could happen with writeStream, apologies I will try and get this sorted ASAP.

This should be fixed now, please upgrade to the latest version for Laravel 8 - v2.0.3

I can confirm it's fixed.
Thank You!


Add communication status for sending silent requests without notification (communicate.responseSilent) using Telegram Bot API disable_notification

We have different use cases for Telegram Bots:

Logging/Tracing for normal status changes (e.g. Startup / Shutdown messages every night during backups)
Alerts/Warnings e.g. when a measurement number becomes too low (heating system breaks)

The human that gets the messages only wants notfications on their phone when its an Alert/Warning (2.), but does not want them in normal logging/tracing circumstances (1.).
Therefore, we should be able to take advantage of the "disable_notification" API option see https://core.telegram.org/bots/api#available-methods or  https://python-telegram-bot.readthedocs.io/en/stable/telegram.bot.html#telegram.Bot.send_message

The Startup/Shutdown messages should be configurable to be silent, i.e. disable_notification=true . Furthermore, a new status communicate.responseSilent should be created to allow easy sendign silent status with disable_notification=true .
The existing communication status "communicate.response" can then be used to trigger notifications on mobile phones for errors. You could also add a status "communicate.responseNotify" to enforce disable_notification=false

Added responseSilent  in 1.11.0


feat: RBAC validation

Description
CIP509 RBAC Validation
Related Issue(s)
Closes #324
Description of Changes
The validation includes

Hashing the transaction input 0: transaction inputs within the transaction should match the 1: txn-inputs-hash
7?: auxiliary_data_hash should match the hash of the  auxiliary data. This also log the pre-hashed of the auxiliary data (aux with 99: validation signature set to 0x00`)
Role 0 validation

public key extracted from URI in x509 or c509 subject alternative name  should match some of the witness set within the transaction
Reference ?3: payment-key

Negative index reference -  reference to transaction output in transaction: should match some of the key within witness set
Positive index reference -  referece to transaction input in transaction: check only the index exist within the transaction input

Validation Logging
If validation report is not empty (meaning there is some error) log the error
e.g. CIP509 4: ["Failed to compare public keys with witnesses No public key addresses provided"], chain: "Preprod"
else logging the actual validation mention above
e.g.
CIP509 1: Cip509Validation { valid_txn_inputs_hash: true, valid_aux: true, precomputed_aux: [161, 25, 1, 253, 165, 0, 80, 202, 122, 20, 87, 239, 159, 76, 127, 156, 116, 127, 140, 74, 76, 250, 108, 1, 80, 57, 55, 67, 75, 150, 199, 38, 153, 239, 0, 128, 183, 106, 120, 138, 146, 2, 88, 32, 77, 63, 87, 111, 38, 219, 41, 19, 153, 129, 166, 148, 67, 194, 50, 93, 170, 129, 44, 195, 83, 163, 27, 90, 77, 183, 148, 165, 188, 187, 6, 194, 11, 140, 88, 64, 27, 61, 3, 8, 102, 8, 79, 203, 37, 157, 224, 116, 150, 211, 25, 126, 145, 58, 57, 253, 98, 138, 61, 176, 164, 237, 104, 57, 38, 26, 0, 197, 28, 176, 165, 185, 193, 97, 148, 6, 65, 50, 172, 227, 117, 234, 35, 199, 92, 96, 101, 148, 0, 203, 163, 4, 208, 214, 137, 192, 0, 134, 25, 93, 88, 64, 255, 40, 113, 77, 160, 44, 53, 231, 41, 88, 21, 186, 88, 183, 127, 34, 126, 87, 111, 162, 84, 196, 100, 226, 249, 198, 249, 223, 169, 0, 160, 32, 130, 80, 3, 60, 5, 74, 70, 140, 56, 224, 136, 25, 96, 29, 7, 60, 3, 74, 71, 39, 165, 36, 255, 57, 153, 84, 119, 68, 60, 31, 202, 35, 88, 64, 131, 156, 146, 117, 153, 178, 83, 136, 127, 80, 72, 124, 28, 175, 117, 124, 10, 175, 121, 188, 63, 202, 205, 66, 37, 43, 143, 42, 225, 241, 168, 178, 130, 146, 156, 162, 43, 181, 194, 136, 92, 194, 58, 102, 0, 92, 12, 193, 202, 32, 20, 43, 130, 49, 12, 58, 19, 125, 68, 193, 148, 62, 64, 153, 88, 64, 167, 167, 206, 92, 52, 117, 181, 136, 122, 55, 101, 237, 226, 255, 59, 123, 254, 169, 15, 37, 94, 46, 223, 55, 253, 68, 226, 127, 38, 184, 230, 207, 64, 138, 239, 75, 32, 190, 191, 114, 87, 179, 218, 188, 126, 218, 101, 255, 244, 237, 39, 139, 80, 33, 159, 10, 82, 54, 127, 245, 184, 14, 70, 183, 88, 64, 56, 117, 245, 90, 57, 77, 23, 165, 217, 166, 177, 161, 222, 255, 91, 34, 6, 233, 233, 115, 78, 159, 190, 250, 106, 28, 223, 235, 122, 16, 69, 70, 223, 182, 228, 108, 70, 254, 174, 182, 90, 127, 70, 72, 194, 118, 226, 158, 135, 178, 123, 192, 83, 191, 254, 247, 147, 89, 48, 2, 32, 208, 195, 135, 88, 64, 242, 160, 92, 196, 136, 3, 23, 53, 142, 25, 199, 88, 253, 154, 185, 145, 117, 81, 206, 57, 135, 175, 46, 53, 215, 59, 105, 88, 160, 245, 115, 39, 132, 98, 27, 12, 146, 246, 138, 147, 83, 127, 22, 244, 132, 69, 66, 72, 144, 249, 85, 215, 165, 151, 193, 60, 46, 181, 74, 130, 179, 159, 3, 7, 88, 64, 151, 80, 125, 245, 254, 249, 22, 250, 187, 109, 175, 223, 181, 22, 251, 145, 132, 120, 62, 44, 180, 232, 157, 4, 138, 108, 30, 92, 4, 129, 139, 219, 118, 255, 181, 203, 239, 31, 190, 69, 38, 88, 217, 4, 205, 21, 46, 231, 42, 59, 252, 110, 254, 17, 153, 251, 59, 81, 241, 151, 150, 41, 205, 78, 88, 64, 253, 183, 223, 81, 23, 35, 212, 206, 173, 61, 43, 46, 185, 193, 241, 140, 187, 252, 249, 245, 204, 142, 172, 70, 220, 3, 205, 85, 252, 172, 51, 3, 195, 145, 67, 127, 80, 64, 9, 35, 230, 92, 2, 233, 129, 175, 84, 97, 182, 134, 122, 71, 251, 37, 235, 233, 176, 251, 77, 158, 65, 236, 33, 14, 88, 64, 75, 144, 17, 0, 2, 6, 65, 69, 35, 192, 153, 15, 158, 226, 11, 93, 138, 116, 83, 147, 211, 254, 186, 246, 65, 58, 68, 139, 153, 79, 21, 103, 235, 121, 69, 223, 122, 10, 180, 74, 253, 85, 86, 30, 1, 144, 179, 118, 212, 17, 2, 108, 93, 122, 74, 73, 161, 158, 11, 211, 245, 173, 221, 108, 88, 64, 73, 47, 222, 70, 238, 232, 215, 91, 88, 114, 134, 41, 29, 254, 182, 167, 143, 223, 89, 193, 166, 191, 162, 113, 123, 31, 65, 223, 168, 120, 117, 97, 64, 206, 124, 119, 80, 75, 100, 176, 148, 184, 112, 173, 231, 133, 105, 86, 110, 236, 102, 54, 145, 51, 175, 90, 168, 200, 234, 185, 249, 94, 41, 223, 88, 64, 158, 193, 11, 226, 81, 84, 113, 1, 178, 76, 73, 92, 143, 244, 250, 85, 55, 141, 187, 74, 92, 110, 137, 177, 138, 18, 172, 3, 51, 67, 214, 28, 59, 127, 95, 186, 114, 91, 81, 83, 109, 146, 165, 203, 250, 239, 155, 230, 210, 74, 62, 91, 61, 117, 161, 192, 226, 158, 66, 245, 35, 86, 127, 172, 77, 15, 130, 0, 129, 28, 130, 45, 34, 16, 185, 127, 87, 8, 24, 99, 88, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], valid_public_key: false, valid_payment_key: false }, chain: "Preprod"

Minor changes to other files may included

Please confirm the following checks

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

@bkioshn @stevenj I have a suggestion and feeling that we need to update the way how Cip36::decode_and_validate and Cip509:: decode_and_validate functions work. To improve performance, readability and eliminates any confusion when you are reading them. Current problems:

The function name and signature does not express well what this function is actually doing. decode_and_validate(...) name express that the function decoding something and validating, but it does not return anything, and more over all arguments are marked as immutable and that's confusing a lot.
decoded_metadata: &DecodedMetadata marked as immutable but it's state actually mutated inside, which is totally hidden from the function's signature.
During the function execution when some error appear decoding_failed is called.
So when more than one error appeared a new entry is added into validation_report and decoded_metadata totally updated with the new validation_report vec for the same decoded cip value, which leads to redundancy.

fn decoding_failed(
        &self, reason: &str, validation_report: &mut ValidationReport,
        decoded_metadata: &DecodedMetadata,
    ) {
        validation_report.push(reason.into());
        decoded_metadata.0.insert(
            LABEL,
            Arc::new(DecodedMetadataItem {
                value: DecodedMetadataValues::Cip36(Arc::new(self.clone()).clone()),
                report: validation_report.clone(),
            }),
        );
    }

Suggestion Update to something like this:
decode_and_validate( _slot: u64, txn: &MultiEraTx, raw_aux_data: &RawAuxData, _chain: Network, txn_idx: usize) -> Option<(Self,ValidationReport)>

And the usage of it would be
if let Some((cip, report)) = Cip509::decode_and_validate(slot, txn, raw_aux_data, chain, txn_idx) {
 decoded_metadata.0.insert(
            Cip509 ::LABEL,
            Arc::new(DecodedMetadataItem {
                value: cip,
                report: report,
            }),
        );
}

So it improves readability, will massively simplify an implementation of the decode_and_validate function, and also improve perfomance because it will be stored and allocated a new entry for decoded_metadata once, not for every error which appeared.

I agree that it might cause confusion. Maybe we can create a ticket for this since refactoring is going to occur in multiple files.


Throws back to the beginning when you scroll through history

System Details

OS: Windows 10 LTSC 21H2 19044.2486
Thorium Version 112.0.5615.166 (Without AVX2)

Problem
When I scroll through the story, I'm thrown back to the beginning, it happens all the time. It pisses me off, the same bug is in Google Chrome.
Additional Notes
Help fix this, please.
Video:
https://github.com/Alex313031/thorium/assets/83131824/09267d18-f287-486f-9f31-5fe657755034

@gz83 Can you test this on your windows machine.

I can't reproduce this problem in version 114, please update your browser to version 114 and try again
@QueenUlyana

I can't reproduce this problem in version 114, please update your browser to version 114 and try again
@QueenUlyana

I installed the latest version, but the bug is still there, it has not disappeared. Only it has become less frequent.

Thorium
114.0.5735.134 (Официальная сборка) (64 бит)

Версия
960a08e3d10d3a6911d6e7f4a38b2c73f4aa0fa3-refs/branch-heads/5735@{#1271}

ОС
Windows 10 Version 21H2 (Build 19044.2486)

JavaScript
V8 <IP_ADDRESS>

User Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36

Командная строка
"C:\Program Files\BIN\thorium.exe" --flag-switches-begin --flag-switches-end

Путь к исполняемому файлу
C:\Program Files\BIN\thorium.exe

Путь к профилю
C:\Users\Maxim\AppData\Local\Thorium\User Data\Default

Текущие изменения
5e3a236d-59e286d0

If the same version of chrome/chromium also has the same problem, it may be a bug in the code or a problem with your system environment
@QueenUlyana


[bug] botbuilder -> botframework-connector (v4.4.0) fail import on jest tests

Versions
"node": "10"
"os": "macOS"
"jest": "^24.7.1",
"botbuilder": "4.4.0",
Describe the bug
jest tests fail on import botbuilder
To Reproduce
Run any test that imports botbuilder
Expected behavior
Not faill
Screenshots
FAIL  src/index.test.ts
● Test suite failed to run
ReferenceError: global is not defined

> 1 | import {
    | ^
  2 |       Activity,
  3 |       ActivityTypes,
  4 |       Attachment,

  at eval (eval at Object.<anonymous> (**_node_modules/botframework-connector/src/index.ts:1:2_**), <anonymous>:3:13)
  at Object.<anonymous> (node_modules/botframework-connector/src/index.ts:1:213)
  at Object.<anonymous> (node_modules/botbuilder/src/botFrameworkAdapter.ts:10:1)
  at Object.<anonymous> (node_modules/botbuilder/src/index.ts:9:1)
  at Object.<anonymous> (src/adaptors/AdaptorAzure.ts:1:1)
  at Object.<anonymous> (src/Bot.ts:4:1)
  at Object.<anonymous> (src/index.test.ts:2:1)

[bug]

on v4.1.7 works perfectly!

Fixed in 4.5. Tested to confirm.

I confirm. It is fixed. Thank you


SSL Documentation + Wiki

I finally swapped my mailserver over to docker-mailserver last night and while getting my ssl cert setup I noticed a handful of spots where both the documentation and wiki could be updated.
Later today I'll submit a PR with the changes.

Perhaps you can add some information about letsencrypt and the correct hostname. I got some problems with it in issue #184

It's already in the documentation: https://github.com/tomav/docker-mailserver/wiki/Configure-SSL

the certs folder name located in letsencrypt/live/ must be the fqdn of your container responding to the hostname command.

I've never worked with github's wiki before. Is there a way to clone it locally and edit it, or does everything need to be done via the web ui?

https://github.com/tomav/docker-mailserver.wiki.git

My searching tells me its not possible, but I wanted to verify.
Is there no way to make a PR again the wiki?

Wiki can be directly modified using your browser. Do not hesitate to improve it.


Prevent default Content-Type header (Reddit API)

I'm trying to connect to the Reddit API using superagent. However the Reddit API does not allow Content-Type in the headers. I am only setting Authorization but superagent seems to be setting it's own default headers which I can't seem to unset.
request.post('https://www.reddit.com/api/v1/access_token')
  .send(data)
  .set('Authorization', `Basic ${authCode}`)
  .then(res => {
    console.log(res.body)
  })
  .catch(error => {
    console.error(error)
  })

Failed to load https://www.reddit.com/api/v1/access_token: Request header field Content-Type is not allowed by Access-Control-Allow-Headers in preflight response.
Reddit allows:
access-control-allow-credentials: false
access-control-allow-headers: Authorization
access-control-allow-methods: POST
access-control-allow-origin: *

We're aware of the problem. Maybe you could help with this issue? #1362

dup of #1362


feat: Add aliases for the @once schedule interval

closes: https://github.com/meltano/meltano/issues/7761

@tayloramurphy It's a GitHub limitation. Auto-closing of linked issues only works for PRs that are merging into the default branch, which is main for this repository. We have been closing issues that are linked to PRs that merge into cloud manually.

@WillDaSilva ah ok. If possible it would be good to have folks make the link so it shows up more clearly in the engineering board, but I understand this will be generally solved come GA time.


Date.parse doesn't work in certain browsers

Date.parse does not work for certain dates in Firefox, but does in Opera and Chrome. For example, the following code produces a parse error in Firefox, but works in Chrome:
import Html exposing (text)
import Date

main = text <| toString <| Date.fromString "2018-02-24UTC"

I tried the code in the online Elm editor and as said in OP, it is different results in FF and Chrome:
FF: Err "Unable to parse '2018-02-24UTC' as a date. Dates must be in the ISO 8601 format."
Chrome: Ok <Sat Feb 24 2018 01:00:00 GMT+0100 (CET)>
According to the standard, FF is correct, the date in the example is not a correct date.

It is getting removed from core in the next release. It will be replaced by parsers written in Elm for various formats such that we have guaranteed reliability.


WIP: space swapping functionality

A very experimental implementation of #549

Instead of looping though all the windows and calling space_manager_move_window_to_space it would be way more efficient to move them all at once:
static bool move_all_windows(uint32_t *window_list, int window_count, uint64_t sid)
{
    if (!window_list) return false;

    debug("%s: %d -> %lld\n", __FUNCTION__, window_count, sid);
    CFArrayRef window_list_ref = cfarray_of_cfnumbers(window_ist, sizeof(uint32_t), window_list_count, kCFNumberSInt32Type);
    SLSMoveWindowsToManagedSpace(g_connection, window_list_ref, sid);
    CFRelease(window_list_ref);

    return true;
 }

Regarding views, they are mapped in the view table by their sid (space id). The view struct also contains the sid and suuid as they are returned as attributes through the query system.
Managed windows are mapped to the view struct belonging to the space they are managed at.
A proper swap would look something like the following:
    struct view *a_view = table_find(&g_space_manager.view, &a_sid);
    struct view *b_view = table_find(&g_space_manager.view, &b_sid);

    table_remove(&g_space_manager.view, &a_view->sid);
    table_remove(&g_space_manager.view, &b_view->sid);

    uint64_t tmp_sid = a_view->sid;
    CFStringRef tmp_suuid  = a_view->suuid;
    a_view->sid = b_view->sid;
    a_view->suuid = b_view->suuid;
    b_view->sid = tmp_sid;
    b_view->suuid = tmp_suuid;

    table_add(&g_space_manager, &a_view->sid, &a_view);
    table_add(&g_space_manager, &b_view->sid, &b_view);

    // swap labels..

    // refresh space if visible, else flag as invalid to force refresh upon next activation

I haven't looked at the actual swapping logic yet for situations where there are multiple spaces remaining.

Finally getting around to looking at this, this is all really good info, thanks :]. Am I right in assuming nothing should have to be done with window_manager?

Yeah, all window state should be fine as is, as long as the space structures are swapped correctly.

I've been using this in the form I just pushed, and it's been very satisfyingly stable. Swapping all the windows and config between spaces seems just generally far less error-prone than moving spaces between displays.

This seems like a great feature, any update on considering merging this to master?

rebased again.

Any update on this feature?

Implemented on master:

--switch <SPACE_SEL>

The selected space will always be the currently focused space.
The given space becomes the active space of the focused display regardless of which display it belongs to.
If the selected space and the given space belong to different displays, this behaves like --swap.
If the selected space and the given space belong to the same display, this behaves like --focus.
System Integrity Protection must be partially disabled.

There is no window --switch .. command, however it would just need to chain the following:
yabai -m window --space 5 && yabai -m space --switch 5`


bluebuild rebase fails with error message when using podman:  Missing ostree.final-diffid

Running sudo bluebuild rebase ./recipes/recipe.yml results in the following error.
Rebasing onto images built via the github workflow work just fine.
[21:57:40 TRACE blue_build::commands::local:153] => rpm-ostree rebase ostree-unverified-image:oci-archive:/etc/bluebuild/bazzite-dkub.tar.gz
Pulling manifest: ostree-unverified-image:oci-archive:/etc/bluebuild/bazzite-dkub.tar.gz
error: Preparing import: Fetching manifest: Parsing manifest layout: Missing ostree.final-diffid sha256:12787d84fa137cd5649a9005efe98ec9d05ea46245fdc50aecb7dd007f2035b1
[21:57:57 ERROR blue_build::commands:36] => Failed:
  × Failed to rebase to bazzite-dkub

Repo I'm building from: https://github.com/dkolb/bazzite-dkub
Confirmed this is a podman specific issue by installing docker and running sudo bluebuild rebase -vv -B=docker ./recipes/recipe.yml.
[16:49:42 INFO  blue_build_process_management::drivers::docker_driver:338] => Successfully built image /etc/bluebuild/bazzite-dkub.tar.gz
[16:49:42 INFO  blue_build::commands::build:259] => Finished building:
    - /etc/bluebuild/bazzite-dkub.tar.gz
[16:49:42 INFO  blue_build::commands::local:151] => Rebasing image bazzite-dkub
[16:49:42 TRACE blue_build::commands::local:153] => rpm-ostree rebase ostree-unverified-image:oci-archive:/etc/bluebuild/bazzite-dkub.tar.gz
Pulling manifest: ostree-unverified-image:oci-archive:/etc/bluebuild/bazzite-dkub.tar.gz
Importing: ostree-unverified-image:oci-archive:/etc/bluebuild/bazzite-dkub.tar.gz (digest: sha256:9ba42c16d1050bab55a7f31aef27f52c8bcb91345e9eda2faee4cbfcc943e298)
ostree chunk layers already present: 72
custom layers needed: 10 (789.9 MB)
Fetching layer sha256:096521cb9543 (421 bytes)... done
Fetching layer sha256:20a81adf7440 (56.7 MB)... done
Fetching layer sha256:6f5f451934c5 (2.1 kB)... done
Fetching layer sha256:ca21fcd33873 (484.2 MB)... done
Fetching layer sha256:675f4235b360 (5.2 kB)... done
Fetching layer sha256:b7676258e2c7 (249.1 MB)... done
Fetching layer sha256:737c4c5724ba (1.0 kB)... done
Fetching layer sha256:a6fe357f9adf (4.0 kB)... done
Fetching layer sha256:f7a5f5be3971 (596 bytes)... done
Fetching layer sha256:5bd1f8fc75f7 (188 bytes)... done
Checking out tree 18847c0... done
Inactive requests:
  docker-ce (already provided by docker-ce-3:27.3.1-1.fc41.x86_64)
  docker-compose-plugin (already provided by docker-compose-plugin-2.29.7-1.fc41.x86_64)
  containerd.io (already provided by containerd.io-1.7.22-3.1.fc41.x86_64)
  docker-buildx-plugin (already provided by docker-buildx-plugin-0.17.1-1.fc41.x86_64)
  docker-ce-cli (already provided by docker-ce-cli-1:27.3.1-1.fc41.x86_64)
Staging deployment... done
Freed: 205.8 MB (pkgcache branches: 0)
Changes queued for next boot. Run "systemctl reboot" to start a reboot
[16:50:39 INFO  blue_build::commands::local:160] => Successfully rebased to bazzite-dkub

Trying things out myself. Have you tried clearing out any .tar.gz files in /etc/bluebuild/? That's where we move the bootable tarball

Ok so even though it took an insanely long time for it to build for me (one of the reasons this command is being replaced with switch #116  in v0.9.0), I was still able to rebase on my image. I'll try once more with yours and see if I get the same result as you.

Ok yeah, your build has to be doing something weird cause I get that exact same error. Could it be something with the post-build script you have?

I dropped the script entirely and I'm still getting the error.
I cut back the recipe modules to just
modules:
  - type: signing

And it still gives the same error. Very strange.

I've cleared out the tarball each time, also. Weird. I know you're planning a replacement for this so I'm not sure we should spend too much time on it. I'll look into seeing if switch works better.
/etc/bluebuild ro > file *.tar.gz
bazzite-dkub-buildah.tar.gz: POSIX tar archive
bazzite-dkub-docker.tar.gz:  POSIX tar archive
bazzite-dkub-podman.tar.gz:  POSIX tar archive
/etc/bluebuild ro > sha256sum *.tar.gz
02547b1c2ac734b875598f6e6c2008ec86e2da631e8166b4bcb680e844240423  bazzite-dkub-buildah.tar.gz
c0686dc00afab572fa16811451e9fa7b44bba13d2ec139671e74adacf4d80c50  bazzite-dkub-docker.tar.gz
945cdc3405bc68d0ccd799627ec7ab6a68baf1a3ef7f984aa2eaf7bb984dc062  bazzite-dkub-podman.tar.gz
/etc/bluebuild ro took 20s > ls -l *.tar.gz
-rw-r--r--. 1 root root<PHONE_NUMBER>8 Nov 11 23:20 bazzite-dkub-buildah.tar.gz
-rw-r--r--. 1 root root<PHONE_NUMBER> Nov 11 23:22 bazzite-dkub-docker.tar.gz
-rw-r--r--. 1 root root<PHONE_NUMBER>8 Nov 11 23:14 bazzite-dkub-podman.tar.gz
/etc/bluebuild ro > ls -lh *.tar.gz
-rw-r--r--. 1 root root  12G Nov 11 23:20 bazzite-dkub-buildah.tar.gz
-rw-r--r--. 1 root root 4.6G Nov 11 23:22 bazzite-dkub-docker.tar.gz
-rw-r--r--. 1 root root  12G Nov 11 23:14 bazzite-dkub-podman.tar.gz

Interesting that buildah/podman produce images three times the size of docker along with the build process being much, much slower. Anyway, I'm building on github and have docker installed so I can use it when I need to. Just strange that it's borked for this one build. Lol.

I'm pretty sure this is a problem somewhere upstream.
~/tmp > cat Containerfile
FROM ghcr.io/ublue-os/bazzite-gnome:stable
RUN cat 'testfile' > /testfile && ostree container commit

~/tmp > sudo podman build -t localhost/bazzite-custom:local .
STEP 1/2: FROM ghcr.io/ublue-os/bazzite-gnome:stable
Trying to pull ghcr.io/ublue-os/bazzite-gnome:stable...
Getting image source signatures
Checking if image destination supports signatures
Copying blob 0724e1c33116 done  11.9MiB / 11.9MiB (skipped: 8.8KiB = 0.07%)
Copying blob 0724e1c33116 done  11.9MiB / 11.9MiB (skipped: 8.8KiB = 0.07%)
Copying blob 0724e1c33116 done  11.9MiB / 11.9MiB (skipped: 8.8KiB = 0.07%)
Copying blob 0724e1c33116 done  11.9MiB / 11.9MiB (skipped: 8.8KiB = 0.07%)
Copying blob 73ca0ed05138 done   |
<CUT>
STEP 2/2: RUN cat 'testfile' > /testfile && ostree container commit
COMMIT localhost/bazzite-custom:local
--> 3d4e6f92835a
Successfully tagged localhost/bazzite-custom:local
3d4e6f92835a46ffd5860b66a906d5ada9746b30e789ed7f07912d6faba167dc
~/tmp took 5m13s > sudo rpm-ostree rebase ostree-unverified-image:containers-storage:localhost/bazzite-custom:local
[sudo] password for dkub:
Pulling manifest: ostree-unverified-image:containers-storage:localhost/bazzite-custom:local
error: Preparing import: Fetching manifest: Parsing manifest layout: Missing ostree.final-diffid sha256:12787d84fa137cd5649a9005efe98ec9d05ea46245fdc50aecb7dd007f2035b1

We can probably close this issue out.

Per some comments in the Universal Blue discord, buildah/podman images have to be pushed to a registry and then pulled back by rpm-ostree/bootc even if local.
podman run -d -p 5000:5000 --name local-registry registry:2

I'll test this later this week and let you know, but it is still wild your build works and mine doesn't work even for the absolute minimum build.

Per some comments in the Universal Blue discord, buildah/podman images have to be pushed to a registry and then pulled back by rpm-ostree/bootc even if local.
podman run -d -p 5000:5000 --name local-registry registry:2

I'll test this later this week and let you know, but it is still wild your build works and mine doesn't work even for the absolute minimum build.

My image is based on the normal bazzite image instead of the bazzite-gnome image. Maybe that has something to do with it?

Interesting that buildah/podman produce images three times the size of docker along with the build process being much, much slower. Anyway, I'm building on github and have docker installed so I can use it when I need to. Just strange that it's borked for this one build. Lol

Is it really that bad?? Podman/Buildah must not be handling RUN volume mounts the same way that Docker is

Is it really that bad?? Podman/Buildah must not be handling RUN volume mounts the same way that Docker is

From my above comment:
/etc/bluebuild ro > ls -lh *.tar.gz
-rw-r--r--. 1 root root  12G Nov 11 23:20 bazzite-dkub-buildah.tar.gz
-rw-r--r--. 1 root root 4.6G Nov 11 23:22 bazzite-dkub-docker.tar.gz
-rw-r--r--. 1 root root  12G Nov 11 23:14 bazzite-dkub-podman.tar.gz

I did a ton of digging and testing and I was unable to get podman/buildah to create an OCI Archive of the same size as Docker. Even when using squash, it seems like it doesn't help. I don't think I can fix it from the BlueBuild CLI so I would just suggest using Docker for creating smaller archives for now. If you find a way to get the size down, I would be more than happy to implement it!

Back to the original issue, it's unique to images built from bazzite at the moment. I've opened ublue-os/bazzite#1892

Really? My images are based on Bazzite. I don't seem to have that issue.

Closing this as an upstream issue


[GitHub Actions] make base image in integration tests configurable through workflow_dispatch input

Is your feature request related to a problem? Please describe.
The base image is not configurable now.
Describe the solution you'd like
Add a "base image" column in the following UI

to configure the base image here
Describe alternatives you've considered

Additional context
https://github.com/astronomer/astronomer-providers/pull/991#pullrequestreview-1401116655
Add any other context or screenshots about the feature request here.

@pankajkoti But I just found out that we might not be able to downgrade the image on astro. (e.g., we're now on 8.0.0, and we cannot use 7.4.2)
In job<PHONE_NUMBER>, we received error message Invalid deployment runtime version cannot downgrade to: 7.4.2 from: 8.0.0-alpha1
Do you think we still need it? Or is this behavior only happens in astro breaking change?

yes, it would help us validate our master DAG when new runtime image RCs are out (to test newer versions of Airflow). If we have this, we could just trigger the deployment from the workflow_dispatch with the main branch itself instead of creating a new branch with the required base image and then triggering from that branch.
And your point regarding downgrading is correct, Astro does not support downgrading runtime images. This will help us only when we want to bump it to test new alphab/beta/RC versions

And your point regarding downgrading is correct, Astro does not support downgrading runtime images. This will help us only when we want to bump it to test new alpha/beta/RC versions

Does that mean it's ok for us to jump between 8.0.1-alpha1 and 8.0.0? Otherwise, if we can not change the base image back, wouldn't that be a problem?

I am not sure if Astro allows minor versions downgrade. The problem you're mentioning  we have today as well when we trigger from a branch with newer version committed in it. Once we bump, we cannot downgrade.
Today, we are not able to deploy back 7.4.2 as we already deployed 8.0.0alpha1.
Let's discuss and gather opinions on this in our standup today 🙂

I think we don't need this. Every upgrade should be tracked in git and we should deploy it from a git branch. So closing this.


Method which maps a 2D image to a 3D polygon mesh "ImageMesh"

This issue shall integrate the future solution to Issue #6 in "guessing" the surface of an image as a 3D polygon mesh composed of triangles, and then use OpenGL or a Python wrapper thereof such as moderngl to render the 3D mesh.
Progress: Developing a 3D convex hull algorithm to image pixel intensity matrices to achieve this kind of mapping to 3D

This method is being introduced in version 2.0 of voxelmap.


[DONT MERGE TO MAIN]
this is where deployments are initiated. We build in new-docs and when we want to deploy we merge cf-pages to it

@khairulhaaziq can you help with the build failiing? I cant check the log on Cloudflare 😅 (dont have the permission)

@khairulhaaziq  Im wondering why don't we merge this into main? I find it quite difficult to update docs, and develop at the same time.. And also if someone found typo or error on docs they have no direction how to contribute.
Im thinking merging this to main, and I can write a script using https://github.com/cloudflare/pages-action to handle the Direct Upload based on our use case


Computed state not detecting spring state update

When using a computed state with a spring dependency the computed state will not update depending on the location of the script.
The reproduction is simple.

You create a base state of any starting value (starting value 0 for this demonstration)
Create a spring with the source state as that base state (any spring properties)
Get that spring value inside a computed state
Use the computed state as a UI object property
Set the base state value to 1

You will witness the computed state only update once with 0.
If you remove the spring from the reproduction steps and use the base state as an input to the computed state everything will work properly.
Revert the changes made to the reproduction steps to see things not work anymore.
Move the localscript to be inside of the screengui under startergui.
Run the code again and see everything work properly without changing the underlying code.
The reproduction will not work when the script is parented under startergui before runtime.
Here is the barebones reproduction project
I will try to resolve this issue myself in the meantime.

I do see some similar bugs /or new features related to the :get() method.
I'm not sure if these are related.
If this isn't a bug or its an already know bug let me know thanks.

I believe the new version of fusion has fixed this issue actually.
The version I was using was the alpha-release version.
There has been a lot of new features released since I last looked that I quite like.
Sorry for the false-report and keep up the great work!


Donations?

Hi MJ, I don't see any obvious way to contribute a donation to this project, nor can I find any way to contact the owners outside of filing an issue here. Is there a link I missed somewhere?

Oof, I missed the "Discussions" page. Closing, as this isn't an really an Issue.

Wiki mentions how to you can contact the developers to ask questions about KTX. Discussions are OK (#406), but I'm also pretty active on the libGDX Discord on the #kotlin channel.


Refresh the catalog when bootstrapping the broker

If you leave etcd running it will build up a catalog of services from every bootstrap that has been run in the past. Since it's likely we will be provided etcd in an environment, we don't want bootstrap to only pull from what's currently in etcd, but to update etcd to the latest set of images in the docker registry.

Closed by PR #221


show only recent-files when calling find_files

My project has a lot of files (1000+) and i have a delay until load the first screen, and then, i can't select the recent.
Is possible to show only recent files and just search when i type something?

So your idea is to only start the search as soon as you type any letter?
Sounds like an interesting idea, but here are some problems to this:

It is hard to check, if the cached files (or in general menu options) still exist. What would happen, when you select a non existing option?
In the current design, only the scoring is adjusted based on recency. Creating new items is not supported (currently), but would be needed for this to work.
It would just defer the loading time until the first letter is typed in, if implemented in an naive way.
I think that this is mostly related to this single problem: finding files. Or did you notice any usability concern in other pickers?
As this plugin aims to be as general as possible, it might be better to address this using a dedicated find files plugin.

Regarding find_files in your project, ignore irrelevant files, e.g. by using a .rgignore file.
Let me know your thoughts on this!

So your idea is to only start the search as soon as you type any letter?

Yes

It is hard to check, if the cached files (or in general menu options) still exist. What would happen, when you select a non existing option?

Good point, i think for each item, verify if still exists, if not, don't show.  The default history size is 10, i think is viable, right?

In the current design, only the scoring is adjusted based on recency. Creating new items is not supported (currently), but would be needed for this to work.

i didn't understand that

It would just defer the loading time until the first letter is typed in, if implemented in an naive way.

ok

I think that this is mostly related to this single problem: finding files. Or did you notice any usability concern in other pickers?

For me, just on find_files, it has so much files in my project and if take a few milliseconds to stop loading and i use all the time.

About the issue, i thing the power of find-files would be increased a lot with this.  It could even be used to switch between recent files

It is hard to check, if the cached files (or in general menu options) still exist. What would happen, when you select a non existing option?

Good point, i think for each item, verify if still exists, if not, don't show. The default history size is 10, i think is viable, right?

For files, this would be no problem. But there is no generic way to do this without invoking the actual finder.

In the current design, only the scoring is adjusted based on recency. Creating new items is not supported (currently), but would be needed for this to work.

i didn't understand that

The current architecture is like this: Finder creates items (in this case files) with some scoring, this plugin looks up each item and adjusts the scoring to prefer more recent items. So, without invoking the finder, this plugin currently can't do anything.

About the issue, i thing the power of find-files would be increased a lot with this. It could even be used to switch between recent files

I understand, that this functionality would be nice. But a dedicated plugin for finding files would be the more appropriate solution in my opinion. (I also use a dedicated plugin for this sometimes, like this: https://github.com/danielfalk/smart-open.nvim but it is also not ideal for large projects)

It is hard to check, if the cached files (or in general menu options) still exist. What would happen, when you select a non existing option?

Good point, i think for each item, verify if still exists, if not, don't show. The default history size is 10, i think is viable, right?

For files, this would be no problem. But there is no generic way to do this without invoking the actual finder.

In the current design, only the scoring is adjusted based on recency. Creating new items is not supported (currently), but would be needed for this to work.

i didn't understand that

The current architecture is like this: Finder creates items (in this case files) with some scoring, this plugin looks up each item and adjusts the scoring to prefer more recent items. So, without invoking the finder, this plugin currently can't do anything.

About the issue, i thing the power of find-files would be increased a lot with this. It could even be used to switch between recent files

I understand, that this functionality would be nice. But a dedicated plugin for finding files would be the more appropriate solution in my opinion. (I also use a dedicated plugin for this sometimes, like this: https://github.com/danielfalk/smart-open.nvim but it is also not ideal for large projects)

this smart open is exactly what i was looking for, thank you!

tried for a couple of hours smart open and the search is not very efficient for me.  Still searching for a solution to not show the results until start to search

Sorry that smart open is not the solution for you.
However, I currently see no generic and convenient way to integrate such functionality into this plugin.
If you have a concrete idea to build this, feel free to share it here or create a pull request.
I will close this issue here for now.


Is there a reason TEXT is not accepted in MySQL?

Is there a reason why TEXT is not in the org.yorm.util.DbType? Leading to the error There is no DbType for sqlType:-1
P.S. I'm very excited by the prospect of a record-based ORM In java

Good point, indeed there is no reason no to have TEXT. It's been merged as part of release 0.0.5, it will be shortly deployed in Maven Central, thanks for asking!


Support key-only iteration

It's unclear from the documentation whether key-only iteration is supported.
For example, in an Iterate(func(recordId []byte, r record.Record) error function call, does the r variable contain a facade that will lazy-load the value, or is the value already loaded?
In the underlying storage engines, key-only iteration is specifically called out as a first class use case (because it's so important, especially for Badger), so I think that makes sense to also document and support in a higher level library like this.

Currently, both the key and the value are fetched from the storage, though the value isn't decoded until it's scanned by the user.
When running a Select for example, the Record returned by the storage is just a []byte alias called record.EncodedRecord.
Regarding key-only iteration and how it would be integrated in Genji, I think this can be a good optimisation for cases where only the primary key is used in the WHERE clause.
Examples:
// fetch key only
db.Query("SELECT id FROM user WHERE id > 10")

// fetch key only because only the id is used in the where clause
db.Query("SELECT id, name FROM user WHERE id > 10")

// fetch both key and value
db.Query("SELECT id, name FROM user WHERE age > 18")

Then when iterating on the results:

SELECT id -> only use the key
SELECT id, name -> lazily fetch the value

Closing this as we are now lazily reading the value from the store, it is only read if we need to access to one of the fields.


Swipe away should be possible immediately

Expected behavior

Tap image and it opens up in SimpleImageViewer
Swipe away immediately to close again

Actual behavior

Tap image and it opens up in SimpleImageViewer
It does not react to swipe gestures right away. It takes more than 1s. Also X button to close takes some time to appear

I do not think this is a performance issue. This can be improved by changing the implementation.

Hi! The delay you are experiencing is caused by the presentation transition which takes 0.5 seconds and is currently not interactive or cancellable. I personally think a transition of half a second is acceptable and I can’t think of a reason why a user would want to dismiss the vc before it’s even finished presenting. A simple solution might be to make the transition duration configurable ;)
Well, that’s how I think about it. Feel free to create a PR with improvements ;)

I understand!

A simple solution might be to make the transition duration configurable ;)

This would be a great solution for me! Can you make this possible?

hi. im finding solution to make swipe image, that mean we can view a list of image instead of single


feat: support matrices and stdout for all output types

Support stdout for all output types via the new --stdout flag
Allow passing --file_key, --output, or --matrix (or any combination of the three)
Prepends the comment to the header for all file types
Support multiple --file_key and --output arguments

Fixes https://github.com/rapidsai/dependency-file-generator/issues/46
Enables the dependencies.yaml changes in this branch.
Example generating requirements.txt:$ rapids-dependency-file-generator --output requirements -f py_build_cudf -f py_run_cudf --matrix "cuda=11.8;arch=$(uname -m)" --stdout# This file is generated by `rapids-dependency-file-generator`.# To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`.cmake>=3.23.1,!=3.25.0cython>=0.29,<0.30git+https://github.com/python-streamz/streamz.git@masterninjanumpy>=1.21,<1.24protoc-wheelpyarrow==11.0.0.*rmm-cu11==23.6.*scikit-build>=0.13.1,<0.17.2# This file is generated by `rapids-dependency-file-generator`.# To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`.--extra-index-url=https://pypi.nvidia.comcachetoolscubinlinker-cu11cuda-python>=11.7.1,<12.0cupy-cuda11x>=12.0.0fsspec>=0.6.0numba>=0.56.4,<0.57numpy>=1.21,<1.24nvtx>=0.2.1packagingpandas>=1.3,<1.6.0dev0protobuf>=4.21.6,<4.22ptxcompiler-cu11pyarrow==11.*rmm-cu11==23.6.*typing_extensions
Example generating pyproject.toml$ rapids-dependency-file-generator --output pyproject -f py_build_cudf -f py_run_cudf --matrix "cuda=11.8;arch=$(uname -m)" --stdout# This file is generated by `rapids-dependency-file-generator`.# To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`.# Copyright (c) 2021-2023, NVIDIA CORPORATION.[build-system]build-backend = "setuptools.build_meta"requires = [    "cmake>=3.23.1,!=3.25.0",    "cython>=0.29,<0.30",    "ninja",    "numpy>=1.21,<1.24",    "protoc-wheel",    "pyarrow==11.0.0.*",    "rmm-cu11==23.6.*",    "scikit-build>=0.13.1,<0.17.2",    "setuptools",    "wheel",][project]name = "cudf-cu11"version = "23.6.0"description = "cuDF - GPU Dataframe"readme = { file = "README.md", content-type = "text/markdown" }authors = [    { name = "NVIDIA Corporation" },]license = { text = "Apache 2.0" }requires-python = ">=3.9"dependencies = [    "cachetools",    "cubinlinker-cu11",    "cuda-python>=11.7.1,<12.0",    "cupy-cuda11x>=12.0.0",    "fsspec>=0.6.0",    "numba>=0.56.4,<0.57",    "numpy>=1.21,<1.24",    "nvtx>=0.2.1",    "packaging",    "pandas>=1.3,<1.6.0dev0",    "protobuf>=4.21.6,<4.22",    "ptxcompiler-cu11",    "pyarrow==11.*",    "rmm-cu11==23.6.*",    "typing_extensions",]classifiers = [    "Intended Audience :: Developers",    "Topic :: Database",    "Topic :: Scientific/Engineering",    "License :: OSI Approved :: Apache Software License",    "Programming Language :: Python",    "Programming Language :: Python :: 3.9",    "Programming Language :: Python :: 3.10",][project.optional-dependencies]test = [    "fastavro>=0.22.9",    "hypothesis",    "mimesis>=4.1.0",    "msgpack",    "pyorc",    "pytest",    "pytest-benchmark",    "pytest-cases",    "pytest-cov",    "pytest-xdist",    "python-snappy>=0.6.0",    "scipy",    "tokenizers==0.13.1",    "transformers==4.24.0",    "tzdata",][project.urls]Homepage = "https://github.com/rapidsai/cudf"Documentation = "https://docs.rapids.ai/api/cudf/stable/"[tool.setuptools]license-files = ["LICENSE"][tool.isort]line_length = 79multi_line_output = 3include_trailing_comma = trueforce_grid_wrap = 0combine_as_imports = trueorder_by_type = trueknown_dask = [    "dask",    "distributed",    "dask_cuda",]known_rapids = [    "rmm",]known_first_party = [    "cudf",]default_section = "THIRDPARTY"sections = [    "FUTURE",    "STDLIB",    "THIRDPARTY",    "DASK",    "RAPIDS",    "FIRSTPARTY",    "LOCALFOLDER",]skip = [    "thirdparty",    ".eggs",    ".git",    ".hg",    ".mypy_cache",    ".tox",    ".venv",    "_build",    "buck-out",    "build",    "dist",    "__init__.py",]

I think these changes are considered breaking because of the new stdout flag/behavior.
It will break test scripts like this: https://github.com/rapidsai/cudf/blob/72c067726ccfb6e87033d34ab07b4dc79b5e4a3e/ci/test_python_common.sh#L10-L14
@trxcllnt, can you add a BREAKING CHANGE note to your PR body as mentioned here https://github.com/rapidsai/dependency-file-generator/blob/main/CONTRIBUTING.md? That will make sure the next release increments the major version.
Our CI images pin to the current major version of dfg: https://github.com/rapidsai/ci-imgs/blob/cac1028880574b466ed37a4aec8aaf93d3eab0b2/Dockerfile#L117-L119
But we'll need a way to incrementally roll this out to each repository before we update the version in our CI images so that we don't break CI for everyone.
I thought about this in the past, but never took any action on it due to time constraints.
I think one way we can fix it is to add a new optional input, install_dfg_version, to the relevant shared workflows here: https://github.com/rapidsai/shared-action-workflows/tree/branch-23.06/.github/workflows.
install_dfg_version will be a version specifier for rapids-dependency-file-generator. When it's set, it will install the specified version. When it is not set, it will simply do nothing.
Then each repo can manually opt-in to the new major version. Once all the repos are using the new version, we can update the CI image version accordingly and then go back and clean up all of the optional install_dfg_version arguments in each repository.

@trxcllnt apologies for the delay in reviewing this PR. I propose that we we split this up so that the uncontroversial pieces can get merged quickly, if you're open to that.

I think everyone is happy with adding support for stdout to all file types (especially pyproject.toml)
My guess is that generalizing the CLI to support only passing a subset of arguments is probably uncontroversial in theory, but a bit more problematic because it's a breaking change. I know you said you and @ajschmidt8 had discussed that piece a bit further, and maybe there's a path forward there that involves refactoring the Python functionality and then using it in a new CLI? That would be another good option.
The project name/CUDA suffix piece will need some more debate, and I don't want to hold up you getting the other useful pieces in over that.

@trxcllnt would you like some help finishing this up? Let me know if you want to chat about it or need some extra person-hour help.

@trxcllnt @vyasr Can we get this PR to a completed state? It keeps biting us that we don't have pyproject matrix support. I can help with a review, if that's what is needed, but it seems like there is some code work to be done still.

Replaced by #74


Will this ever be supported on ChromeOS?

I want to develop an app that will work on Windows, Mac, Linux and ChromeOS. If ChromeOS is supported, this would be great!

Carlo is a framework for Node that provides is with rendering capabilities. As there is no Node on ChromeOS, it can't run there.

So, not gonna work with Crostini?

Hm, good question. Technically, we should be able to make it work with Crostini. All we need is a VM that runs Node there. Might require minor modifications to CrOS to reuse CrOS web content.

Maybe another little program could proxy to the native Chrome?

I actually presumed that ChromeOS support was one of the motivations for Carlo before seeing this. It seems wasteful that Electron apps running in Crostini are using a separate Chromium build when the whole OS is built around Chrome. If Carlo could bridge the gap between ChromeOS and Node running inside the Crostini VM then that seems like a really promising way to bring more complex apps to ChromeOS.


OTR: logical definitions for autophagy terms

(This is a placeholder)
Stemming from our discussion https://docs.google.com/document/d/1gtICfH3YQpnKbWqx2XI4JP5wlfp-6HxzWIQ1xFa8l9g/edit?ts=57cd86e9#
We will record our proposal here
NOTE: we'll need to run our proposal by some experts. Paul could take care of this when we're ready.
@ukemi @Pauldenny @marcfeuermann @RLovering

Attempt at definition of beginning of autophagy?
A process that begins with the selection of excess, damaged or redundant cytoplasmic parts; allows for both recycling of macromolecular constituents under conditions of cellular stress and remodeling the intracellular structure for cell differentiation and ends with the disassembly and digestion of the constituents.
Clumsy perhaps? But somewhere to start.

As added to agenda for tomorrow's call:
‘selection’ is a bit vague in GO speak, what could we replace it with? Also, should we quote ‘cell differentiation’ as an example in the def? “A process that begins with the [selection] of excess, damaged or redundant cytoplasmic parts; allows for both recycling of macromolecular constituents under conditions of cellular stress and remodeling the intracellular structure (including towards cell differentiation); and ends with the disassembly and digestion of constituents.”

I agree that the vagueness makes me uncomfortable. I think we need to have a mechanism for all of the steps. Speak tomorrow.

Added logical defs to a few terms. Reviewed all terms with Marc and Ruth.


window flickers on mac

My app has bursts of the app window flickering on mac. It looks like the whole window is not drawn for just a frame as you can very briefly see what ever is behind. It gets worse as the app works harder.  I see it on a late 2008 macbook pro and a user has reported it on a late 2012 macbook pro on Catalina 10.15.3

My app has bursts of the app window flickering on mac. It looks like the whole window is not drawn for just a frame as you can very briefly see what ever is behind. It gets worse as the app works harder. I see it on a late 2008 macbook pro and a user has reported it on a late 2012 macbook pro on Catalina 10.15.3

Hi, I have a similar problem with you.
window flickers,also on window,But not every time, and I'm curious as to why

Just checked on the current master. The flickering gets worse as you make the window larger, everything other than the top bar of the window flickers.  cpu use appears much higher on osx than other platforms and that appears to be connected to refreshing the screen rather than the rest of the app, I wonder if that is connected.

This is often caused by the render thread throwing exceptions. If you're on Visual Studio, you can see if this is happening by disabling "Just My Code". Is this happening for either of you? If so, exception details/stacktrace should help us diagnose it.

I managed to set "JustMyCode" to false in launch.json in vscode on my mac and got no exceptions whilst flickering. On windows I get no exceptions and no flickering.

would a repro help or is there an idea what the problem is?

This is often caused by the render thread throwing exceptions. If you were on windows/Visual Studio, you can see if this is happening by disabling "Just My Code" - not sure how to do it on a mac?
Is this happening for either of you? If so, exception details/stacktrace should help us diagnose it.

Hi,I have do it,but  i use event.when i close the winfow,.
protected override void OnClosing(CancelEventArgs e)
{
this.Hide();
base.OnClosing(e);
}

@kekekeks this repros in many OS X apps. Resizing etc. Is it possible to present ui when render hasn't yet completed? Btw it's worse with box shadows, but still happens without.

In my app the flickering gets worse the larger the window is. Below a certain size the flickering stops. It does feel like something is running out of time or resources during a frame.

@danwalmsley can we drop Metal-incapable systems? Metal itself is available from  OSX 10.11 and is strictly required starting from 10.14.

I think that limits it to 2012 macs and later, it would write of my freebe 2008 test machine but that is not strictly supported by 10.13 (minimum for netcore3) so I can't complain. It would mean dropping support for the some 2009 and all 2010 and 2011 machines. I don't know how may of these are still in use but they are still very useable. I don't recall any of my users mentioning anything pre 2012.

Wasabi and .net core only support officially 10.13+ so let's do it.

I'm looking for a quick tempory fix for this, I have a feeling/hunch that the problem may have appeared when the real fps went from 30 to 60 fps, I'll try a 30 fps render timer on osx but would welcome any suggestions/advice/guesses on any other work arounds as my app is currently not useable on mac

running with a 30fps render timer reduces this from almost continuous flicker when full screen to an occasional flicker. At 10fps I saw no flicker.

I can reproduce the same. Is there any workaround available already?

I use this in BuildAvaloniaApp() to reduce fps to 30 which helps, I tried turning gpu off but cpu was too high for my use.
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
            {
                var wp = builder.WindowingSubsystemInitializer;
                return builder.UseWindowingSubsystem(() =>
                {
                    wp();
                    AvaloniaLocator.CurrentMutable.Bind<IRenderTimer>().ToConstant(new DefaultRenderTimer(30));
                });
            }

            return builder;

I use this in BuildAvaloniaApp() to reduce fps to 30 which helps, I tried turning gpu off but cpu was too high for my use.
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
            {
                var wp = builder.WindowingSubsystemInitializer;
                return builder.UseWindowingSubsystem(() =>
                {
                    wp();
                    AvaloniaLocator.CurrentMutable.Bind<IRenderTimer>().ToConstant(new DefaultRenderTimer(30));
                });
            }

            return builder;

Hi man,.i use your code,On Debian, the feel is ok.
But still flicker occasionally, appear black back figure
This is a serious problem. I want to keep following up.

Hi @danwalmsley @kekekeks @grokys I tried recording some error log, but I didn't succeed.
When debugging with Rider and enabling debugging external code (https://www.jetbrains.com/help/rider/Debugging_External_Code.html) no exception or log output occurs.
When using Visual Studio for Mac with enabled exception tracking in external code I can't see any error either. But the app crashes very often after a few seconds with the flickering. macOS reports the following reason:
abort() called
dotnet(94980,0x70000f89f000) malloc: *** error for object 0x7fa06a098ca0: pointer being freed was not allocated

Can I enable any further logging to help debugging this issue? It would be great to fix this with the 0.10 release if possible.
Thank you!

@jenswet thanks for that useful information. Firstly be reassured, we will not be releasing without resolving this issue.
We have a strategy on how we are going to do it... but probably will prob take a few more weeks before we have something ready.
Not sure how to get more debugging... perhaps using either XCode or Intruments?

@danwalmsley Is there any option to enable logging for the render thread?
Thank you for including this issue in the plan for the next release!

Its a synchronisation issue... we are moving to use MTKView (https://developer.apple.com/documentation/metalkit/mtkview) to fix the issue.

Fixed!


Meta: roadmap

We should get some documentation around what the roadmap for Rusoto looks like.  Roadmap to 1.0, what's after that, etc...
Would be nice to get community involvement instead of Matt doing what he wants a la Ron Swanson.

Silence is deafening!


Adding a license

Hi Nik!
I just came across this and love the work you've done! I noticed it lacks a specified license, which can create legal uncertainties for users.
Would you consider adding a license from ChooseALicense.com to clarify the usage terms? It protects your work and encourages collaboration.
If you have questions or need help, feel free to ask. Thanks for your time!
Tom

I've added alicense


Fix several issues with finite types and allow the type test/guard with intersecting unions

Purpose
This PR introduces the following changes to finite types:

assignment to broader types

type FooBar "foo"|"bar";
type FooBarInt "foo"|"bar"|int;

public function main(string... args) {
    FooBar f = "foo";
    string s = f;

    FooBarInt f2 = 1;
    int|string i = f2;
}

type test/type guard support

import ballerina/io;

type X "foo"|"bar"|1|2.0|true;
type Y 1|2.0;
type Z "foo"|"bar";

public function main() {
    X x = "foo";
    io:println(xGuard(x)); // x is Z

    x = "bar";
    io:println(xGuard(x)); // x is Z

    x = 1;
    io:println(xGuard(x)); // x is Y

    x = 2.0;
    io:println(xGuard(x)); // x is Y

    x = true;
    io:println(xGuard(x)); // x is boolean
}

function xGuard(X x) returns string {
    if (x is string) {
        // intersection is "foo" or "bar"
        Z s = x;
        return "x is Z";
    } else {
        // x is 1|2.0|true
        if (x is Y) {
            // x is 1|2.0
            Y y = x;
            return "x is Y";
        } else {
            // x is true here
            boolean b = x;
            return "x is boolean";
        }
    }
}

casting

import ballerina/io;

type Foo "foo"|1;

public function main() {
    Foo f = "foo";
    string s = <string> f;

    int i = 1;
    Foo f2 = <Foo> i;
}

array access by finite type

import ballerina/io;

type Foo 1|2;

public function main(string... args) {
    int[] arr = [1, 2, 3];
    Foo f = 1;
    io:println(arr[f]); // 2
}

array/tuple access by union types with finite type

import ballerina/io;

const THREE = 3;
type Foo 0|1|THREE;

public function main(string... args) {
    int[] arr = [1, 2, 3, 4];
    Foo f = 3;
    int a = arr[f];
    io:println(a); // 4

    (int, string, float, boolean) tup = (1, "hello", 1.0, true);
    int|string|boolean b = tup[f];
    io:println(b); // true
}

This PR also allows the type test/type guard with intersecting union types. With the type guard, the type when the type test evaluates to true would be the intersection:
public function main() {
    string|int x = "hello";
    if (x is string|float) {
        string s = x; // x is string here
    } else {
        int i = x; // x is int here
    }
}

Fixes #13838
Fixes #13804
ToDo

[x] address the two ToDos introduced

Codecov Report

Merging #13931 into master will increase coverage by 0.05%.
The diff coverage is 86.46%.

@@             Coverage Diff              @@
##             master   #13931      +/-   ##
============================================
+ Coverage     64.56%   64.62%   +0.05%
  Complexity      426      426
============================================
  Files          2152     2155       +3
  Lines         95448    95746     +298
  Branches      12716    12791      +75
============================================
+ Hits          61628    61877     +249
- Misses        28812    28842      +30
- Partials       5008     5027      +19

Impacted Files
Coverage Δ
Complexity Δ

...ng/compiler/semantics/model/types/BFiniteType.java
92.3% <100%> (+2.3%)
0 <0> (ø)
:arrow_down:

...lang/compiler/semantics/analyzer/CodeAnalyzer.java
84.85% <100%> (+0.15%)
0 <0> (ø)
:arrow_down:

...e/src/main/java/org/ballerinalang/bre/bvm/BVM.java
82.06% <100%> (ø)
0 <0> (ø)
:arrow_down:

...lang/compiler/semantics/analyzer/TypeNarrower.java
94.2% <68.75%> (-3.34%)
0 <0> (ø)

...ng/compiler/semantics/analyzer/SymbolResolver.java
85.46% <80%> (-0.09%)
0 <0> (ø)

...g/wso2/ballerinalang/compiler/desugar/Desugar.java
92.09% <80%> (-0.04%)
0 <0> (ø)

...alang/compiler/semantics/analyzer/TypeChecker.java
86.42% <85.45%> (+0.13%)
0 <0> (ø)
:arrow_down:

...llerinalang/compiler/semantics/analyzer/Types.java
75.68% <87.87%> (+1.27%)
0 <0> (ø)
:arrow_down:

...allerinalang/test/util/client/ResponseHandler.java
65.38% <0%> (-15.39%)
0% <0%> (ø)

...va/org/ballerinalang/channels/ChannelRegistry.java
94.59% <0%> (-5.41%)
0% <0%> (ø)

... and 13 more

Continue to review full report at Codecov.

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

@MaryamZi Shall we create separate issues for each identified area to be improved?

@MaryamZi Shall we create separate issues for each identified area to be improved?

Created #14405, #14373, #14379