Autoroute is regenerated wrongly after editing a localized content

I added a LocalizationPart to a content type for which I modified the default autoroute pattern. I didn't check the option to use different patterns for different cultures because I wanted to use the same pattern for all cultures. When creating the content item the pattern was generated as I expected. Then I edited the content, I deleted the autoroute to force its regeneration, I saved and the result was different: the modified pattern was applied only to the contents with a culture corresponding to the site culture, but for the other cultures Orchard applied the {Content.Slug} pattern.
Steps to reproduce the issue:

Create a content type with an Autoroute Part and a Localization Part.
In the Autoroute Part settings check "Allow custom patterns", uncheck everything else and edit the default pattern into something different.
Create a content in a language different from the site language. The autoroute should be generated with the modified pattern.
Delete the autoroute from the content and save. The autoroute will be generated with the {Content.Slug} pattern.

As an alternative to steps 1 and 2 you can attach a Localization Part to a content type already defined like that, i.e. a Taxonomy Term or a Blog Post.
Looking at the AutorouteService, in the GetDefaultPattern method, this is intentional. Why such an approach was chosen? I think that a culture neutral pattern should be applied to all cultures, not only to the site culture.

Will look at it. Need to put back my head into it first.

So the problem here I think is that I hardcoded the {Content.Slug} pattern and we just need to make this using the default dynamic slug.

I did some tests and I found some other problems regarding the autoroute localization support:

The concept of culture neutral pattern is not present. Even if you don't check the "Use culture pattern(s)" option, the only editable pattern is saved with the current culture of the site.
When saving a content definition that contains an AutoroutePart it automatically generates a pattern (in the default {Content.Slug} format) for each language defined in the website settings that has no pattern associated. Those patterns are used by the GetDefaultPattern method even if the "Use culture pattern(s)" option is unchecked.
In the same scenario, if I modify the only editable pattern, only the pattern associated to the site culture is updated, while the other cultures still keep the {Content.Slug} pattern.
Some modules (i.e. Taxonomy) currently create in the Migration some patterns with null culture, but when the content definition is saved again they are migrated to the site culture.

The result is that if the "Use culture pattern(s)" option is unchecked the visible pattern is only applied to contents in the site culture, while all other contents use the {Content.Slug} pattern.
To solve this problem my suggestion is to:

Modify the GetDefaultPattern method in a way that uses the "Use culture pattern(s)" setting: if it's unchecked it searches first a pattern with culture null (for backward compatibility), then if it not exists it searches a pattern associated to the site culture. If neither exists it returns {Content.Slug}.
When the AutoroutePart settings are saved, if the "Use culture pattern(s)" setting is unchecked the updates to the only editable pattern are saved for all languages.

The concept of culture neutral pattern is not present. Even if you don't check the "Use culture pattern(s)" option, the only editable pattern is saved with the current culture of the site.

True, this is problematic because if we want to change the default culture of the website after having created content items ; then the default pattern will become the one set on that culture. And it could never have been customized. We need to have a null culture default pattern in that case. And it's been hardcoded wrongly as {Content.Slug} as far as I can remember.

Modify the GetDefaultPattern method in a way that uses the "Use culture pattern(s)" setting: if it's unchecked it searches first a pattern with culture null (for backward compatibility), then if it not exists it searches a pattern associated to the site culture. If neither exists it returns {Content.Slug}.

If we don't check "Use culture pattern" it should not try to get that localized pattern. It should just try to get the culture neutral pattern. We should instead set this culture neutral pattern to the current default pattern set in the default culture with a database migration.

When the AutoroutePart settings are saved, if the "Use culture pattern(s)" setting is unchecked the updates to the only editable pattern are saved for all languages.

If we always use the culture neutral pattern then we don't need to overwrite those custom patterns that we could want to reuse later on.

Seems a good idea. I can work on it in the next couple of days.

I'm closing as it is dated from 2016 and I think this is fixed.


Gitea: Add support for prometheus metrics

Including a servicemonitor would also be great for Prometheus Operator
Examples:
https://github.com/fluxcd/helm-operator/blob/master/chart/helm-operator/templates/servicemonitor.yaml
https://github.com/bitnami/charts/blob/master/bitnami/postgresql/values.yaml#L509

Gitea chart moved to gitea.com


Agustin March Challenge-3

Please check Evil Net Proposal, you could find
Entry Point: Evil-README.md

Arch Overview
Data Flow
Resource Footprint Analysis
Scalability Strategy
Docker compose that show case

tweets ingest
publish data to kafka
stream connection to kafka using spark
Jupyter Notebook

Please I could discuss about any technical decision I took.
Thanks

@nitsugahcram thank you for you submission, and for taking the time to do the technical challenge, and include scalability and resource analysis, as well as a couple diagrams to help us understand the flow.
Here's a few additional questions for you to answer if possible:

Is there any specific reason we are only looking for retweets that contain the words covid and vaccine ?
The challenge asks for 3 metrics that weren't captured in your challenge. While having the count of retweets containing covid and vaccine per language shows how stateful aggregations can happen over windows of time, it would be good if u can explain how would you achieve the 3 above metrics.
How would you test your current pipeline ?
How would you support reprocessing the last 1 hour data ?

I was able to follow the code and to build and run the application easily. Documentation makes it easy, so thanks for taking the time to put all this together in this way.
Question: I know this is not meant to run in production but I am really fan of tests, how would you validate your solution?

Is there any specific reason we are only looking for retweets that contain the words covid and vaccine ?

First of All, I had to inform this better in the PR, since the idea of the challenger is to measure Canadian cities by tweets This capability is not allow for non-pay api, set the place_country at the rule (https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/integrate/build-a-rule).  Using sample api, trying to capture tweets with place.fields (like country etc etc), that extra field not exist (or removed) in all tweets. Base on that, I try something more realistic using rules, the text were added since the rules required any text.
Note Twitter api v2 (no-pay - https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/quick-start), require to use rules (https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/integrate/build-a-rule) to fetch streams tweets. This change from the v1 that it was allow to fetch by tracks, etc.

The challenge asks for 3 metrics that weren't captured in your challenge. While having the count of retweets containing covid and vaccine per language shows how stateful aggregations can happen over windows of time, it would be good if u can explain how would you achieve the 3 above metrics.

Total tweets per city over 5 minutes

Streaming context is created. The messages would accumulate for 5 minutes and then get processed with a slice of 1minute.  Streaming Context receives tweet text, then convert to json,  filter Canadian tweets, shrink the msg to only key-value need (country,  city), maps each city to (city, 1), then reduces and counts the occurrence of each city, then persist to DB (update CITY, COUNT) .

Total of retweets per city over 5 minutes

Streaming context is created. The messages would accumulate for 5 minutes and then get processed with a slice of 1minute.  Streaming Context receives tweet text, then convert to json,  filter Canadian tweets, filter msg that are re-tweets, shrink the msg to keys(country/city), maps each city to (city, 1), then reduces and counts the occurrence of each city, then persist to DB (update CITY, COUNT) .

Count of active tweeters per city over 5 minutes The aggregated data should be made available for reporting with a retention of 1 day.

Streaming context is created. The messages would accumulate for 5 minutes and then get processed with a slice of 1minute.  Streaming Context receives tweet text, then convert to json,  filter Canadian tweets,  shrink msg to keys(country/city/user), remove duplicate by user, maps each city to (city, 1), then reduces and counts the occurrence of each city, then persist to DB (insert TIME, CITY, COUNT), then at view layer, aggregate by Time using SQL or something similar.

How would you test your current pipeline ?

I split this into

block logic (code):

Ensure the code is write as functions deterministic and idempotent
Encapsulate the code into a module and re-use the common functions.
for instance: Create python module  amaz-us.dataengineering, all data engine must use this module and increase the functionality.
Testing: I could say as Normal tests, those are executed to Validate code and logic before promotion to the next environment.

data quality:

Define Data Schema and enforce it.
Provide Metadata of the data flow.
Testing: I could say as runtime tests, those are executed in the data flow, to validate data quality, and transformation validation or other normal tests, to validate code and logic before promotion to the next environment.

Runtime: monitors metrics about data dimension as

errors
missing
lags
etc

How would you support reprocessing the last 1 hour data ?

Currently, I consider to two options.

Replay our data into Kafka from HDFS, Use  additional code, to push data to Kafka but use the same code base for a backfill.
Using unified Dataset API in Spark, Spark Could read as stream from storage, so that reusing the streaming code for a backfill operation.

@nitsugahcram closing this PR as you're already part of the team 😄


MenuItemImpl checked behavior

In an activity, if I perform an operation like:
val subMenu = navigationView.menu.findItem(R.id.monitored_apps).subMenu
subMenu.clear()
for(...) {
    subMenu.add(groupId, 0, index, name).setChecked( getIsChecked(name) )
}

then after selecting an item from the navigation view does not respect android:checkableBehavior="single"
i.e. The item checked programatically in the above code remains checked even when choosing a different item from the navigation view.
The result is that after selecting some item, there are total two items checked in the navigation view.

After that, if I go again to the navigation view and select some other item (other than the already two checked items), then there are total two items selected in the group, the programatically selected one, and the new item user has selected.

However, after that if the user selects the original item (the item that is already checked programatically), then the android:checkableBehavior="single" behavior is restored.
Furthur selections now respects android:checkableBehavior="single"

Expected behavior:
android:checkableBehavior="single" should be respected when an item is checked programatically


Whiteboard

Is your feature request related to a problem? Please describe.
Develop a whiteboard(collaborative) so that users can express their thoughts
Describe the solution you'd like
Add a button on the side panel to switch between editor and whiteboard. The whiteboard must-have options like pencil, creating shapes, eraser, erase all. This should be a collaborative whiteboard where users can see what other users in the room are drawing.

I would like to work on this issue. Will try to find out library to implement whiteboard or make it from scratch if needs


Group gets fully replaced when sync is used and group previously failed to load

When everything goes correctly:

If option 1 is used, the group on wom will match whatever is currently in the clan list
If option 2 is used, any users in the clan list not yet in the group are added to the group and any users in the clan list with a different rank/role have their rank/role updated on wom

However, the code for option 2 relies on the plugin having an up-to-date copy of the group as represented on wom; if this copy is not up-to-date or is missing (due to any kind of connectivity issue), option 2 becomes functionally identical to option 1.
The following code is responsible for this unexpected behaviour:
https://github.com/wise-old-man/wiseoldman-runelite-plugin/blob/ec4d95cf087a3fffc236eb4af9d93bd99c0fca3f/src/main/java/net/wiseoldman/ui/SyncButton.java#L137-L140
A simple workaround would be to check the size of groupMembers, if this is 0 then that can mean two things:

either there was an issue downloading a copy, in which case it would be better to abort than to proceed
or the group actually has 0 members, in which case option 1 would be semantically more accurate to be used anyway

Ideally though the endpoint used should be changed to use the POST variant (assuming that adding an existing member with a different rank, will update that member's rank): https://docs.wiseoldman.net/groups-api/group-endpoints#add-members


There are some printed messages

The pipeline prints messages when it should not use print at all.
The ones detected are in extraction in core.

All print were removed from core.py in #306


RFC: React Cross-Platform Strategy

to: @necolas
This is mostly in response to #31, but also just something I've been thinking about for some time, and is a proposal for a path to building a real production-quality ecosystem for building UI with React across multiple platforms in a single code base.
At the moment this isn't very easy, and there's no standard or agreed upon way to do it. React Native has been the closest thing to accomplishing this, with the two platforms being iOS and Android platforms (and others in the community sprouting up, such as windows, vr, etc.). Projects like react-primitives and react-native-web are attempting to solve this.
I think it's important to come at this with the angle of it not being just "React Native, but running in a web browser". Similarly, I think it's important to come at this thinking more than just "web" and "native", even if we don't know what all of the additional platforms will be. (Though we can make some educated guesses... Windows, VR, desktop, etc.)
I believe there are three main tenets that are needed to accomplish this:
Three Main Tenets
Tenet 1: Platform Extensions
Platform extensions, such as the ones allowed by the React Native Packager, are crucial to creating cross-platform code-bases. It allows for people to create consistent interfaces with different implementations, and make that transparent to the end user.
I believe we should take this convention a step further by creating a webpack resolver plugin that allows for the exact same resolution rules. Additional plugins for other bundlers such as rollup and browserify would also be ideal.
In addition, I'd like to standardize on a module-scoped package.json directive:  platformCascade
In an NPM module's package.json, a library author would be able to describe the proper cascade of platform extensions, and it would be scoped to every file inside of the package, but not in any dependencies.  An example platformCascade could be defined in this way:
"platformCascade": {
  "ios": ["ios", "native"],
  "android": ["android", "native"],
  "web": ["web"],
  "sketch": ["sketch"]
},

This allows library authors to define cascades that may not be mainstream (i.e., "sketch"), without it having to be standardized (and without causing unknown side-effects in other modules if that extension just happened to be there).
It is critical that this convention works outside of just the RN packager, as it will be required for this ecosystem to extend beyond just RN and the associated tooling.
Tenet 2: Primitives
In order for cross-platform to really work, we need to make a world where if someone wants to build a cross-platform UI component, they don't have to implement it n times for n platforms.  This requires at least a few building block components.

StyleSheet: Layout is critical to building dynamic UIs. There are lots of options for layout algorithms, but flex box makes a compelling choice. Yoga is a cross-platform flex box implementation that will likely be applicable to many platforms, and the algorithm is already available in all major web browsers (though with some problems still remaining). React Native's StyleSheet implementation is quite nice to work with, and works extremely well with React.
View: Basic rectangular view. Important for this to take into account layout (through style) as well as accessibility attributes, and the proper event hooks. The API that RN has chosen for view seems to do a pretty good job, and I suspect this is in large part due to the fact that RN was built with cross-platform in mind.
Text: Laying out text is vital to building UI, obviously.
Image: Sometimes you need to display Images in your UI.
Animated: It's important to make UIs dynamic and interactive. Animation is a critical component to this. The Animated API from React Native is a perfect candidate for this.  It is declarative, which makes it easier to decouple the API surface area from platform-specific implementation. It is also already has an implementation completely implemented in JavaScript that would work by default, while other "native" implementations could also be implemented with some effort w/ the same APIs.
Touchable: Touching/Pressing ends up being a fairly basic and essential form of interaction.
Platform: This is less of a primitive as much as it's a utility. Pragmatically speaking, it's often needed to do small statement-level switches between different platforms to configure things differently based on the underlying implementations.

We want to be careful in choosing these "primitives". We need enough to be able to build bigger more complex things, but need to keep it minimal enough so that it's reasonable to expect a new platform to be able to implement the full set of them.  I believe things like TextInput may be really important in terms of some platforms, but not others, and so should maybe not be a primitive. This will have to be defined over time, but I think being conservative at first is ideal.
To be honest, I'm actually not sure if I'm even confident about the primitives listed above. For instance, if we wanted to add a platform like "console" and create something like react-curses, it's not clear if Image or Touchable actually make sense.  These components were mainly chosen because after creating a fairly complete Component Library for Airbnb in React Native, I noticed that almost 95% of it could be implemented with just these primitives. The four that seem really clear to me are StyleSheet, View, Text, and Platform, but it's a balance.
  The idea behind the primitives is that they are the building blocks that other more useful things can be built. Perhaps mediocre versions of things that are general and purely implemented by primitives.
Some components will need to have custom platform-specific implementations that will ensure that they perform as good as they possibly can, but we must always have at least one implementation that only uses the primitives (or other higher-order components that themselves have a primitives-only implementation).
There's some obvious candidates for these components. Since we want to be able to share code between React Native and Web, most of the non-platform-specific APIs exported by React Native make obvious choices, but there are obviously lots more.
Proposal
I haven't really proposed anything yet, as much as I've just talked about what I think is important. Here comes the proposal. Please keep in mind that I'm hoping this just starts the conversation. More than anything I'm interested in feedback and seeing if my ideas align with yours.
At the end of the day, I think there'd be a lot of value in us working together, and this is one way I could see that happening while (i hope) serving each of our slightly different use-cases.
The first proposal would be to move/rename necolas/react-native-web to react-community/react-platform. Alternatively, we could deprecate it and start fresh.
react-platform would become a lerna monorepo. One of the packages in the repo would be react-primitives which would include the primitives mentioned above, with the optimal implementation (whether that's RNW's current implementation, or react-primitive's, or some combination of both).  The lelandrichardson/react-primitives repo would also be deprecated.
Various modules that have been written in react-native-web would be refactored to be their own package in the lerna monorepo. For instance, ScrollView and ListView would become react-platform-scrollview and react-platform-listview.
A convention I could see working for this monorepo is a folder structure like this:
- react-platform             // repo root directory
  - packages
    - {package-name}
      - {platform-name}
        {file}.js            // clear that files here are meant for {platform}
    {file}.{platform}.js     // optimized version for {platform}
    {file}.js                // fully cross-platform implementation

We could also export a "grab-bag" package which could just be react-platform, which essentially be what react-native-web currently exports (something that attempts to be API-compatible with RN). Of course, you could also keep react-native-web and just depend on all of the corresponding react-platform-* packages or whatever was needed and export them directly (which may actually make more sense?).
Questions & Answers

What packages belong in the react-platform monorepo?

Of course the whole point of this is for any library authors to also be able to publish cross-platform components/modules by only depending on react-primitives and other fully cross-plat dependencies.  So packages don't need to be part of the react-platform monorepo in order to be a primitive.
My thinking is that by something being in the monorepo, we are asserting that no matter what platform you are on (i.e., could be something obscure like "sketch"), we are guaranteeing that there will be at least one primitives-only implementation (functional, even if it's not optimal). Of course we will also have more optimized implementations in the case of the more popular platforms (namely, "native" and "web").

How would new platforms get introduced?

I'm still not 100% sure what the right answer here is. If we lived in a world where there were ~15 platforms and there was source code for each in this monorepo, the maintenance burden could start to get out of hand. On the other hand, the idea should be that a new platform need only implement the primitives, and everything else should "just work" (even if using the non-optimal cross-platform implementations).  My feeling is that the criteria ought to be something like:

An implementation for every primitive is reasonably complete
Someone is willing to be a point of contact for maintenance / issues / etc.

Does it have to look like React Native's API?

No, but it doesn't hurt if we follow an already existing API, and React Native's make the most sense, as most of them have already been built with cross-platform interfaces in mind.

Will this be maintainable?

Happo is a CI tool built to detect visual regressions by taking screenshots and diffing them. I've been working on getting happo working for iOS, Android, and Sketch as well.
I believe we should be able to create a bunch of minimal examples with the primitives stressing all of the corner cases of layout as well as styling (box shadows, borders, border radius, transforms, etc.).
We then get two things out of this:

We are able to detect visual regressions of the primitives and other components of the platform.
We are able to directly compare all of the platforms in a straightforward way.

This, in addition to standard stuff like tests, listing, etc. I think will give us a pretty good story in terms of maintenance.
Long Term
React Native
Although this wouldn't have to be an initial goal, I could eventually see implementations of various react native APIs moved into the react-platform repo instead of the react-native one. We have already talked about making RN core more modular and moving it into a similar repo structure. It might make sense for some of these things (like ListView, for example) to live outside of ReactNative as a lot of their optimizations are JS-level optimizations and could benefit all platforms.
Flexbox / Yoga
I know that Sebastian Markbage has been thinking about integrating layout into react for a long time. I think this would bode very well for the concept of "primitives" and also ensure that different platforms would be more consistent.  The main thing each platform would then have to provide would be a text measurement API. I'd like to add an emscripten pipeline to Yogo so that there is an optimized and consistent JS implementation of flex box that matches the native implementations.  You could also see Web Assembly as a target for Yoga in the long term as well.
Adoption
Imagine if today's most popular react-* and react-native-* libraries depended on react-primitives or react-platform-* packages instead of react-native or "host" DOM components like <div> and <span>.  Entirely new platforms could be born overnight by just implementing the primitives, and entire code bases could be made to target those platforms with just the changing the "platform" target of your JS bundler, and potentially implementing a couple of platform-specific interfaces where needed.

I look forward to your thoughts, and hope that we can find a time to talk about this more seriously if you are interested (perhaps next React Wednesday?)

Hey, thanks for sharing. This sounds good. Internally I've experimented with aliasing to react-platform and using ES6-aware bundlers…so this is very much along the same lines and encouraging. I'm currently getting react-native-web ready for a production test on mobile.twitter.com, and would like to write up some more detailed thoughts, feedback, and questions soon. (Maybe we can move this to a Google doc as they are easier to share and comment on? And I'd be happy to meet up at Airbnb/Twitter to talk and better understand what our teams need.)

I'm concerned about relying on flexbox for this cross-platform effort, because that tightly constrains the lower bound of a supported browser list in a way that will prevent many companies and users, including Airbnb, from adopting it.
While it's possible that in a few years, a lack of flexbox support won't be a problem, it is a problem now, and past history with browser versions suggests that we shouldn't count on that problem going away any time soon.

I'm concerned about relying on flexbox for this cross-platform effort, because that tightly constrains the lower bound of a supported browser list in a way that will prevent many companies and users, including Airbnb, from adopting it.

Fair enough. That's not really a problem for Twitter – I think the browser support matrix for both twitter.com and mobile.twitter.com includes only flexbox-supporting browsers.

@ljharb I believe the problem of browser support is what @lelandrichardson was referring to when he said

I'd like to add an emscripten pipeline to Yoga so that there is an optimized and consistent JS implementation of flex box that matches the native implementations

I don't know if we know how fast that implementation would be, the size, etc...but I feel like it'd be worth a try to get a decent polyfill across ie8/9/etc

Also, evidently this emscripten'd Yoga implementation now exists as of 2 days ago: https://github.com/facebook/yoga/tree/master/javascript

If we had a reliable and performant way to fully polyfill/transpile/compile a subset of flexbox (and easily prohibit/lint against whatever's not polyfilled) down to all ES5 browsers, that'd be plenty good enough I think. If we can include any ES3 browsers (like IE 8) I think we've got an unstoppable juggernaut of standardization going.

Awesome writeup @lelandrichardson!
These tenets are critical pieces of the dream of making one app work effortlessly on any platform. I would encourage you to emphasize one more tenet: feature detection over platform gating.
In a world with feature detection, we can encourage competition in the platform ecosystem. Take TouchID encryption, for a random example: if I assume that it is forever an iOS-only feature, I should put it behind a platform gate. But if we want other platforms to implement that awesome functionality, I would put it behind a feature check. Then Microsoft and Google can compete to implement it and get better-featured apps for their stores. (Plus, you'd need to implement that check anyways in order to properly support older iOS devices.)
I also think we should always support platform checks as an escape hatch. Just like how we allow escaping to native code in RN, there are tons of real world cases where we need to let the developers drop down and handle something in the DOM when they need to.
We could stimulate a ton of competition in the ecosystem: from camera features and other sensors, to GPU optimizations, home automation, VR, and native/OS navigation. If we want to live in a world where our portable code just works in more places, I think we should emphasize feature detection.

I would encourage you to emphasize one more tenet: feature detection over platform gating.

Interesting. This is a good point, and I haven't given it a lot of thought. This is kind of inline with something that @vjeux wrote up a while ago with deciding the right interfaces for RN. I can't find it right now, but the main point of it was we should try to match the web standard's specs first (ie, fetch, geolocation, etc.), but deviate if it's objectively not a good choice for a cross-platform API, and only then decide on a new one.
I'm not sure I fully understand how these principals apply to things like Touch ID which aren't web APIs. I know you just picked it as an example, but I'm not sure what the right way to share that would be.
How do you envision "encourage feature detection" being pulled into this proposal? Are you envisioning this as something instead of the Platform API?

I'm not sure I fully understand how these principals apply to things like Touch ID which aren't web APIs. I know you just picked it as an example, but I'm not sure what the right way to share that would be.

I specifically picked that example because it isn't a web API yet. Basically I'm suggesting that the JS app should check for presence of native features and opts in to them when available. Instead of specifying behavior for each platform, an app would specify behavior for cases where different native features are available.
Another practical example may be the camera. If I adopt a camera library in my app, I should check with the library to determine if there is a camera on the device, rather than assuming certain platforms have cameras. And I should check with the library to see if the camera has a LED, to determine if the flash buttons should appear. The standards web API may not support flash settings, but if my app checks with the library, then the library can later add LED support for new environments, even though the standards support lags behind.

How do you envision "encourage feature detection" being pulled into this proposal? Are you envisioning this as something instead of the Platform API?

I think the platform API should be available as an escape hatch for when you absolutely need to override based on the platform. This should be used when the product requirements are different, designs are different, or in cases where probing the native modules for feature detection causes instability.
Maybe the three tenets can be reworked as such:

Build a lowest-common-denominator implementation with primitives
Use feature detection where possible to utilize native features, regardless of platform
Fork based on platform (and use platform extensions) as a fallback, or for product reasons

As I'm thinking about this more.... what does "Feature Detection" look like that don't worth through globals?  Typically feature detection is something like "does this thing exist" or "if i do this thing, does this result look right".  The problem is I don't know how this maps to user-land modules?  How do I say "If "react-platform-fancy-button" works for me, then use it. Otherwise use this"?

You make a good point- it would be nice if we had a standard for safe feature detection. As you point out, only standard-ish way of doing it right now is checking for the presence of a global.

First of all, I wanna say that this is AWESOME*! I really love where this is going. The better we can all pool our individual efforts, the better the overall ecosystem will be.
As I start digging into the nitty gritty, a couple of things come up, however:

I believe things like TextInput may be really important in terms of some platforms, but not others, and so should maybe not be a primitive.

I'm confused why this isn't a primitive. Is it because of view-only Sketch? IMO all UIs boil down to viewing info, interacting with info and modifying info. How awesome would it be if react-select, react-dates or even draft-js were automatically cross platform because a generic component was built using primitives. I think TextInput would be needed.

Some components will need to have custom platform-specific implementations that will ensure that they perform as good as they possibly can, but we must always have at least one implementation that only uses the primitives (or other higher-order components that themselves have a primitives-only implementation).

Have we given any thought about where semantic markup goes in this world. I'm guessing TouchableText would be a <span> with an onClick instead of a <button>. But a <button> is needed for a11y. Similarly you can really easily create a radio/checkbox using <View> components, but really it should be a "web native" checkbox or radio on the web.
And where do <a> tags live? Sure you can have <Text> with large font (like you'd do in RN), but really you have an <h1> for SEO purposes. And of course we have <header>, <main>, <section>, etc. which would all be <div> soup with everything as View components.
As I see things, in order to build a realistic web app, you would end up having to use "web native" tags in order to build for SEO and A11Y. And as a result the need to build versions for each platform moves higher and higher upwards.
The only thing I can think of is that there is another layer on top of the primitives for things like <Link>, <HeadingText>, <Checkbox>, etc. that most composite components would actually use. On the web, these would map to semantic tags, but for other platforms they could just be direct wrappers of the primitives.
Does that make sense?

Perhaps React Native can start by moving the platform-specific APIs and components out of the main library's export. These problems are harder once the RN ecosystem is built around the assumption that there are only 2 platforms, forcing other platforms to stub or implement iOS/Android modules like ToolbarAndroid and SegmentedControlIOS.

I'm confused why this isn't a primitive.

Agreed. I think it should be; it's part of the "core" exports we need and use on mobile.twitter.com.

Have we given any thought about where semantic markup goes in this world.

This is factored into react-native-web.

accessibilityRole can be used to specific the ARIA-role, which also produces the equivalent DOM node. For example, <View accessibilityRole='main'/> => <main role='main'>.
Touchables are button[type=button] by default
Radio and checkboxes can be built using ReactNative.createDOMElement, which takes a DOM element and RN props, mapping them to DOM props. Using View is not the best tool for this job.
Links are supported on either View or Text using accessibilityRole and href...or custom link components can still be built from a using createDOMElement.

If you have any ideas on how to improve this, I'm interested to hear them.

Agreed all around! Thanks for the response.
So if the primitives come with an accessibilityRole prop then the web versions of the primitive can do special things as necessary but the other platforms can potentially do nothing. I like it.
I first read ReactNative.createDOMElement feels weird to me because DOM === web in my head. But really nothing about the Document Object Model is inherently web-specific. Is the idea that render() returns createDOMElement instead of JSX? What does this do in React Native?
So for a component like Checkbox, the generic version would be built from View but the web version would use createDOMElement?

I first read ReactNative.createDOMElement feels weird to me

It would probably feel less weird if React Native had been called something like React Platform: ReactPlatform.createDOMElement / ReactPlatform.requireNativeModule. But I'm open to createDOMElement being called something else or the end result being achieved with a different API.

So for a component like Checkbox, the generic version would be built from View but the web version would use createDOMElement?

Well, there would only be one Checkbox and each platform might have a custom implementation. If some platforms can get away with a pure JS implementation using View, then they should. But if the implementation needs access to platform-specific APIs or components (for performance, ease, accessibility, etc.) then we use the escape hatches to do that.
The long-term objective / hypothesis is that we'd use the various escape hatches as infrequently as possible, for low-level building blocks, so that the rest of the ecosystem above is built on a unified, platform-agnostic, JavaScript-only API. But at the moment even RN has a lot of iOS/Android-specific deviations exposed in the APIs of its core components and features :)

First off! Amazing work! This is so great! 🙌
Privately, at our company we've been building cross platform components on top of react-native and react-native-web and came to the very same conclusion that we needed a bit more of a layered approach with a minimal "core" set of cross platform components to build off of. Our abstract components were getting super messy and cluttered. As the components grew we had lots of platform specific forks in order to keep them performant and have good UX, SEO, etc.
@necolas @lelandrichardson are you guys still planning on moving forward with react-platform? Re-reading through this when I've had ☕  I agree that keeping the set of primitives small makes a lot of sense! It's hard to plan for platforms that may not exist yet but depending on which platform you spend most of your time working it's easy to forget about the others. cough Sketch cough
FWIW I think @ericvicenti's core tenet revisions are pretty bang on.

Build a lowest-common-denominator implementation with primitives
Use feature detection where possible to utilize native features, regardless of platform
Fork based on platform (and use platform extensions) as a fallback, or for product reasons

I'm also not sure how you do feature detection other than having a mapping for each supported platform much like do with Platform already. Possibly extend it with a list of Platform.features and we come up with a feature matrix with consistent naming? What those are I'm not sure....
Which leads me to another question. Is the goal of react-primitives meant to exclusively be UI components or should it also include common APIs? For example:

UI, Layout, or Dimensions (which already seems to be in the works)
Linking
i18n
Network
etc.

Personally, I think that it probably makes sense to also have a small set of common APIs. If that becomes the case I see some parallels with ReactXP. Although IMHO I think what they have done could probably be broken down into 2 layers as some of the components seem to be a bit more meta.

I'm late. This issue excites me. I wanna to know any progress about the react-platform now?

@mathieudutour @lelandrichardson and @necolas I've been doing some work recently that involves additional platforms, and I'm moving toward standardizing around primitives, Webpack, and Lerna for React Native development.  I heard there are some plans within the RN project itself around creating an abstraction, "primitives", and platform-support.
I agree with the original post as well as the need for TextInput – I can't think of a platform that doesn't support TextInput in one way or another (we're using React Sketch.app, and the Text object (editable in Sketch) essentially maps directly into Sketch:

User pulls React Primitives-based component(s) with TextInput into Sketch
User changes text on a symbol
Plugin receives the change and initiates an action or changes "state" in response

We're looking at TextInput and names in Sketch to provide metadata and operations within Sketch, so I think it may warrant trying to find a platform that doesn't have TextInput (even if the input is made via speech).  If RN had an <Input />, I might argue that INPUT is the real primitive here.
Regardless, is react-platform still moving forward?  If not, where do you feel primitives and RNW are today, and what are your plans?
Thanks in advance, and thank you all for your incredible work!

@jhampton I would love to see a repo with a basic setup - I was trying to work with Primitives recently (using webpack-blocks for build) and running into trouble. Sorry for being a bit off-topic.

@adamcee Thanks for mentioning webpack-blocks – I hadn't seen that one before.  I'm doing some investigation around adding multiple platforms, and I'll be in touch if it yields any value.

Are you currently developing this on a repo we can contribute?

It looks like Lona is the sibling project in making x-platform possible. I’m investigating that ATM.

A related discussion has come up recently as we have been working on Fabric for React Native. With Fabric, the native definitions of props are moving to C++ and platforms like iOS and Android will implement that interface. That means we are getting to a set of primitives that are the common denominator across multiple platforms and trying to figure out how platforms can extend that with custom functionality.
I wrote up a bunch of stuff over in the RN proposals repo and would like some eyes on it from people who’ve participated in this React-primitives conversation in the past. I think we are starting to move in this direction.
https://github.com/react-native-community/discussions-and-proposals/issues/50#issuecomment-446439845

Hi, I've implemented a proof-of-concept/experimental repository based on some of the ideas discussed in this RFC, as a community-lead/open-source project, to help push forward progress, as it's been a while since these proposals.
I've created a @react-platform npm org/namespace that is a mono-repo of packages that help people develop cross-platform apps: https://github.com/elemental-design/react-platform . I've published a @react-platform/native package which exists as an alternative to react-native-web for other platforms such as react-native-windows, react-sketchapp and `react-figma.
The plan is for @react-platform/native to export most React Native APIs such as <TextInput>, <ScrollView>, Dimensions, useWindowDimensions, etc, defaulting to platform specific imports e.g. import { useWindowDimensions } from 'react-native-web' or import { useWindowDimensions } from 'react-sketchapp'. There are JS/React only implementations of APIs/components for which there is no platform compatible substitution.
@react-platform/async-storage is another example, which re-exports @react-native-community/async-storage for React Native or React Native Web, but provides a JS only fallback (async session storage) and a Sketch implementation of Async Storage that uses the Sketch plugin options API.
I'm planning to develop cross-platform wrappers for svg, Lottie, date pickers, etc for it too.
This can already be used today to help make React Native apps be able to render to react-sketchapp or other platforms.
Would love your thoughts @lelandrichardson @necolas @mathieudutour


Fix a couple of issues

Okay, I'm not a rust developer either, but I think I've fixed a couple of crashes I've seen whilst trying to get this to run on FreeBSD. I've not yet managed to make it work successfully, but this feels like an improvement so I thought I'd share:

The connect loop seems to poll the future every time, even if it's already complete. This was causing a crash for me.

The get credentials code was calling unwrap() without checking for an error. I think I've fixed that too (although I always get an error, so I might have broken the success case).

Thanks a lot! I'll look into this as soon as I'm back from the mountains 😀

Hi, am a developer myself. If I can do anything  to help please let me know.

Uh, oh... plietar just applied a bunch of changes to librespot which break spotty. I'll have to do some more work, soon.

The librespot code has seen so many changes, this pull request is rather useless. Please submit a new pull request, should you see need. Thanks!


add License for tools and runtime npm packages

Hi,
My Company requires all our packages to have a License on NPM otherwise our proxy quarantines them.
Is it possible to add a License for:
@angular-architects/module-federation-runtime
and
@angular-architects/module-federation-tools
Many thanks :)

Yes, totally. The next version will officially have MIT license. This is how it was intended to be all the time.


psql integration updates

[x] temporarily disable SQLTable protocol
[x] small bug fixes
[x] standardize SQLDataType requirements
[x] add XCTest asserts to SQLKitBenchmark

Hey @tanner0101, you just merged a pull request, have a coin!
You now have 947 coins.


Dependency Check exited with an error code (exit code: 14)

Hello @jeremylong.
I'm trying to use Dependency Check in AzDO Release Pipeline and keep running into an issue below where I am seeing an exit code 14.
Dependency-Check Core version 8.2.1
Log:
tasklog_7.log
Thank you!

I'd start with looking for errors in the log:
[ERROR] Warn initializing the suppression analyzer: Failed to load D:\agents\_work\r52\a, caused by java.io.FileNotFoundException: D:\agents\_work\r52\a (Access is denied).
2023-04-21T14:43:42.2291133Z


[Feature] Need standard epubcfi() format for highlights.

Describe the bug
I want the standard epubcfi() format for the highlights. I see that we have partialCfi() in the code, but that was not used anywhere.
Are there any plans for it? If not, can anyone suggest a way or any other sdks which supports the standard epubcfi() format.
How to reproduce?
It's a new feature
Readium version
2.4.0
Android API version
33
Additional context
No response

Hello, we have no plan to support EPUB CFIs in the Readium toolkits at the moment.
What's your use case for it, why do you need them?

Hi, thanks for your reply. We have a requirement to include EPUB reader in
our app. The web is developing it using epub.js library which used the
epubcfi() format for the highlights and selectors.
As this radium library has all the required features, we tried to use this
in mobiles, but since the locator info data is different compared to what
the web is working on, we wanted to check with you guys regarding it.
Since, you guys have included partialcfi into your code but never
implemented it, we thought of checking with you guys if there are any plans
to implement this.
Note: The documentation for the readium web app is not proper it seems.
On Fri, Apr 19, 2024, 23:58 Mickaël Menu @.***> wrote:

Hello, we have no plan to support EPUB CFIs in the Readium toolkits at the
moment.
What's your use case for it, why do you need them?
—
Reply to this email directly, view it on GitHub
https://github.com/readium/kotlin-toolkit/issues/497#issuecomment-2067087751,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BH6ACTTVDLHTFYVYFNWK66TY6FO5HAVCNFSM6AAAAABGOUDJTGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANRXGA4DONZVGE
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
CONFIDENTIALITY NOTICE and STATEMENT
This email correspondence from UWorld
contains information
which may be
confidential and privileged.  It is
intended solely for the use of
the recipient.  If you are not the intended
recipient, be aware that any copying,
disclosure, distribution,
review or use of the contents of this message is strictly prohibited.  If
you
have received this email correspondence in error, please destroy it
immediately.

The web is developing it using epub.js library which used the epubcfi() format for the highlights and selectors.

Would you mind sharing the full locator that epub.js returns? If it contains some text context, you might be able to use it with Readium.

Note: The documentation for the readium web app is not proper it seems.

Yes it's something we want to improve this year. Right now it's still undergoing a lot of development.

Don't you have also the text content of the selection with it?


Use model_class as basis for hierarchy_class

It has long been possible for Active Record subclasses to use customized database connections, for example to connect to a different database.
More recently, Rails 6.0 added support for multiple databases. However, these features require model classes to inherit from ApplicationRecord. It is stated here that "each connection should have their own abstract class to deal with their connection."
This patch updates ClosureTree::Support#hierarchy_class_for_model to build the hierarchy class from the model class, which ensures they use the same connection.

Active Record multiple database support has improved, so having the hierarchy class inherit from ActiveRecord::Base works as long as the model class also uses the "primary" database configuration.


German translations of actions containing the english "tab" use "tab" and "Registerkarte" inconsistently

Windows Terminal version
1.11.3471.0
Windows build number
10.0.19043.0
Other Software
No response
Steps to reproduce
In a german terminal press Ctrl+Shift+P and search "Tab" and "Registerkarte".
Expected Behavior
Actions with "tab" or "Tab" in their name should be translated consistently as either "Tab" or "Registerkarte" but not both. "tab" should not be used as nouns are capitalized in German.
Actual Behavior
"Tab" will be translated inconsistently as "Tab", "tab", or "Registerkarte".

Tracked as MSFT:38109276.


Add ignoreCssErrors option

Not sure about name of the option

cc @jc275

fixed

I guess I'll make a new release since this is a new feature.

0.7.8 released.

I spotted this far too late, but... what about ignoring JS errors too?
https://github.com/peterbe/minimalcss/blob/9b756476ff03371fdd5c2ace16483f9a1f931b3a/src/run.js#L256

@jc275 Do you have a solution in mind?

JS errors could be either logged or thrown, in exactly the same way that CSS errors are.
CSS-related errors might occur in unexpected places, but at least the on-page JS errors should all be found in one place, as 'pageerror' events.
I don't know whether there's any advantage to a separate JS error option, so maybe ignoreCssErrors could become ignoreErrors or allowErrors. (After all, if you're trying to extract CSS data from a third-party site, it doesn't really matter what caused the error, since you have no way to avoid it.)

It would be cool to have an ignoreJSErrors option for sure. If there's a clear and easy way to implement it so that it doesn't collide with our "own" error handling.


Remove dangling imports

SP failed to start due to an import error on button states. I noticed create_mads_event was also unused.
This gets the tesla port to a working state as long as mads is disabled.

Thanks!


As a registered user, I want to temporarily disable my account, so that I can come back later if I decide to.

@relrod @abompard is this something that is currently a feature in FAS? does freeIPA implement the disabling of accounts, and what does this actually mean?

I was just thinking, if a disabled account is unable to login, then the user can't re-enable their account and "come back later". Or maybe there are different levels of "disability"?

UX and policy  - what does disable actually mean. source @sfinn85  to follow up . Self service action - ( not admin)

@abompard Right, if they're disabled, we'll need to use the escalated account to re-enabled them I think.

Hi @abompard
Please see Fedora privacy policy here https://fedoraproject.org/wiki/Legal:PrivacyPolicy and some insight from Paul https://docs.google.com/document/d/1sdm36sdsyaxNQlUVLGvGbt8TB2LC9EPa8MkDbiY0lcU/edit
Will this help guide the solution or is more information needed?

My question is more technical: if a disabled user can't login, how do we verify that the re-enable request actually comes from them?

Just to follow up on what we spoke about earlier, this can't be done self-service so creating a ticket is our only option. I think this is an invalid issue.

So as a team we decided to close this ticket as it doesn't make sense. If the user disables their account then there is no way to re-enable it unless they create a ticket. If the ticket system is backed by freeipa then they will be locked out completely.


Feature/473

Fixed background color for desktop (should be across all pages)
Fixed footer positioning at least for pages using WizardStep (removed margin from wizard-container and added responsive min-height and display:flex to Main.js)
Adjusted all font-heights and margin between headers and forms to match Figma design
Refactored buttons to fix back button issue and use our button components
Refactored text and search inputs to fix design and use out input components
Refactored ShowAnywhere and ShareLocation buttons to make weird hover background disappear —> still issues (ShareLocation not left-aligned on Desktop, icon wrong color and size  —> @anniegiang Should we open a separate issue for this? It seems to be a problem on multiple pages)
“Show Posting from Anywhere” and “Skip” issue —> can’t be placed under previous and next buttons, because of current logic/functionality (I can’t fix that myself —> there is a separate issue open for this already #467 )
Submit Button on Step 3 issue —> see #467 )

closes #457
closes #473
can help with issues #456 , #328

Thanks Nadine, this is really detailed and neat!
A few small issues:

This textbox for email looks different from Figma (even tho I like the look of it)

The buttons should be aligned to the Step wizard's options here (See Figma)

@anniegiang I didn't change anything on Feed or Home, so I'm guessing the issues were there already?

Thanks, looks good!


rpgfree doesn't run anymore

Since some days I get no option to convert selected statements with a right click.
VS Code 1.72.2
Code for IBM i v1.5.17

@karlxfritz What version of vscode-rpgfree are you running?

Hi,
Sorry that I didn't mention it.
v0.0.21 – think it's the newest.
Karl
Von: barry @.***
Gesendet: Montag, 17. Oktober 2022 15:51
An: BrianGarland/vscode-rpgfree
Cc: karlxfritz; Mention
Betreff: Re: [BrianGarland/vscode-rpgfree] rpgfree doesn't run anymore (Issue #49)
@karlxfritz https://github.com/karlxfritz  What version of vscode-rpgfree are you running?
—
Reply to this email directly, view it on GitHub https://github.com/BrianGarland/vscode-rpgfree/issues/49#issuecomment-1280894393 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ANWAEP3WNYMQC4RZBZMDGTDWDVKSVANCNFSM6AAAAAARHC56JY .
You are receiving this because you were mentioned.Das Bild wurde vom Absender entfernt.Message ID: @.***>

@karlxfritz Is this still a problem?  I'm not sure why you wouldn't have the menu option.

Hi Brian,
the problem still exists.
I had a situation, when all worked well.
But now, I can select the statements, click right and nothing happens.
Example:
This is a part of the source and you see, the convert item is missing.
I uninstalled/installed the extension. Maybe it's an issue of Code for IBMi (Liam).
All program parts are on the newest version. IBM OS V7.5.
Thanks,
Karl
Von: Brian Garland @.***
Gesendet: Montag, 24. Oktober 2022 16:59
An: BrianGarland/vscode-rpgfree
Cc: karlxfritz; Mention
Betreff: Re: [BrianGarland/vscode-rpgfree] rpgfree doesn't run anymore (Issue #49)
@karlxfritz https://github.com/karlxfritz  Is this still a problem? I'm not sure why you wouldn't have the menu option.
—
Reply to this email directly, view it on GitHub https://github.com/BrianGarland/vscode-rpgfree/issues/49#issuecomment-1289169421 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ANWAEP7PMJNN3B7LHITCBG3WE2P3VANCNFSM6AAAAAARHC56JY .
You are receiving this because you were mentioned.Das Bild wurde vom Absender entfernt.Message ID: @.***>

Close this issue. If I do a right mouse click, I need the submenu at the bottom of the menu and the i find the conversion select.
Runs ok, thought i can do that on the first click.


add gradient bg

This swaps the bg image for a css gradient bg.  I did remove the 100% on the html and body tag, which prevented the gradient from filling the content.  It didn't seem to cause any issues but  let me know if there is a reason to keep those in.

https://feat--gradient--design-website--adobe.hlx3.page/

@pfulton setting the background size to cover seems to fix this issue on safari.

@pfulton setting the background size to cover seems to fix this issue on safari.

awesome. Looks great. Thanks!


publish<EMAIL_ADDRESS>

Requested by: @billyvg
Merge target: (default)
Quick links:

View changes
View check runs

Assign the accepted label to this issue to approve the release.
Leave the #retract comment under this issue to retract the release (original issuer only).
Targets

[ ] npm
[ ] github

Targets marked with a checkbox have already been executed.  Administrators can manually tick a checkbox to force craft to skip it.

I'm testing trying to figure out how this works... seeing this:

https://github.com/getsentry/sentry-replay/runs/5571671615?check_suite_focus=true#step:3:117


How to create custom directive for DxComponent

I want to create a custom directive that will set focus to the element. The problem is here that Angular2 directive ctor accept ElementRef and does not have access to DxComponent object where I can call dxComponent.instance.focus();
Please, look at this example (find AutofocusDirective):
http://plnkr.co/edit/Jp6CFS1coeLycROudbWG?p=preview

Hi,
At the time the ngInit event is fired, the dxTextBox component is not yet initialized. Use the AfterViewChecked lifecycle hook instead. At this stage, our components are already initialized and you can get the widget instance using the jQuery 'instance' approach:
  var tb = $(this.elementRef.nativeElement).dxTextBox('instance');
  tb.focus();

I updated your Plunker Demo to illustrate this approach.

Hi, thanks for your answer!
I don't like this solution because

I don't want to use jQuery for such simple tasks within Angular2 directives and components
AfterViewChecked lifehook is triggered  a lot of times when interacting with UI. Even so, it's possible to use backend flag field to execute focus() function only one time, it's kind of dirty.

But I don't have any other solution. I might use it for now. I will let you know if I find better one.

Btw, that solution doesn't work for me.
It throws an exception
TypeError: $(...).dxTextBox is not a function
I think it could be because I'm using webpack 2.0 and I import devextreme-angular only, not devextreme itself (according to the official guide).

Hi, thank you for the clarification.

You can implement this scenario without jQuery. Use the @Host decorator in the AutofocusDirective constructor to obtain an instance of the hosting component.

As a DevExtreme component is initialized in the AfterViewInit event, a widget instance is not available when a custom directive's constructor is executed. Thus, I suggest you access the widget instance in the AfterViewInit event handler:

export class AutofocusDirective implements AfterViewInit {
constructor(@Host() tb: DxTextBoxComponent) {
this.tb = tb;
};
ngAfterViewInit() {
this.tb.instance.focus();
}
}

See the Plunker example where I illustrated this approach.

Thanks a lot!
This solution worked for me like a charm.


Add initial .editorconfig and extra markdownlint rules

Fixes #7487.
cc @guardrex, @Rick-Anderson, @wadepickett
Let's discuss the rules I've applied and others we might want to apply here. The changes also affect the Blazor node, but we can add a specific .editorconfig to the Blazor root that can either extend or completely replace this one.

The default rule (for code) ...

trim_trailing_whitespace = true

I haven't been favorable to killing a space at the end of a code line when the break is merely present to keep code line lengths from getting too long for docs. I think it's nice for some devs who cut-'n-paste code and then collapse lines. However, this is a good rule in general outside of that, so I suppose that I'd just ignore the warning if this is kept.
Indentation: How about? .....
[*.html]
indent_size = 4

[*.css]
indent_size = 4

[*.js]
indent_size = 2

[*.xml]
indent_size = 2

[*.json]
indent_size = 2

max_line_length = off

Can this be turned on for code files and set to 85 chars?

I haven't been favorable to killing a space at the end of a code line when the break is merely present to keep code line lengths from getting too long for docs.

I don't mind if we just disable this rule, but what does trailing whitespace give us in the scenario where the lines are split for docs presentation?

Indentation: How about? .....

The default is indent_size = 2, so we wouldn't need entries for .js, .xml, or .json in this case. For .css, the non-Blazor project templates use 2, but I see that the Blazor templates and samples use 4. That might be something for a Blazor-specific override, I guess.

Can this be turned on for code files and set to 85 chars?

Sure. I think we can add max_line_width = 85 for the relevant extensions.

what does trailing whitespace give us

In markdown, two spaces at the end of a line result in DocFX inserting a bare return
, and we use that in spots where needed.

we wouldn't need entries for

:+1:

the non-Blazor project templates use 2

They're apparently adopting it along with the rest of the world. I let them know on their Blazor project template issue and attributed it to you (by name so that you wouldn't get pinged to 💀😄).
Forget about Blazor then ... I recommend two spaces for the future. They'll very likely adopt it for Blazor in 7.0+.

what does trailing whitespace give us

In markdown, two spaces at the end of a line result in DocFX inserting a bare return
, and we use that in spots where needed.

Ahh, OK, gotcha. That's turned off for .md files with trim_trailing_whitespace = false for the reason you describe.

That's turned off for .md files with trim_trailing_whitespace = false for the reason you describe.

Doesn't cover the C# file case. Do we always want to delete the space at the end of an artificial line break? I speculate that devs will be re-assembling these multiple-line statements back to a single line for many code samples. If that's correct, it's probably helpful to leave the space on the ends of these broken lines.

btw -- Was the decision not to go with the 85 char code line warning? It's not a big deal ... the char count for the line in VSC shows how long they are. It might just shave a hair of time off tho if it's ✨ automagical ✨ while one types.

Was the decision not to go with the 86+ char code line warning?

I didn't decide anything here. I dunno how well the limit would work if there's a few levels of indentation that's got a snippet wrapper, for example. I think I'll try it locally and see how it plays out, before adding it to the repo. I don't mind just adding it though if you'd prefer that.
What do you think? You can even add it to a Blazor-specific .editorconfig if you want to commit to it.

Yeah, I see what you mean. Nevermind on that I think. It's just not going to work as well as I hoped, especially in the snippet case. Many (most really AFAIK) of the code examples are snippets in Blazor docs. It would have limited usefulness.


Hope it can render images

Example:

Love this plugin. Convenient to create table than writing many |.

This function is now available in v1.9.0.


Extension errors and does not show cost analysis above resources in editor

Having trouble with the vscode extension. the left sidebar is showing all my directories and their associated costs, but in the editor i am not getting any real time update info, it’s just the normal text editor. i get no pop ups or “total monthly cost” line to click to break down.

vscode version: 1.79.2
infracost extension: v0.2.13
terraform extension v2.26.1
macos 12.6.2
I am seeing errors in the extension debug logs from the terraform extension every time infracost runs an update after I save
errors I am seeing:
2023-06-28 11:57:29.234 [error] [hashicorp.terraform] provider FAILED
2023-06-28 11:57:29.234 [error] Error: main.tf (49,25): position outside of any attribute name, value or block
at /Users/xxx/.vscode/extensions/hashicorp.terraform-2.26.1-darwin-x64/out/extension.js:1:387194
at re (/Users/xxx/.vscode/extensions/hashicorp.terraform-2.26.1-darwin-x64/out/extension.js:1:387488)
at /Users/xxx/.vscode/extensions/hashicorp.terraform-2.26.1-darwin-x64/out/extension.js:1:382272
at Immediate. (/Users/xxx/.vscode/extensions/hashicorp.terraform-2.26.1-darwin-x64/out/extension.js:1:382292)
at process.processImmediate (node:internal/timers:466:21)
after uninstall and reinstall of both infracost and terraform extensions, i am seeing a new error:
2023-06-28 12:05:55.059 [error] [hashicorp.terraform] provider FAILED
2023-06-28 12:05:55.059 [error] Error: no reference origin found
at /Users/xxx/.vscode/extensions/hashicorp.terraform-2.26.1-darwin-x64/out/extension.js:1:387194
at re (/Users/xxx/.vscode/extensions/hashicorp.terraform-2.26.1-darwin-x64/out/extension.js:1:387488)
at /Users/xxx/.vscode/extensions/hashicorp.terraform-2.26.1-darwin-x64/out/extension.js:1:382272
at Immediate. (/Users/xxx/.vscode/extensions/hashicorp.terraform-2.26.1-darwin-x64/out/extension.js:1:382292)
at process.processImmediate (node:internal/timers:466:21)

Thanks @dennislaf, as mentioned on our slack conversation this looks like something going wrong with the Terraform extension which we use to get the file symbols so that we can show the code lens. Give me some time to replicate this and work out possible solutions. Just for further context, what does the Infracost error logs show?

A user reported an issue that might be related?

debug: running "infracost breakdown --config-file d:\xxx\xxx\GLOBAL-INFRA\infracost.yml"
debug: found project GLOB - Dev - AU
...
debug: adding file: d:\xxx\xxx\GLOBAL-INFRA\env\.modules\applications\xxx\main.tf to project: d:\xxx\xxx\GLOBAL-INFRA\env
debug: rebuilding Infracost tree view after project run
debug: setting context infracost:error to undefined

Infracost Extension version: 0.2.17
Hashicorp Terraform Extension version: v2.27.2
Edition	Windows 11 Enterprise
Version	22H2
Installed on	29/06/2023
OS build	22621.2134
Experience	Windows Feature Experience Pack 1000.22659.1000.0

hi @dennislaf, we've released a fix in v0.2.18 for the issue @alikhajeh1 mentioned. It might solve your issue, if you could download it and give it a whirl that would be much appreciated. Otherwise I'm working on dropping the hashicorp extension dependency, which should hopefully fix this issue for good.


change traits.attributes to std::vector

the order of attribute is sensitive for AmfObject
fix test errors
add duplidate check for attribute

I can' t see the details of CI

Cherry picked in 26d553fac51bcf8af7075377d892d4e433f82997 and deb1a24c4ffcee3f381961bc7850bba8310e8335. Thanks!


Xrepo remove package that are defined in xmake.lua

Is your feature request related to a problem? Please describe.
 It could be nice to add this ability as well displaying information about the package.
xrepo remove libsample would remove the libsample package
xrepo info libsample would display information about the libsample package
Describe alternatives you've considered
No response
Additional context
No response

try xmake require --uninstall libsample or xrepo remove --all libsample

Ok, the two of them works, but I find it strange because xrepo remove libsample try to run xmake require --uninstall ... and this one worked when I run it myself.
So, I investigate a little more.
https://github.com/xmake-io/xmake/blob/535529d5e08cf8fc0f2d624508c4ef145bce12c3/xmake/modules/private/xrepo/action/remove.lua#L187
I changed this line to: os.vrunv("xmake", require_argv, {curdir = os.projectdir()}).
With this change, it works to remove libsample (and unlike xrepo remove --all the folder containing the version is not removed), but strangely there is no yes/no prompt before.

xrepo remove is a standalone package management command that is not tied to the current project configuration.
So you can only use xrepo remove --all to remove all configured libsample packages. You can't get xrepo to remove it unless you can configure them exactly, xrepo remove -p linux -m release -k shared/static -f "other configs ..."
And xmake require --uninstall will go and load the current project's cached configuration to remove the libsample package under the current project configuration.
Translated with www.DeepL.com/Translator (free version)

Thank you, I didn't know this difference existed.


Improve Phony::NormalizationError message

This makes 2 things easier:

You don't have to add an extra output during development, if some variable isn't a valid phone number and you wanna see the contents of the variable.
It can improve production also by catching and logging the invalid number.

Coverage remained the same at 99.169% when pulling 78111639ceb643c963875a30134e4285e3122d28 on YodelTalk:better-exception into f9eac634063f620ee8e3f240db70c323d4c78b13 on floere:master.

@ream88 Great idea – thanks for the nice PR 😊 Released in 2.15.41 🚀

Thx for merging 😊

That's the easier part 😊 Have a great day!


C++/WinRT - unpackaged - Customized title bar controls not clickable & SetDragRectangle displays default titlebar

Describe the bug
Controls of customized titlebar are not clickable and only by setting "SetDragRectangle" the default titlebar appears and covers the customized titlebar.
As described in this post, the issue should be fixed in Windows App SDK 1.2 Preview 1 (at least in C#, in C++ it doesn't work).
I had 1.1.5 installed before.
https://github.com/microsoft/WindowsAppSDK/issues/2574
Steps to reproduce the bug
Create an unpackaged WinUI 3 app.
Add the customized titlebar with controls and set "SetDragRectangle".
See my example (code in MainWindow.xaml.cpp):
https://github.com/yki5000/WinUI3_Unpackaged_CPP
See 2 example videos which show you the errors:
https://github.com/yki5000/WinUI3_Unpackaged_CPP/issues/1
Expected behavior
Added titlebar controls should be usable by user input and SetDragRectangle shouldn't let the default titlebar appear (?!).
Screenshots
NuGet package version
1.1.5
Packaging type
Unpackaged
Windows version
Windows 11 version 22H2 (22621, 2022 Update)
IDE
Visual Studio 2022
Additional context

Just to be sure, have you tried doing this kind of thing without involving WinUI 3.
Don't forget, when you set a custom titlebar, this is set using Microsoft.UI.Xaml.Window, which is a different component to the AppWindowTitleBar used to remove the system title bar and set the drag regions.
It is possible that the AppWindowTitleBar is setting everything correctly, but the Xaml host is misbehaving.

@DarranRowe
I think I only partially understand what you're getting at. You mean it's maybe more a WinUI 3 issue and I should create an issue at the official Microsoft-UI-Xaml Repository?
I posted it originally in the MSDN forum and Castorix gave me the advice to post it in WindowsAppRepository, I'm a beginner in C++:
https://learn.microsoft.com/en-us/answers/questions/1104852/winui-3-controls-in-the-title-bar-are-not-clickabl.html

I would first try to add the compatibility section to your app.manifest., similar to https://github.com/microsoft/WindowsAppSDK/pull/2969
This is needed in both packaged and unpackaged apps, to allow the drag window to be created correctly.

I would first try to add the compatibility section to your app.manifest., similar to #2969 This is needed in both packaged and unpackaged apps, to allow the drag window to be created correctly.

He aded it in app.manifest

@DarranRowe
Indeed, testing it in WinApi (?!) would be too expensive since I’m not that experienced.
(Oh man, WinUI 3 is an incredibly fantastic idea, especially for C++ but it also really get you down. 🫣)

@DarranRowe Indeed, testing it in WinApi (?!) would be too expensive since I’m not that experienced. (Oh man, WinUI 3 is an incredibly fantastic idea, especially for C++ but it also really get you down. 🫣)

With Win32 APIs, it is done like in the MSDN sample  Custom Window Frame Using DWM
It works fine in C++/Win32 or C#/VB + P/Invoke, but I had tried to mix DwmExtendFrameIntoClientArea and so on with WinUI 3 and I could not get correct results (with Windows App SDK 1.1.0) (I met problems with the child Composition window (DesktopChildSiteBridge class))

@castorix
No, the titlebar customisation works with regular desktop applications. You can get an AppWindow associated with a HWND, the method of using Microsoft.UI.GetWindowIdFromWindow to get the window id, and then obtaining the AppWindow using Microsoft.UI.Windowing.AppWindow.GetFromWindowId is supported.
For Windows 11, and IIRC Windows 10 with 1.2, you can then use AppWindowTitleBar.ExtendsContentIntoTitleBar to enable full titlebar customisation.
You can't set Xaml elements as the titlebar, so you need to use some other means to do this, but that was the whole point. Having the drag rectangles set in such a way that the clicks can go through to the underlying window without Xaml being enabled.

OK,
If I understand it correctly, this is the wrong place and it should be posted on the WinUI 3 page?!
(You don't know of a workaround?)

There is also a bug that if you place a combo box under the title bar (anywhere) and then the dropdown list opens and juts out over the title bar, the part of the combo box item that sits over the title bar is no longer clickable . Is everything connected?!

WinUI 3 and Appwindow titlebar now use the same implementation now and hence support the same features. The interactive titlebar can be created using InputNonClientPointerSource apis. I recently added an example in WinUI gallery on how to do it. You can follow it : https://github.com/microsoft/WinUI-Gallery/pull/1360 . It will work for both packaged and unpackaged.
Do open a new issue if you still face some issue. Given this issue is fixed, I am closing this.


masks of instance segmentation

Hi,
I trained a model with a custom dataset, the bbox seems pretty solid. I was wondering how can I get the instance mask? I looked at the inference notebook and looked at the output of the model and I'm not sure what I"m missing, but I couldn't find any mask parameters.
My goal is eventually to do instance/panoptic segmentation.
Thanks!

Which codebase did you use?

The DINO one, from my understanding, it doesn't support instance segmentation

Yes, DINO cannot do segmentation. Mask DINO is another paper to make DINO achieve good performance in segmentation tasks with three proposed methods. Please refer to our paper for more details.


Reset button not working

clicking settings and then clicking Full reset: Log out and delete workspaces not working
I clicked the full reset button but the wheel just keeps on spinning and nothing happens. I left it like that for 1/2 hour. Tried multiple times after that but no luck

$ vegawallet version
vegawallet version v0.6.4 (20eee130)

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"

Browser:
Google Chrome
Version 89.0.4389.90 (Official Build) (64-bit)

So how are you guys trying to delete the db? Just wondering, maybe I can pickup some javascript
var request = indexedDB.deleteDatabase("Vega");
request.onsuccess = function(e) { console.log("success"); };
request.onblocked = function(e) {
  console.log("blocked: " + e);
  // Close connections here
};
request.onerror = function(e) { console.log("error: " + e); };

you must call db.close() before delete, if you already open. otherwise you will get onblocked event
docs

A fix for this is now live on testnet.vega.trading, and the reset button works as expected. Thanks @brunswyck for raising it!


[FLINK-18212][table-planner-blink] Fix Lookup Join failed when there is a UDF equal condition on the column of temporal table

What is the purpose of the change
The following query is failed, because there is a UDF equal condition on the column of temporal table, and we don't take care this case when analysing constant equal condition.
SELECT
  T.id, T.len, T.content, D.name
FROM
  T JOIN userTable for system_time as of T.proctime AS D
ON T.id = D.id
WHERE
  add(T.id, D.id) > 3 AND add(T.id, 2) > 3 AND CONCAT('Hello', D.name) = 'Hello,Jark'

Brief change log

Fix this problem in CommonLookupJoin.

Verifying this change

Added an integration test and a plan test which can reproduce this problem.

Does this pull request potentially affect one of the following parts:

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

Documentation

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

cc @leonardBang , could you help to review this ?


spyder 2.2 fails to start under windows 8 64 bit

From<EMAIL_ADDRESS>on 2013-05-27T17:21:46Z
Spyder Version:  2.2.0
Python Version:  2.7.5
Qt Version:      4.8.4, PyQt4 (API v2) 4.9.6 on Windows
What steps will reproduce the problem?

Install spyder 2.2 with the official binary installer.
Start it from the start menu or use command line "python spyder".
It won't start. No debug error printed in the command window. What is the expected output? What do you see instead? It should start without no problem.

Please provide any additional information below
. I rolled back to <IP_ADDRESS> 64 bit. It starts. I don't have start problem with previous versions either.
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=1408

From ccordoba12 on 2013-06-29T06:45:29Z
Status: Duplicate
Mergedinto: 1441

From<EMAIL_ADDRESS>on 2013-07-01T06:00:08Z
I am not sure it is dup.


Description

@Vaishnavi-Patil2211 Please assign this to me I want to work upon this issue
Expected Behavior

Show us the trouble with screenshots

Which browsers are affected?
No response
Which OS are affected?
No response
Enter the version of your web browser

Device?
No response
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSoC'23 contributor
[X] I want to work on this issue

@Vaishnavi-Patil2211 is it good to go ?

Yes

@Vaishnavi-Patil2211 please check this pr https://github.com/OSCode-Community/OSCodeCommunitySite/pull/1102 So that i could create a new pr for contact section

I created the pr for this : https://github.com/OSCode-Community/OSCodeCommunitySite/pull/1112


Customize each workshop page

[ ] @kaushal0494  Add detailed schedule for each workshop. Check tabs named (July 5, July 9 and July 10) is this spreadsheet to get the detailed schedule for each workshop.

[ ] @raosudha89  Add a virtual format description for each workshop (just like we have for each tutorial

[ ] @kaushal0494 Depending on whether the workshop has prerecorded talk and/or livestreaming of zoom session, embed slideslive video. Check how this is done for tutorials and do similarly.

@raosudha89 Sure, Thanks for specific tasks.

[ ]  @kaushal0494  Add detailed schedule for each workshop. Check tabs named (July 5, July 9 and July 10) is this spreadsheet to get the detailed schedule for each workshop.

@raosudha89  In the schedule tab:  do we need to add schedule with calendar and timezone (as done for the tutorial home page) or simply add the schedule as given in spreadsheet?

[ ]   @kaushal0494  Add detailed schedule for each workshop. Check tabs named (July 5, July 9 and July 10) is this spreadsheet to get the detailed schedule for each workshop.

@raosudha89 In the schedule tab: do we need to add schedule with calendar and timezone (as done for the tutorial home page) or simply add the schedule as given in spreadsheet?

@kaushal0494  Just simply add the schedule as given in the spreadsheet and add a note above that the all times are in PST. No need of a calendar.

@raosudha89 Thank you for the clarification.

Created PR #279 for prerecorded talk and/or live streaming of zoom session, embed slides live video.  @raosudha89 you can
add virtual format description for each workshop. Let me know if I have to add more information.

@kaushal0494  PR https://github.com/acl-org/acl-2020-virtual-conference/pull/279 was failing some checks. Please check my comments on that PR to fix the issues.

@kaushal0494  your PR has now been merged.
Do you have an ETA on when the schedule for each workshop will be posted?

@raosudha89 I am working on that. Due to the non-uniform schedules, I am facing a problem in including them automatically. I will try to finish today.

Again same problem: Unable to add a schedule for individual workshop pages automatically from (using workshop id) .yml file. It will be great If some can have a look. Thanks

@tlikhit Can you please take a look at the issue @kaushal0494  is facing?

@tlikhit  Can you please prioritize this? The first workshop (W1: WiNLP) is schedule for July 5th and the website is going live on July 3rd. We really want the detailed schedule for atleast W1 to be up by then. Thanks.

@tlikhit  I am working on converting workshops.csv to workshops.yml file so that we can include the schedule (i.e. list of talks, their timings and video ids) in them. I will push the yml file and let you know.

@raosudha89 Please ping me once you've added the workshops.yml file. I'll add in a calendar style schedule.

@tlikhit  I ended up not working on creating the yml file since I don't know how to do that.
I instead worked on displaying prerecorded talks on each workshop page. See this PR https://github.com/acl-org/acl-2020-virtual-conference/pull/328
We still need a way to display the schedule. It need not be in the calendar form (since that would be complicated). Can we just list the schedule in the form of start time, end time, name of speaker, and title of talk? I am not sure  how to best do this in yml form. Can you work on this please?

@raosudha89 Ok, I'll have to add in the schedule info for each workshop from the spreadsheets. I'm assuming I should include everything - breaks, poster sessions, prerecordings and live sessions.
Do I have to take into consideration the subdivisions in the workshop? For example, if I'm not misunderstanding, W1 seems to be divided into 4 sections.

@tlikhit  Is there any update on this? We need this to be done latest by 3pm PT today. The website goes live tomorrow. Sorry for rushing you, but this is critical at this point. Thanks.

@raosudha89 In the current merge I used data from the spreadsheet. I'm cleaning and reformatting the data for the rest of the workshops too, should be done soon. A couple of questions:

W1(WiNLP) website has a sponsored breakfast from 8-9 as first event on its website but not in the spreadsheet. Should I add in events on the workshop websites but not in the spreadsheet?
The workshops page seems to be organized into tabs for various dates, but some workshops are being held on multiple days (eg: W2 on July 9 & 10). How should I handle this? Maybe I could add in the day in the table and display workshops on multiple days in both tabs?

@tlikhit

Good question. I think the website schedule is old. Let's use the spreadsheet only
Yes, sounds good

Also, could you make the schedule collapsible and keep it hidden by default? I think it is taking up too much space right now.  Thanks

* The workshops page seems to be organized into tabs for various dates, but some workshops are being held on multiple days (eg: W2 on July 9 & 10). How should I handle this? Maybe I could add in the day in the table and display workshops on multiple days in both tabs? Nvm, I realized it just referenced start dates :p
I will add in days and make it collapsible 👍

@tlikhit  Thanks. Please tag me here once you submit the PR for making it collapsible.

@tlikhit  Are you working on this currently? If not, then I can work on this. We want this updated in the next hour since we will be recording an intro video at 1pm PT and we are hoping this page will be updated by then.

@raosudha89  I'm done with it! I'm waiting on https://github.com/acl-org/acl-2020-virtual-conference-sitedata/pull/136 to be merged as I changed some fields

Thank you so much. I just merged that PR.

@raosudha89  Thanks, sent in #358

@tlikhit  Thank you so much! I merged the PR. Closing this now.


480p quality on an iMac?

Just installed Aerial on my iMac mackintosh but the videos look like they're in 480p quality or something like that. I use a 1440p monitor and thought the videos would be higher quality.  Is there something I need to do to make the videos HD or higher resolution on my iMac or is this just not how Aerial works? Sorry if this is a dumb question, maybe I'm just missing something here. Thanks.

Same for my 15" Macbook Pro (1920x1200).

Please give version 1.4 a try, it has improved retina support.

Closing as fixed with the release of 1.4.1


docker-compose troubleshooting

Issue description
While working on IBM/Kubernetes-container-service-GitLab-sample#26, I ran into trouble with docker-compose. We have no troubleshooting section of our documentation to help users is such cases.
Request
Add basic trouble shooting information.

Brief list of steps I followed

Run per docs
When unable to load localhost:30080, try nc or nmap
Run on different system
Repeat steps
Check firewall
Port scan locally and remote


💡 [REQUEST] - Blog Page UI change

[x] I am from GSSoC'23.
[x] I would like to be assigned this task.

Section
Description

Concise Description
Current UI of the Blog Page looks very basic and boring.

Solution Proposed
I would like to change the UI of it to make it look decent yet attractive.

I would like to display the blogs in card form.
Rather than displaying the name and date separately, I would like to render it on a card (providing the reference below).
Also the image takes up the whole space and doesn't grab user attention.. I would like to render it in a card to display both image and content to the user in a attention-grabbing way.

Note that the image provided below is just the reference and I will design the card according to the requirements of this project.

Code of Conduct
By submitting this issue, you agree to follow our Code of Conduct.

[x] I follow the Contributing Guidelines of this project.
[x] I have checked the current issues for duplicate problems.
[x] I have read the readme of this repository.

Can I still Work on this issue if I am not a part of GSSOC 23 and also if anyone working on it currently

Can I still Work on this issue if I am not a part of GSSOC 23 and also if anyone working on it currently

@yashpandey06 i have raised this issue. Kindly find another one for yourself to work o :)

I am from GSSoC'23.
I would like to be assigned this task.


Memory optimization in JwtSecurityTokenHandler.CanReadToken

string.Split allocates a result array and each segment. Additionally string.Split needs to scan input string twice: first to calculate size of result array, second to do actual split. So this change should also result with better CPU usage. In method CountSegments I use string.IndexOf because internally it can be hardware accelerated. So for longer strings with a few occurrences of character this solution has better performance characteristics than iterating by each character.

it's duplicate of https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pull/1318


[Morphy] Add flavor CPU aliases and virtual columns

Depends on:

[ ] [Morphy] Fix instance provision workflow

I don't think this depends on the provider PR as it looks like it can be merged independently.  @agrare Please review.

@nasark Can you put a link to the master PR, just so we can track where this came from (even though it's not a straight backport)?

It was found that the root cause of the issue was due to old Flavors records created on another branch. See https://github.com/ManageIQ/manageiq-providers-ibm_cloud/pull/289#issuecomment-932428758
This PR is no longer valid and so I'll close this one out


Specification: wrong definition of mixin

Dart Language specification, 4th Edition (December 2015). Chapter 12 Mixins

A mixin describes the difference between a class and its superclass.

The difference between a class and its superclass are members defined in the class. According to http://www.bracha.org/mixins-paper.pdf "Mixin is a set of modifications (overrides and/or extensions) to be applied to a superclass parameter"

How is the definition wrong?

Ok, I'll try to clarify.
class S {
  var s;
}
class M {
  var m;
}
class C extends S with M {
  var c;
}

This is the same as
class A = S with M;
class C extends A {
  var c;
}

The difference between class C and its superclass (class A) is instance variable c, defined in C. Mixin (class M) describes the difference between S and A, but  "A mixin describes the difference between a class and its superclass." defines that M describes a difference between C and S

In this case, M defines a mixin (it is a class which extends Object, it extends object with the mixin { var m; }), and so is { var c; } (the mixin defined by the class C).
The superclass of C is A. The difference between C and A is the "mixin" { var c; }.
The superclass of A is S. The difference between A and S is the mixin defined by M.
That means that in every case, the difference between a class and its superclass is a mixin.
The M in S with M refers to the mixin define by M. The superclass of S with M is S and the mixin of M defines the difference.
The superclass of C is S with M (whether named A or not) - so S is not the superclass of C, and there is no single mixin which describes the difference between C and S. There are two mixins (that of M and that of C) that together describe that difference, with S with M as the intermediate class.
(That { var c; } is a mixin can be seen from a declaration like class D = A with C; which extends the class A with the mixin { var c; } to get a class that has the same fields as C).

Oh... Thank you for clarification. But from the specification I had a different understanding of what mixin is. So I was under impression that mixin is a class which follows with clause.

That means that in every case, the difference between a class and its superclass is a mixin.

But what about
class M {
  var m;
  M(val) {
    m = val;
  }
}

Specification reads

It is a compile-time error if a declared or derived mixin explicitly declares
a constructor.
What is mixin in this case? The difference between Object and M cannot be a mixin because class M defines a constructor.

Specification written in a way that makes me think that mixin is a class that describes a set of "adjustment" that should be applied to superclass and produces new (named or not) class that became a new superclass

We say that a class can be "used as a mixin" when it doesn't have a constructor. As such S with M is using the class M as a mixin. However, what that means is that the members declared by M are added to the class S with M (which has superclass S and which also adds forwarding constructors for each generative constructor in S).
The members of M that are only inherited are not included in the mixin application.
You can see this as extracting the "mixin of M" from M (the delta between M and its superclass) and applying it to the superclass. That's my words, I don't think the specification says that.
It used to be that the superclass of a mixin class had to be Object. Even then, the members of Object were not included in the mixin application. It was always only the declared members of the class used as a mixin.
If a class defines a constructor, then it can't be used as a mixin. In my words, the class does not have a mixin that you can extract and apply to something else - or it has one, but you can't apply it. The end effect is the same - it's a compile time error if you try.

@lrhn thank you! Now it's much clearer for me. What I'm going to do is to close this issue and create the new one. Than specification should clearly define the following:

mixin definition
clear definition of derived mixin and clear definitionof declared mixin (btw what is declared mixin?)
clearly state that if class, that mixed in by with clause, only members declared in the class are added to the class declaration, not the inherited ones (or at least add non-normative section to the spec with an example)

Do you agree with it?
And I have one more (hope the last one:))  question regarding mixins. Specification reads

Let MA be a mixin derived from a class M with direct superclass Sstatic.
Let A be an application of MA. It is a static warning if the superclass of A
is not a subtype of Sstatic.

I'm I understand this right that this describes the following case:
class Sstatic {
}
class M extends Sstatic {
}
class SuperA {
}
class A = SuperA with M;  /// static type warning because SuperA is not a subtype of Sstatic

main() {
  new A();
}

If this is so it looks as a strange limitation

To be exact: The specification needs to clearly specify how a mixin application defines a new class from a super-class and a mixin-class. That includes saying that only the members declared in the mixin-class (not those inherited from the super-class of the mixin-class) are added to the new class, along with forwarding constructors for each generative constructor of the super-class.
I agree that the sentence "C declares the same instance members as M" would be more clear if it emphasizes that only the declared members, not the inherited members, of M are declared by C.
Speaking about "mixin" as a separate concept might just be confusing, but if it is used, it should be clearly defined.
A for the question, it is exactly the case that it covers. The limitation is necessary because the mixin class may contain code that does "super.foo()", and to ensure that this isn't completely wrong, the super-class that the mixin class is applied to should also have the same members.

@lrhn Thank you!


Make minichlink print flash amount

What do you mean by that? minichlink already prints flash amount during setup:
Found WCH Link
WCH Programmer is CH32V307 version 2.11
Detected: CH32V003
Setup success
Flash Storage: 16 kB
...

So is the issue to (e.g.) add a new command to output just the flash amount separately?

Perhaps @cnlohr meant to print the amount of flash actually written during programming? E.g. the start address and extent or something like that?
../../ch32v003fun/../minichlink/minichlink -w blink.bin flash -b
Found WCH Link
WCH Programmer is LinkE version 2.11
Chip Type: 003
Setup success
Flash Storage: 16 kB
Part UUID    : ...
PFlags       : ff-ff-ff-ff
Part Type (B): 07-13-bb-91
Read protection: disabled
Interface Setup
Image written.


incorrect text?

[Enter feedback here]
please review and verify if this table is correct:
the source attribute is incorrect and is not accepted.
Name | Source attribute | Namespace
SessionDuration | "provide a value between 900 seconds (15 minutes) to 43200 seconds (12 hours)" | https://aws.amazon.com/SAML/Attributes

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

ID: 8fa5814d-91e2-2f75-77e7-62a8597f340c
Version Independent ID: 458e93d7-a180-4c2f-5077-9b9d124d726a
Content: Tutorial: Microsoft Entra SSO integration with AWS Single-Account Access - Microsoft Entra
Content Source: articles/active-directory/saas-apps/amazon-web-service-tutorial.md
Service: active-directory
Sub-service: saas-app-tutorial
GitHub Login: @jeevansd
Microsoft Alias: jeedes

@AllensonAzure
Thanks for your feedback! We will investigate and update as appropriate.

@AllensonAzure
Thanks for reporting this! We have created a PR for this issue and the changes should go live soon.