[Task]: Hope UI 1.0 Release Checklist

1.0 Release Checklist
The following is an in progress list of remaining tasks before the release of 1.0 which is a complete rewrite of the library.
This will be updated weekly; so watch for changes.
The new documentation is available at next.hope-ui.com.
Design

[ ] Figma UI kit

Documentation

[x] Getting started
[x] Styles
[x] Theming
[ ] Components
[ ] Changelog
[ ] Migration from v0.x

Style engine
Styling

[x] Style props
[x] The sx prop
[x] Global styles
[x] Responsive styles
[x] Hope factory

Theming

[x] ColorMode
[x] ThemeProvider
[x] ThemeOverride
[x] Component theme

UI Components
Buttons

[x] Button
[x] IconButton
[x] CloseButton
[ ] FileButton
[ ] ToggleButton

Layout

[x] AspectRatio
[x] Box
[x] Center
[x] Container
[x] Divider
[x] Flex
[x] Grid
[x] SimpleGrid
[x] Stack

Typography

[x] Heading
[x] Text

Data entry

[ ] AutoComplete
[ ] Checkbox
[ ] FileInput
[ ] FormControl
[ ] Input
[ ] MultiSelect
[ ] NativeSelect
[ ] NumberInput
[ ] PasswordInput
[ ] Radio
[ ] RangeSlider
[ ] Select
[ ] Slider
[ ] Switch
[ ] Textarea

Date and time

[ ] Calendar
[ ] DatePicker
[ ] TimePicker

Data display

[ ] Accordion
[ ] Avatar
[ ] Badge
[ ] Card
[x] Icon
[x] Image
[x] Kbd
[ ] List
[ ] Table
[ ] Tag
[ ] Timeline

Navigation

[x] Anchor
[ ] Breadcrumbs
[ ] Pagination
[ ] Stepper
[ ] Tabs

Feedback

[ ] Alert
[ ] Progress
[ ] RingProgress
[ ] Skeleton
[ ] Spinner
[ ] Toast

Overlays

[x] Drawer
[ ] Menu
[x] Modal
[x] Popover
[ ] Tooltip

@fabien-ml I'm going to start converting one of my personal projects to Hope UI rewrite and then use that to focus me on contributing back (e.g implementing some of the remaining components).
Before I get started - which branch should I work from / any other things to keep in mind?

@martinpengellyphillips you can start from the develop branch.
To create a component that support Hope-ui theming you need to learn about this https://next--hope-ui.netlify.app/docs/theming/style-config-api.
I'm open to PR, but I want to keep control over the UI design.
The visual style takes inspiration from Mantine and TailwindUI design.

Also I'm currently on the FormControl and Input component, so choose others 😅

👋, For anyone who's looked at this issue and haven't seen any progress for weeks, it's because I've decided to pull the heavy work done on the complex components into another (headless) library that will be used by Hope-UI under the hood.
The repo is here: https://github.com/fabien-ml/kobalte

wave, For anyone who's looked at this issue and haven't seen any progress for weeks, it's because I've decided to pull the heavy work done on the complex components into another (headless) library that will be used by Hope-UI under the hood.
The repo is here: https://github.com/fabien-ml/kobalte
Oh, this is cool! Thanks for the info!

👋, For anyone who's looked at this issue and haven't seen any progress for weeks, it's because I've decided to pull the heavy work done on the complex components into another (headless) library that will be used by Hope-UI under the hood.
The repo is here: https://github.com/fabien-ml/kobalte

Love it! Had been hoping to use https://github.com/tw-in-js/twind with hope-ui, but saw that Stitches was hardcoded. Sounds like this change in direction should allow for something like twind.
Curious - re headless patterns, are you leaning more towards the Radix approach, or React Aria approach?

@marbemac it will be more like the DX of radix (component based), the API is very inspired from radix, but the a11y features are from react-aria.
It's a mix of what I've learned from radix, ariakit and react-aria codebase.
I've also made a tailwind plugin for easy styling but not sure if it apply to twind

Oh, this is cool! Thanks for the info!
Any timeline for both libraries?

@apollo79 for Kobalte (the headless lib) i expect a v0.1.0 in the first week of January 2023 with the following components:

Button
ToggleButton
Alert
Link
Listbox
RadioGroup
CheckboxGroup
Switch
Dialog
Popover
HoverCard
Select (single and multi-select)
Menu (with nested and context menu support)

Then the "styled" version will be integrated in Hope-UI, but I haven't planned this part yet.

Oh, this is cool! Thanks for the info!
Any timeline for both libraries?

@apollo79 for Kobalte (the headless lib) i expect a v0.1.0 in the first week of January 2023 with the following components:
* Button

* ToggleButton

* Alert

* Link

* Listbox

* RadioGroup

* CheckboxGroup

* Switch

* Dialog

* Popover

* HoverCard

* Tabs

* Select (single and multi-select)

* Menu (with nested and context menu support)

Then the "styled" version will be integrated in Hope-UI, but I haven't planned this part yet.

Nice! Can't wait for Hope-UI v1!

Do you plan to create datepicker component for kobalt anytime soon?

Yes, there is a good date picker in react-aria that I would like to recreate in Kobalte, and then add the styled version to Hope UI.

Waiting for it, thanks)

@fabien-ml I'm starting work on a foundational stack that I'll be using for new products moving forward, and am currently planning to use twind (with similar approach to your Kobalte tailwind plugin with the ui-x pseudo selectors to target state, which is brilliant).
Given this, I am trying to decide the best course forward:
a) Build my own component library on top of Kobalte (effectively, hope-ui, which seems kind of redundant).
b) Put this effort towards helping hope-ui, assuming you are open to contributors at this stage (I know, it's early in the v1 lifecycle so I understand if you just want to get it to a more stable point first)
I just did a POC for (a) - creating a simple Button component with Kobalte + Twind - and effectively I ended up copying most of the Hope UI button code and just swapping out the stitches styling bits for twind driven styles.
For B, I was wondering if perhaps hope-ui could somehow still allow for the classes/styles to be swapped out / driven by something other than stitches?
Using the Button component as an example, all of the parts (root, icon, loader, content, etc) grab their classes from functions exposed on a context provider that wraps the button. What if that context provider was instead at the root (HopeProvider), similar to how the custom component theming is working right now. One would be expected to supply an object that supplies these class/style generator functions for all hope components. And then all of the stitches (or tailwind, whatever hope-ui ends up defaulting to) code is moved to a separate package that folks can use for easy mode.
Just an idea as I dig into Hope UI and Kobalte - not sure what your plans are in general for styling for the Hope UI + Kobalte combo that you are probably working on now.
PS - if this is better as a separate discussion or issue please feel free to move it!

Back of the napkin example:
/**
 * Current code that's inside `button.tsx`. Generates class names via stitches,
 * exposes those over a local button context provider.
 */
const { baseClasses } = useButtonStyleConfig("Button", styleConfigProps);
<ButtonContext.Provider value={{ baseClasses }}>
  // Actual button
</ButtonContext.Provider>

/**
 * Instead, a more generic call to a helper that under the hood grabs the object
 * with the button part class names, from the root provider context.
 *
 * useStyleConfig(hopeComponent: "Button" | "Dividier" | "Heading" | "Modal" ...etc, styleConfigProps: RelevantPropsForHopeComponent)
 */
const { baseClasses } = useStyleConfig("Button", styleConfigProps);

/**
 * Required `styles` object passed into root HopeProvider, for `useStyleConfig` to access.
 *
 * `defineStyles` wrapper mostly for typing support.
 */
const styles = defineStyles({
  components: {
    Button(props: ButtonStyleConfigProps): Record<ButtonPart, string> {
      return {
        root: '',
        icon: '',
        leftIcon: '',
        rightIcon: '',
        loaderWrapper: '',
        loaderIcon: ''
      }
    }
    // ... the rest of the hope components
  },
});

// Pass the styles config into HopeProvider
const App = () => {
  return (
    <HopeProvider styles={styles}>
      // ..
    </HopeProvider>
  )
}

So refactoring the existing stitches based styling to this system might look something like this:
// @hope-ui/stitches
export const styles = defineStyles({
  components: {
    Button(props: ButtonStyleConfigProps): Record<ButtonPart, string> {
      // the same `useButtonStyleConfig` that is currently inside of `button/button.styles.ts`
      return useButtonStyleConfig(props).baseClasses;
    }
  },
});

Or tailwind based styles...
// @hope-ui/tailwind
const styles = defineStyles({
  components: {
    Button(props: ButtonStyleConfigProps): Record<ButtonPart, string> {
      return {
        root: cx({
          'bg-red': props.variant === 'danger',
          // ... etc,
        }),
        icon: '',
        // ... etc
      }
    }
  },
});

@marbemac sorry for the late response.
I think you'd better building your own components on top of Kobalte, more control over the API design, the tools you want to use and the visual style.
I'm a bit sick and tired of CSS-in-JS, "being Chakra ui like", style props API and all the problems that come with (performance, SSR, TypeScript intellisense, the Stitches css-in-js lib used which is almost dead project, etc).
My goal with Hope UI was to bring some well designed, accessible components, ready to use for people without any design skills, for creating PoC, side project etc. But currently I spend most of my time fighting with the problems above instead of building components. While building v0.x a year ago I've found the "Chakra ui like" API interesting, but there are so many drawback that i'm tired of.

np, thank you for the response!

Hi everyone and sorry for not communicating since January, here is some update about the future of Hope UI.

All components needed to reach feature parity with v0.x are done in Kobalte (the headless lib), with major improvement arround accessibility and stability.
The work on the new version powered by Tailwind CSS has started.

However since it's almost a new project from zero and to avoid confusion, i've decided to move it to another org and with a new name.
So the official successor of Hope UI, can be found here: https://github.com/kobaltedev/pigment

I would like to suggest changing the documentation and Readme to properly indicate that development on Hope UI stopped indefinitely and there is this new successor. I only found out about this because I read this Issue, but not everyone does or wants to do that, it's fairly long. There's also multiple warnings that a rewrite is in progress. The project looks very much alive, if you never see any of this.

Any migration plan?


Implement ToOwned for Event<&'a OsStr>

I am using inotify with calloop and one issue I've noticed is the lack of ability to easily convert an event from the methods into an owned event to pass to calloop. Calloop gets kinda messy when an Event in an event source has a lifetime, so getting an owned copy is typically the best way around this issue.
I noticed the presence of into_ownedthat is only available with the streams api, I think we could convert this to delegate to an implementation of ToOwned and made always available.

Hi @i509VCB, thank you for your pull requests! I'm currently on vacation, but I'll be back next week and will take a look then (or maybe the week after, if there's too much of a backlog to catch up on).

Ah no worries

#179 has been merged, which is a partial resolution to this issue.

I was curious about this, and from this StackOverflow question it sounds like it is not really needed to implement the ToOwned trait unless there is a specific use case that needs that trait in particular. Having the Event.to_owned() non-trait method may be sufficient, if I understand correctly.
I am not familiar with the calloop crate, but a search over its GitHub source does not find any references to the ToOwned trait.

So in the case of calloop, I need to have an owned event since an event source in calloop has an Event assoicated type.

The Event.to_owned() method already satisfies that need to get an owned Event, right? I'm having trouble understanding why the ToOwned trait should be implemented in addition to that?
Reading the SO question again, it sounds like ToOwned isn't really a fit for Event, as its intent is to be applied to reference types like str and OsStr to get a String and OsString. Event on the other hand is not a reference type. We can still define Event.to_owned() as a convention as a lightweight clone, but that doesn't imply we must implement ToOwned.
Maybe the proper solution here is to implement Clone ourselves (just rename to_owned() to clone() essentially), and then we can use the built-in ToOwned impl for Clone types. And then delete our to_owned() method as it would delegate to clone().

Okay, I now understand what was meant by this change "pending future Rust releases," presumably referring to impl specialization and RFC 1210. So hypothetically if/when RFC 1210 stabilizes then it will be possible to implement ToOwned here.

Thank you for looking into this, @talklittle! I've looked at the documentation of ToOwned, and I believe you're right: the trait doesn't fit Event, and the existing to_owned method should suffice.
Closing this issue. @i509VCB, feel free to reopen, if you disagree.


plotSpikeStats confuses 'allCells' and 1st pop of 'eachPop'

I have tried to use the spikeStats analysis.
It make an error if called with:
analysis.plotSpikeStats (include = [‘allCells’, ‘eachPop’], timeRange = None, graphType=’boxplot’, stats = [‘rate’, ‘isicv’], popColors = [], figSize = (6,8), saveData = None, saveFig = None, showFig = True)
It confuses allCells and the first pop of eachPop in the vertical axis of the box plot.
I can only guess that the correct boxplot for allCells in the one on the top.
I'm using the netpyne <IP_ADDRESS>.

@jjcarre this bug is fixed right?

I don't see a pull request associated with this issue, but I'm unable to recreate the issue

thx ...did you try with tut5.py?

just tried tut5 here are the graphs it made, let me know if this isn't the desired result
![model_output_spikeStat_boxplot_rate](https://user-

images.githubusercontent.com/23328106/69983144-9a855e80-14fb-11ea-80a0-b2bba965a4fd.png)

yes that looks correct. thanks for testing this. I'll close issue  for now since looks magically solved :) thx!


Player notifier v1

Initial upload. Features:
1. List of players to not notify.
2. Screen goes red when there are players nearby that are not on the 'do not notify' list.
Have not implemented button to grab all players on screen and add them to the 'do not notify' list.

Whaasuppppp


Flesh out the web editor, remove drag-and-drop

https://user-images.githubusercontent.com/1664407/199611654-8e9d39aa-a323-4a4e-b285-5abaf9fb0d82.mp4
Remove drag-and-drop for now, since it complicates the code, we were using a library I'm not sure is the right choice, and the UX of dragging a trash can to a lane vs a lane to a trash can is a bit unclear to me. Instead, just have some buttons inline to each card, and add new lanes to the end always.

This looks as easy to user as streetmix.net, if not more so. And it's simpler which is good (and more relevant to OSM). Transport focused OSM editing functionality here we come?

Sorry I haven't been following development here that closely, so feel free to ignore me if I'm off base.
I felt pretty good about the UI we iterated on for the abstreet lane editor, where you could drag-and-drop lanes to re-order them, but deleting was a click-button action.
Maybe that's a reasonable route to work towards for this web implementation:
https://user-images.githubusercontent.com/217057/199624454-1bbce7b6-11fb-4e80-a514-94d3d26575a6.mp4

I felt pretty good about the UI we iterated on for the abstreet lane editor, where you could drag-and-drop lanes to re-order them, but deleting was a click-button action.

Good feedback, thanks! I think the A/B Street behavior is what we want to build towards here. This JS editor died off for a few months, and I want to get the ball rolling again by attempting https://github.com/a-b-street/osm2lanes/issues/240#issuecomment-1288582528. Drag-and-drop will come back, but maybe not with sortable.js. And having a separate button for deletion (instead of dragging a lane <-> a trash can) sounds like simpler UX too.

PTAL, I switched over to always building up DOM elements, and using buttons.


Encre core: add BaseLM and BaseLLM for chat inference

BaseLM Class:
Description:
BaseLM serves as an abstract foundational class designed to be the backbone for our language models.
Key Functionalities:

Token Counting: getNumTokens method provides a mechanism to count the number of tokens in a given text.
Uses a character-based approximation for English as a fallback, with the option for model-specific encoding.
Prompt Conversion: BaseLM includes a static method, _convertInputToPrompt, for converting various input formats (BaseLMInput) into a standard BasePrompt format.
Parameter Identification: The _identifyParams method facilitates the recognition and management of model-specific parameters.
Cache Management: Offers integrated caching mechanisms to enhance efficiency and reduce redundant model calls.

BaseLLM Class:
Description:
BaseLLM, an extension of the BaseLM, provides functionalities tailored for the "LLM" type.
Key Functionalities:

Namespace Management: Comes with a predefined namespace for better classification of LLM-specific operations.
Model Interactions: Incorporates methods like provide, provideWithPrompts, predict, predictWithMessages, call, and invoke for streamlined and direct interactions with the model.
Options Management: Houses specialized methods (_splitCallableOptionsFromCallOptions and others) to manage and customize call options to cater to LLM specificities.
Cache Integration: Seamlessly works with caching solutions, optimizing and accelerating repetitive prompts.


Avoid use of _umul128 on Windows ARM64 (VC-WIN64-ARM)

_umul128 is unavailable for ARM64 when building using Visual Studio, causing a linker failure when attempting to build for VC-WIN64-ARM. This limits the use of _umul128 to AMD64 builds.
This applies to both OpenSSL 3.0 and OpenSSL 1.1.1.

CI failure seems irrelevant but needs to be fixed.
Do we consider this fix as urgent?

Do we consider this fix as urgent?

It is not a CI breakage, so no, not urgent.

We can amend the commit message when merging. I am OK with CLA: trivial for this.

@paulidale There is no VC-WIN64-ARM target on 1.0.2. I do not think this needs to be backported there.

x86 Win has the same problem.  So does ARM32 Win.

Yes, x86 32 bit is okay.  My mistake.  This only impacts AARCH64.

I've proposed an alternative fix in #20244

@tomato42 This pull request that specifically and narrowly includes one supported/adopted platform and thus keeping other platforms from attempting to use an unsupported intrinsic is, IMO, the better, more immediate solution to getting the build fixed and working even if it doesn't result in the most performant solution.  This minor change has also already been signed off on.  I think getting the build working for the target is a higher priority while performance related adjustments like your proposed change can be applied in a future release.

@slproweb: I'm the original author of the buggy code. The proper fix, that handles both X64 and ARM64 is not really complex, and the difference in performance of the fallback code vs native instructions is a factor of 5 to 10 (if ARM64 is anything like x86_64 CPUs), you really don't want to use it.

24 hours has passed since 'approval: done' was set, but as this PR has been updated in that time the label 'approval: ready to merge' is not being automatically set.  Please review the updates and set the label manually.

Looks like #20244 has been merged in preference. Closing this.


Projects from v2.4 and v2.5 are incompatible

It's currently impossible to save a project from v2.4 and load into v2.5, vice-versa.
The next release of this app should use a Json serializer instead, to avoid this kind of problem. I'll will try to support old projects too.

No way right now. :/


Proxy protocol and Ingress routes

I'm using Traefik, defining the docker-mailserverservice as ClusterIP and adding the IngressRouteTCP definitions, this got me thinking if it would be possible to set up this on the chart.
Would be enough to document the changes required to Traefik or Nginx to handle the ports? I mean the port binding for these controllers.
It would also require adding a variable inside the service definition to sort the conditionals and prepare the bindings, like:
  ingressClassName: "traefik"

In that way, for Traefik the IngressRouteTCP definitions will be created while for nginx the config maps.
I can try to implement this, would you consider a different approach?

Comments on #126.


Delete all segments

Hi all,
I'm planning to reindex all the data in my Druid cluster (following some mistake that was found in the data preparation...), and I'm thinking about using this opportunity to delete all the data. I've seen a few mentions of the kill task, but my question is - is the procedure below expected to work as well -

Stop all Druid nodes
Truncate table druid_segments
aws s3 rm path/to/druid/segments --recursive
rm -rf /opt/druid-0.10.0/var/druid/segment-cache/* on all historicals
Start all Druid nodes

Main reason I prefer this method is that at some point in the life of the cluster I moved to a separate MySQL instance, and didn't bother to migrate the data. Therefore, I currently have segments in deep storage that are not referenced in MySQL. The kill task won't delete them, but this procedure will...
Any feedback is appreciated
Thanks!
Eran

@erankor that should do it. And if you really want to clear all the state of the cluster, you might as well drop and re-create the whole MySQL database, rather than just truncate druid_segments.
Closing this but feel free to reopen if you want.

Great, thanks @gianm !


Correct Missing Type Annotations

ready for review / comments

I can take a look at this tonight, but see other libraries that use the CV class implementation for help on type annotating this:  https://github.com/adafruit/Adafruit_CircuitPython_TLA202x/blob/aa66231e5f90c6e33acce4cc3888bd888fed9e92/adafruit_tla202x/init.py

ready for re-review

review for prev comments


[Refactor] Load the deprecated master role in a dedicated method instead of in setAdditionalRoles()

Description
The original code is introduced by commit https://github.com/opensearch-project/OpenSearch/commit/ea3148312622cd1362593e3623d498e57913ae45 / PR https://github.com/opensearch-project/OpenSearch/pull/2424, where node role 'master' is deprecated, and the alternative role 'cluster_manager' is added.
The location for loading the deprecated master role  in the workaround is not suitable.

Changed the location to load the definition of deprecated master role from the method setAdditionalRoles() (which used to load roles defined by plugins) to a new dedicated method setDeprecatedMasterRole().
Changed the unit test accordingly.

Issues Resolved
Resolve https://github.com/opensearch-project/OpenSearch/issues/4579
Check List

[x] New functionality includes testing.

[x] All tests pass

[ ] New functionality has been documented.

[x] New functionality has javadoc added

[x] Commits are signed per the DCO using --signoff
[x] Commit changes are listed out in CHANGELOG.md file (See: Changelog)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #4582 (77cf700) into main (7ebb2af) will increase coverage by 0.02%.
The diff coverage is 85.71%.

@@             Coverage Diff              @@
##               main    #4582      +/-   ##
============================================
+ Coverage     70.68%   70.71%   +0.02%
- Complexity    57379    57423      +44
============================================
  Files          4628     4628
  Lines        276073   276052      -21
  Branches      40421    40414       -7
============================================
+ Hits         195146   195202      +56
+ Misses        64562    64478      -84
- Partials      16365    16372       +7

Impacted Files
Coverage Δ

...org/opensearch/common/logging/LogConfigurator.java
24.63% <0.00%> (+6.35%)
:arrow_up:

...ava/org/opensearch/cluster/node/DiscoveryNode.java
75.68% <100.00%> (+0.22%)
:arrow_up:

server/src/main/java/org/opensearch/node/Node.java
86.35% <100.00%> (+0.02%)
:arrow_up:

...a/org/opensearch/client/cluster/ProxyModeInfo.java
0.00% <0.00%> (-60.00%)
:arrow_down:

.../java/org/opensearch/node/NodeClosedException.java
50.00% <0.00%> (-50.00%)
:arrow_down:

.../opensearch/client/indices/CloseIndexResponse.java
56.25% <0.00%> (-35.00%)
:arrow_down:

...min/cluster/snapshots/get/GetSnapshotsRequest.java
52.63% <0.00%> (-31.58%)
:arrow_down:

...opensearch/snapshots/SnapshotMissingException.java
28.57% <0.00%> (-28.58%)
:arrow_down:

...rc/main/java/org/opensearch/ingest/IngestInfo.java
51.72% <0.00%> (-27.59%)
:arrow_down:

.../search/aggregations/pipeline/HoltLinearModel.java
20.33% <0.00%> (-25.43%)
:arrow_down:

... and 487 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Discriminator - activation function

Hello, I would like to ask why you didn't use any activation function after the last convolutional layer in the discriminator.
def build_discriminator(self):
    def d_layer(layer_input, filters, f_size=4, bn=True):
        """Discriminator layer"""
        d = Conv3D(filters, kernel_size=f_size, strides=2, padding='same')(layer_input)
        d = LeakyReLU(alpha=0.2)(d)
        if bn:
            d = BatchNormalization(momentum=0.8)(d)
        return d

    img_A = Input(shape=self.img_shape)
    img_B = Input(shape=self.img_shape)

    # Concatenate image and conditioning image by channels to produce input
    model_input = Concatenate(axis=-1)([img_A, img_B])

    d1 = d_layer(model_input, self.df, bn=False)
    d2 = d_layer(d1, self.df * 2)
    d3 = d_layer(d2, self.df * 4)
    d4 = d_layer(d3, self.df * 8)

    validity = Conv3D(1, kernel_size=4, strides=1, padding='same')(d4)

    return Model([img_A, img_B], validity)

Also the shape of validity is (2,2,2,1) which is not clear to me. Shouldn't it be just one neuron -> real or fake like its depicted in your publication in figure 6?

The model is based on a patch-GAN so there is a real/fake label for each region of the image.


Accept http headers (canada11)

Http calls to now accept user defined headers for http calls
Work continued on PR https://github.com/RaRe-Technologies/smart_open/pull/272/commits

Sorry, what? As far as I can see, this PR introduces regressions, and has nothing to do with either Canada or HTTP headers.
Please be more articulate in your PRs, both the descriptions and the content. Closing here,

@interpolatio I think you pushed the wrong thing. Please check your pull requests before submitting them. Also, if your PR is unfinished, then make it obvious that it's still a work in progress, either in the title (prefix with "[WIP]") or in the description.
@piskvorky FYI @canada11 is the author of the original PR, now abandoned.

My original pull request is still up. I had a question about the Travis CI output, I wanted to make sure I wrote the unit test correctly. If that unit test passes then that was all that was holding that branch back from being merged. If you guys (@mpenkov or @piskvorky) want to take a quick peek at it, I'd be grateful for any help with what I did wrong. :1st_place_medal: I'll ping you guys there too in case this pull request was closed and you don't see this.


feat(chat): add loader while uploading items to publish and handle error if no one valid items for publish exists in publish request (Issue #1579)

Description:
add loader while uploading items to publish and handle error if no one valid items for publish exists in publish request
Issues:

#1579

UI changes

Checklist:

[x] the pull request name complies with Conventional Commits
[x] the pull request name starts with fix(<scope>):, feat(<scope>):, feature(<scope>):, chore(<scope>):, hotfix(<scope>): or e2e(<scope>):. If contains breaking changes then the pull request name must start with fix(<scope>)!:, feat(<scope>)!:, feature(<scope>)!:, chore(<scope>)!:, hotfix(<scope>)!: or e2e(<scope>)!: where <scope> is name of affected project: chat, chat-e2e, overlay, shared, sandbox-overlay, etc.
[x] the pull request name ends with (Issue #<TICKET_ID>) (comma-separated list of issues)
[x] I confirm that do not share any confidential information like API keys or any other secrets and private URLs

/deploy-review


Just an-ottr submission

Hope you find it ottrly amazing! :D

Discord handle: glaive#0303

Hey @OttrTechnology!
As you might've read here you've taken the 2nd place in the website development competition!
To collect your prize money you have to submit an expense to the Strapi Open Collective for $300. You can do that by clicking this link: https://opencollective.com/strapi/expenses/new.
After you've submitted the expense I'll ask you to confirm here in this chat that the expense was made by you and then we'll handle the payout!
Please if you have any questions please feel free to reach out to me in a DM on Discord. My Discord handle is boazpoolman#3868.
And again congratulations on your 2nd place! 🥈

Hi @OttrTechnology, 🎉
Can you confirm that the expense listed below was created by you?
https://opencollective.com/strapi/expenses/128535

Hi @OttrTechnology, 🎉
Can you confirm that the expense listed below was created by you?
https://opencollective.com/strapi/expenses/128535

Yes, I confirm the expense. Thanks.

Hi @OttrTechnology,
Your expense is approved! The payout will happen soon.
Thanks again for participating 🎉


Screen goes black but videos don't start

Hi!
First off: thanks for your incredible work! Really wonderful! Loving all the updates.
I'm having an issue where when the screensaver turns on, the monitors go black but the video never comes on. Using the mouse or any keys (including esc, left arrow, right arrow,...) to try to escape out of the screensaver only generates the MacOS alert sound as if the action wasn't allowed. Which means I'm stuck in the black screen. I've found two ways to work around this issue:

Hit the spacebar. This triggers the actual screensaver videos to play. At this point, using mouse, esc key, or any other keys exits out of the screensaver as expected.
Click the power button on the back of my iMac. This brings MacOS back to life.

All videos are fully cached, so I'm not sure why this is happening.
Required information

[ ] Mac model: iMac (iMac14,2. 27-inch, Late 2013)
[ ] macOS version: High Sierra 10.13.6
[ ] Monitor setup: 27" iMac + 27" Dell U2713HM
[ ] Aerial 1.5.0

Replicated the bug in the logs. Especially that last time, including all the different keystrokes. Ended on Spacebar which triggered the video to play.
AerialLog.txt

Hi @bluestarstudios
Sorry about that bug, just so I get it clearly, this does not happen all the time, but only some of the times ? Any hint about frequency ? From a quick look, you picked the mirrored mode for the video playback ?
I'll try to get back to you later today. But I had a quick look at your log but didn't find anything wrong.
However your description makes me think that there's something stealing focus considering pressing the Esc key makes you hear the alert sound. Someone had a similar issue a while back with a 3rd party tool that customized keyboards (replacing keys), any chance you are using something like this ?
Another quick idea (if you see the bug say, once a day), if you enabled the check for updates when Aerial is active, maybe disable that ? It does seem super weird to me that it would be that but just shooting some ideas.
Let me know if you have any keyboard specific utilities installed and we'll try to figure this one out.

Hi Guillaume!
Thanks for the super quick reply! You’re a rockstar.
Great thoughts on all of the above. I do have Keyboard Maestro installed, which does let me override various keyboard actions, so who knows if that’s connected. I’ll disable it today and see if it has any effect on Aerial.
As for the frequency, I’d say it’s about 90% of the time. It’s become pretty consistent. I have run a bunch of tests, thinking that maybe the “Enable Right Arrow” function was affecting it, but that’s not it either. I’ve reset various caches and tried various troubleshooting steps on my end to see if by any chance something else was causing the issue, but no luck so far in any of the steps to be able to replicate the issue 100% of the time. Curiously enough, there have been a handful of seemingly random times when Aerial performed without a hiccup, so who knows, maybe the issue is in fact connected with Keyboard Maestro, which may have not been running during those moments. Let’s see. I’ll test and report back soon.
Thanks!
David

On Jun 17, 2019, at 4:11 AM, Guillaume Louel<EMAIL_ADDRESS>wrote:
Hi @bluestarstudios https://github.com/bluestarstudios
Sorry about that bug, just so I get it clearly, this does not happen all the time, but only some of the times ? Any hint about frequency ? From a quick look, you picked the mirrored mode for the video playback ?
I'll try to get back to you later today. But I had a quick look at your log but didn't find anything wrong.
However your description makes me think that there's something stealing focus considering pressing the Esc key makes you hear the alert sound. Someone had a similar issue a while back with a 3rd party tool that customized keyboards (replacing keys), any chance you are using something like this ?
Another quick idea (if you see the bug say, once a day), if you enabled the check for updates when Aerial is active, maybe disable that ? It does seem super weird to me that it would be that but just shooting some ideas.
Let me know if you have any keyboard specific utilities installed and we'll try to figure this one out.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/JohnCoates/Aerial/issues/814?email_source=notifications&email_token=ABXVCHIKCDRCVIPOR4VVOMDP25WOHA5CNFSM4HYVP6NKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODX22V3Y#issuecomment-502639343, or mute the thread https://github.com/notifications/unsubscribe-auth/ABXVCHIXPX72XZAU6UR3HNDP25WOHANCNFSM4HYVP6NA.

Hi Guillaume! Thanks for the super quick reply! You’re a rockstar.

Hehe, I wish ;)

Great thoughts on all of the above. I do have Keyboard Maestro installed, which does let me override various keyboard actions, so who knows if that’s connected. I’ll disable it today and see if it has any effect on Aerial.

Ok let me know, see below for some more thoughts on this.

As for the frequency, I’d say it’s about 90% of the time. It’s become pretty consistent. I have run a bunch of tests, thinking that maybe the “Enable Right Arrow” function was affecting it, but that’s not it either.

Ok so that rules out my auto update theory.

I’ve reset various caches and tried various troubleshooting steps on my end to see if by any chance something else was causing the issue, but no luck so far in any of the steps to be able to replicate the issue 100% of the time. Curiously enough, there have been a handful of seemingly random times when Aerial performed without a hiccup, so who knows, maybe the issue is in fact connected with Keyboard Maestro, which may have not been running during those moments. Let’s see. I’ll test and report back soon. Thanks! David
…

So it took me a while to remember, but the user who found an issue with some keyboard software (it was unrelated to yours) wrote a nice python script that tells you which app has focus, I highly recommend you give it a shot :
https://gist.github.com/luckman212/91cdd9a08e98a9f01214bdfde3057e85
This will tell you who has the focus before Aerial starts and should help you debug. If you are curious about the issue we tried fixing back then, it was this one (you'll see outputs from the script there, the issue was about quitting the screensaver not entering) : https://github.com/JohnCoates/Aerial/issues/768
It includes in the end some info on mission control configuration and multiple monitors, since your issue is different this may not be related but who knows !
In any case, try the pyhon script, it should tell us quickly if someone steals focus from Aerial.

Very interesting! Ok, so I ran the python script and /System/Library/CoreServices/ScreenSaverEngine.app (ScreenSaverEngine) activates properly every time and nothing else gets in its way. I tested with Keyboard Maestro Engine active, as well as without, and nothing was taking focus away. So that rules that out.
HOWEVER, as luck would have it, every single time I ran the test the screens would go black, stay there for about 10 seconds and finally the videos would load. It's like when you go to the doctor and everything is fine. In all of these tests I also never had any issues with keys or the mouse not being able to trigger an exit from the screensaver. So I am yet to have a full test that's able to replicate the problem when the videos don't load (as they have so many times in the past). VERY strange and peculiar. I will keep testing to see if I can replicate the bug and isolate what's going on. Let me know if you get any other ideas...

Ha, I hate when that happens !
Some random morning thoughts:

The fact that observing the events makes the problem (kinda) disappear is interesting in a way. I would guess it kinda suggest something was trying to steal the event but maybe it can't with the script, in some way ?
So, just to be clear, did you also try without the script AND without keyboard maestro ? To rule out the observer effect which can go both ways.
You mention a 10 second delay which is not something I saw in your logs. I'm wondering if either Aerial hangs for 10 seconds, or macOS doesn't call us for 10 seconds. Here's an idea, in notification center, you can add a watch. So, with the script running, do that and note the second (approximately) when you trigger the hot corner for the screen saver. Then paste me the log after that time you noted above. This should tell us if Aerial is started properly and hangs, or if system hangs then init Aerial.
Can you maybe try another third party screensaver (Electric Sheep for example) to see if you have the same 10 sec hang issue there (with observer script and without) ?

One last thought, when checking your log again to make sure you didn't store your cache in a network drive or something that may be unrelaiably connected, I saw that your screens are 2048x1152. My guess is you are running some scaling mode for your screens ? Very much a long shot, but, maybe disable scaling just to see ? I think we have plenty of users with scaling, but I rarely see that on iMac logs so for some reasons that made me wonder.
That's a bit random but hopefully there's something in there that gives us a clue !

Another late morning thought, maybe give a shot to latest beta. This is a verrry long shot but, one of the major changes I did is that those builds are now properly signed and notarized (so no more unknown developper id warning), which may make a change in how system initialize them. I assume if that was an issue in 10.14.5, loads of people would have complained already but who knows !

Ok, so here are a few observations based on all of the above:
Python script shows that Screensaver process gets focus the moment the screens go black (2019-06-18 13:38:44). There's a 9-second delay from the moment the screens go black till the moment the video comes on and when the logs show the first log entry:
2019-06-18 13:38:53 : avInit1 (0.0, 0.0, 2048.0, 1152.0)
And yes, I'd also tried the tests without the script or Keyboard Maestro running.
I am noticing an interesting thing, which is that the preview in System Preferences also takes about 3-4 seconds to load. Can't even get into the Settings page before that.
AerialLog.txt

Ok great, let me give you some quick feedback.
To give you an idea, that log line you quoted is the first piece of code that Aerial actually runs. So it comes before eeeeverything else and is literally when our screensaver is finally initialized by the system. So the issue seems to come before that.
So let's throw out anything specific to Aerial's internal functionning, like video playback or anything, the problem seems to happen prior to that system side.
I would highly suggest a couple of ideas :

give a try to latest beta here https://github.com/JohnCoates/Aerial/releases/download/v1.5.1beta4/Aerial.saver.zip , it's signed and notarized (unlike 1.5.0), maybe that could help if it's really some sort of weird initialization/gatekeeper issue you are having ?
give electric sheep a try, and see if you have the same lag

This might help narrow it down a bit further. Please let me know what both things do !

Hello,
I would like to add some more information, as I encounter the same issue.

macOS Mojave 10.14.5 (18F132)
iMac (Retina 5K, 27-inch, Late 2014)
Aerial 1.5.0

I think the 2 main differences with @bluestarstudios' configuration is that I have the latest macOS version and no external display.
AFAICT it started with 1.5.0 that I upgraded just a few days ago.
I will definitely try the beta, and my log is attached.
AerialLog.txt

I still have the issue with v1.5.1beta4, sadly. 😞
New log attached.
AerialLog.txt

Bonjour @tbnv !
Sorry for that. Let me try to understand, can you confirm you are seeing this:

Using the mouse or any keys (including esc, left arrow, right arrow,...) to try to escape out of the screensaver only generates the MacOS alert sound as if the action wasn't allowed. Which means I'm stuck in the black screen.

Hit the spacebar. This triggers the actual screensaver videos to play. At this point, using mouse, esc key, or any other keys exits out of the screensaver as expected.

Correct ?
Thanks for confirming that 1.5.1beta4 does not fix. And also for the info that you think it happened when you upgraded to 1.5.0.
I'm trying to see what you and @bluestarstudios may have in common, apart from the same generation of CPU (Haswell) that's about it. I'm currently running both macOS 10.14.5 and Aerial 1.5.1beta4 on a 2011 Macbook Air without your issue, so I'm not sure it's a generation thing.
I'll try to make a list of ideas for both of you to try, feel free to pick the ones you want. Really sorry about this, but if you don't mind doing some testing, we'll figure this out!

@tbnv and @bluestarstudios
Here's a list of ideas, feel free to pick one (in bold) and try and report so we can try to narrow it down:
About needing to press space
This does sound to me like a confirmation dialog for something, that is hanging you on. Pressing Esc won't dismiss (possible for some), Esc, left and right will ring the bell, spacebar is equivalent to clicking the default value of the confirmation dialog.

Can you launch screensaver and try pressing Return instead of space bar and see if that works too ? If that does, that would probably give us a hint it's a dialog thing. Next, try again, press Tab. Does it ring ? If not, after pressing tab once, press space. Then quit screensaver/relaunch, still stuck or not ?

When stuck, can you try pressing Cmd + Shift + 3. You should hear a shutter sound, it's a shortcut to make a full screen capture (it will appear on your desktop). It probably will be all black but maybe not ?

Looking into console

Start console.app, on the left you have a list with System Reports and User reports. Open each, and look for a file in the column that appears with a name that starts with something like System Preferences, screenSaverEngine, or Aerial (or anything that sounds screensavery !). Attach those
Capturing all system logs to see what's wrong : In console.app, at the top of the list you'll see your computer name, click that. On the right you'll see scrolling tons of system messages. Press "Clear" to clear the list, then launch the screensaver (through a hot corner) and use the space bar thing (maybe wait 5 seconds ?). Then quit screensaver, go back to console, press cmd+A to select all, cmd+c to copy all and paste that into a text editor and attach it

(logs are anonymized but if you are unconfortable having them online I can give you an email)
Finding which version messed things up
If it's a regression in 1.5.0, we might be able to pinpoint where it happened through the betas.
First, can you first go into Updates tab of Aerial and make sure that these three are UNCHECKED

Automatically check for updates
Auto install updates while the screen saver runs
Look for beta updates

(You may want to see if that fixes the bug, though I doubt it)
Then:

Try 1.4.9 (it's the same as 1.4.8) https://github.com/JohnCoates/Aerial/releases/download/v1.4.9/Aerial.saver.zip

Is the bug gone ?
If not:

Try 1.4.6 https://github.com/JohnCoates/Aerial/releases/download/v1.4.6/Aerial.saver.zip

If 1.4.9 works fine, and you feel patient (I'm sorry for asking this!), here's a list of the betas (in chronological order) :
https://github.com/JohnCoates/Aerial/releases/download/v1.4.10beta1/Aerial.saver.zip
https://github.com/JohnCoates/Aerial/releases/download/v1.4.10beta2/Aerial.saver.zip
https://github.com/JohnCoates/Aerial/releases/download/v1.4.10beta3/Aerial.saver.zip
https://github.com/JohnCoates/Aerial/releases/download/v1.4.99beta1/Aerial.saver.zip
https://github.com/JohnCoates/Aerial/releases/download/v1.4.99beta2/Aerial.saver.zip
https://github.com/JohnCoates/Aerial/releases/download/v1.4.99beta3/Aerial.saver.zip
https://github.com/JohnCoates/Aerial/releases/download/v1.4.99beta4/Aerial.saver.zip
https://github.com/JohnCoates/Aerial/releases/download/v1.4.99beta6/Aerial.saver.zip
https://github.com/JohnCoates/Aerial/releases/download/v1.4.99beta7/Aerial.saver.zip
I'd suggest you cut the list in half by starting in the middle, then keep cutting the remaining in the middle. This is a bit of a pain to do, really so try that one last.
Ok that's about all I can think of right now. Hopefully we can narrow it down and fix the issue!

I should have told it, on my side I must press Enter.

I should have told it, on my side I must press Enter.

Ok... This is a weird bug, I have to say 🤔 Let me know if you can check some of the other stuff I suggested !

This morning after I powered the iMac the problem occurred the 1st time the screensaver launched. I didn't read your message above at that time, so I didn't gather more info.
I wasn't able to replicate the bug after that, by manually launching Aerial (with Alfred.app, then with an active corner). I must have tried 40 times. Even after logout+login.
Now after lunch, I want to wake up the computer but the screen remains black. I took a screenshot. It's attached (downscaled a bit, 'cause Githut limits file size). Result: he screen is black, though the screenshot captures the beginning of the video + description text + a bunch of Mail.app notifications.
I disabled updates options, let's see.

This morning after I powered the iMac the problem occurred the 1st time the screensaver launched. I didn't read your message above at that time, so I didn't gather more info.

Ok hopefully you can try and capture then. Note that you could also try Cmd+shift+5 to capture a window (try to click in the middle where a dialog box would be). Not sure that would work though with

I wasn't able to replicate the bug after that, by manually launching Aerial (with Alfred.app, then with an active corner). I must have tried 40 times. Even after logout+login.

That's super weird, I'm wondering if it's not a sparkle dialog (did you ignore by any chance the prompt you get the first time asking you if you want to enable auto updates or not ? and keep ignoring it ?). That could be consistant with once a day but that seems a bit weird. Other that that Sparkle should not fire any dialog if there's no update (and even then it kill the screensaver).

Now after lunch, I want to wake up the computer but the screen remains black. I took a screenshot. It's attached (downscaled a bit, 'cause Githut limits file size). Result: he screen is black, though the screenshot captures the beginning of the video + description text + a bunch of Mail.app notifications.

This is interesting. Unlike the logs both of you pasted previously, Aerial was running this time. So I guess Aerial ran normally, computer went to sleep, and when waking it up whatever dialog box popped messed up everything and there you go with a black screen "on top" of a properly running aerial behind.

I disabled updates options, let's see.

Ok let me know...

Hi all!
Just want to let you know that I’m traveling for the next week, so I’ll be able to resume any testing on my end as soon as I’m back. Though hopefully you manage to even figure it out before then.
Thanks!
Chat soon!
David
Sent by magic!
On Jun 21, 2019, 7:49 AM -0400, Guillaume Louel<EMAIL_ADDRESS>wrote:

This morning after I powered the iMac the problem occurred the 1st time the screensaver launched. I didn't read your message above at that time, so I didn't gather more info.
Ok hopefully you can try and capture then. Note that you could also try Cmd+shift+5 to capture a window (try to click in the middle where a dialog box would be). Not sure that would work though with
I wasn't able to replicate the bug after that, by manually launching Aerial (with Alfred.app, then with an active corner). I must have tried 40 times. Even after logout+login.
That's super weird, I'm wondering if it's not a sparkle dialog (did you ignore by any chance the prompt you get the first time asking you if you want to enable auto updates or not ? and keep ignoring it ?). That could be consistant with once a day but that seems a bit weird. Other that that Sparkle should not fire any dialog if there's no update (and even then it kill the screensaver).
Now after lunch, I want to wake up the computer but the screen remains black. I took a screenshot. It's attached (downscaled a bit, 'cause Githut limits file size). Result: he screen is black, though the screenshot captures the beginning of the video + description text + a bunch of Mail.app notifications.
This is interesting. Unlike the logs both of you pasted previously, Aerial was running this time. So I guess Aerial ran normally, computer went to sleep, and when waking it up whatever dialog box popped messed up everything and there you go with a black screen "on top" of a properly running aerial behind.
I disabled updates options, let's see.
Ok let me know...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Hi there,
Just to let you know that I didn't encounter the problem anymore, since I disabled the options to check for updates.

Hi @tbnv
I guess that's good, in a sense, so it's the update when screensaver is running that's the culprit. Do you remember if you installed Aerial for all users, or just your user ? Trying to think of what could be behind it...

@glouel I don't remember that. Is there a way to tell this without creating a new user account on the Mac just to test th? (I like to keep things tidy).

@tbnv no need to create an account, just look into
/Library/Screen Savers/
and
~/Library/Sceen Savers/
First one, all users, second one, just your user.
As for your testing, may I suggest you try to only enable "Automatically check for updates" and NOT "Auto install updates while screen saver runs".
My guess is the second one is the culprit from what you described. If it looks good with the first one, then you might want to try the second one and confirm it's indeed that one.
Thanks !

Thanks for the tip; I confirm it's installed only for me.

Having only "Automatically check for updates" enabled for a few days didn't block the screensaver. However, now that I turned "Auto install updates while screen saver runs" on, I got the problematic behavior again.

Awesome, that narrows it down then.
I'll have to rethink that feature I guess, that's slightly less awesome !

@tbnv one last thing, can you clarify if you are running an administrator account on your mac, or any chance this is some sort of company/managed account that may have some sort of restricted privileges or default settings/management applied ?

I'm using an administrator (and the only) account on this iMac.

@glouel Finally back from all my travel and read all the comments on things you guys tried. The suggestion that @tbnv had around the auto-update led me down a research path and looks like I found our culprit! So I run Little Snitch to control outgoing connections. Turns out that Little Snitch had automatically blocked "outgoing TCP connections to raw.githubusercontent.com" made by the ScreenSaverEngine. When I went in altered the rule to allow, suddenly the screensaver started behaving correctly again. So looks like if the Sparkle updater doesn't connect to the server to check for updates, the screensaver never actually loads. Does this sound like it could be it?

@glouel Finally back from all my travel and read all the comments on things you guys tried. The suggestion that @tbnv had around the auto-update led me down a research path and looks like I found our culprit! So I run Little Snitch to control outgoing connections. Turns out that Little Snitch had automatically blocked "outgoing TCP connections to raw.githubusercontent.com" made by the ScreenSaverEngine. When I went in altered the rule to allow, suddenly the screensaver started behaving correctly again.

Oh, wow. First, great bit of investigating!

So looks like if the Sparkle updater doesn't connect to the server to check for updates, the screensaver never actually loads. Does this sound like it could be it?

That could totally be it. That special weird update check is the very first thing that Aerial does on startup. I'm unclear whether Sparkle should block if the connection failed (which should be what happen with a firewall) but apparently that's what you saw so it could make complete sense indeed. In order to make the silent update work, I had to use some less used code path by Sparkle (they clearly don't recommend it, but that was the only way I found to make it work without having a companion app). So it's very possible that in this mode, it's blocking.
Can you please monitor it in the next few days and let me know if it looks fully fixed ? In any case, many many thanks for giving a more thourough look to this. Considering how few people so far were hit, Little Snitch could definitely be behind this.
@tbnv any chance you were running Little Snitch or another firewall?

Yep, I'm using Little Snitch as well! I'm on vacation right now so I'll check its rules when I go back home to see if there is a similar one on my side.

Le 13 juil. 2019 à 00:35, Guillaume Louel<EMAIL_ADDRESS>a écrit :
@glouel Finally back from all my travel and read all the comments on things you guys tried. The suggestion that @tbnv had around the auto-update led me down a research path and looks like I found our culprit! So I run Little Snitch to control outgoing connections. Turns out that Little Snitch had automatically blocked "outgoing TCP connections to raw.githubusercontent.com" made by the ScreenSaverEngine. When I went in altered the rule to allow, suddenly the screensaver started behaving correctly again.
Oh, wow. First, great bit of investigating!
So looks like if the Sparkle updater doesn't connect to the server to check for updates, the screensaver never actually loads. Does this sound like it could be it?
That could totally be it. That special weird update check is the very first thing that Aerial does on startup. I'm unclear whether Sparkle should block if the connection failed (which should be what happen with a firewall) but apparently that's what you saw so it could make complete sense indeed. In order to make the silent update work, I had to use some less used code path by Sparkle (they clearly don't recommend it, but that was the only way I found to make it work without having a companion app). So it's very possible that in this mode, it's blocking.
Can you please monitor it in the next few days and let me know if it looks fully fixed ? In any case, many many thanks for giving a more thourough look to this. Considering how few people so far were hit, Little Snitch could definitely be behind this.
@tbnv any chance you were running Little Snitch or another firewall?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Thanks for answering @tbnv , enjoy your vacations !

@glouel I don't have a Little Snitch rule preventing ScreenSaverEngine from fetching content from raw.githubusercontent.com.

yeah.. this is confirmed.. a different way..
looks like when it goes active it goes straight to the lock screen and its frozen.
I have 2 monitors so I set prefrences for it to only start on my second monitor
as soon as I pressed test.. both screens went to lock screen but where frozen, has to SSH into the machine and killall loginwindow to regain control
is there a script or do you have a comprehensive uninstall to remove everything I will try and revert to a previous version that I had working

yeah.. this is confirmed.. a different way..
looks like when it goes active it goes straight to the lock screen and its frozen.
I have 2 monitors so I set prefrences for it to only start on my second monitor
as soon as I pressed test.. both screens went to lock screen but where frozen, has to SSH into the machine and killall loginwindow to regain control
is there a script or do you have a comprehensive uninstall to remove everything I will try and revert to a previous version that I had working

Hey @duecedriver
Sorry about that, I think that 1.5.0 has some issues with some setups it seems, which vesrion of macOS are you running ? To uninstall, you only need to remove Aerial.saver, you can find instructions here : https://github.com/JohnCoates/Aerial/blob/master/Documentation/Installation.md#uninstallation
You only need to delete the .saver.
If you're willing, I'd suggest you give latest beta a shot : https://github.com/JohnCoates/Aerial/releases/download/v1.5.1beta11/Aerial.saver.zip
Let me know if this fixes things for you.

ok... I deleted most of what I could find  running mojave by the way
re-installed 1.4.9 I think.. last non beta prior to 1.5
selected h264 and tested.. worked
upgraded to 1.5 again
same thing jammed up
killall loginwindow from remote machine gets me back in
went in selected single screen and h264.. worked
selected single screen h265, worked
selected 4k hevc.. now working..  but not reliably
some hook between the screensaver and loginwindow process is likely not syncing up

Which version of macOS are you running ?
Did you try 1.5.1beta11 : https://github.com/JohnCoates/Aerial/releases/download/v1.5.1beta11/Aerial.saver.zip

Closing this as the original issue was Little Snitch. Version 1.6.1 fixes an important crash/hang bug that was introduced in 1.5.0 :  https://github.com/JohnCoates/Aerial/releases/download/v1.6.1/Aerial.saver.zip


Data That Is Already Grouped

First of all, very cool library!  I can tell you put a lot of thought into it.  Unless I'm not understanding something, the library assumes that the data will be assembled from multiple APIs.  What if that is not the case?  What if the API can already group the data (in my case, using graphql)?  It seems inefficient to make multiple API calls when I don't need to.  I think a slight change to the API would really open the use cases for this library.
Multiple APIs
const listbox = async query => {
  const [cities, airports] = await Promise.all([
    fetch(`/api/cities?q=${encodeURIComponent(query)}&limit=${maxItems}`).then(res => res.json()),
    fetch(`/api/airports?q=${encodeURIComponent(query)}&limit=${maxItems}`).then(res => res.json())
  ]);
  return [
    {
      id: 'cities',
      name: 'Cities',
      ratio: 8,
      displayField: 'name',
      data: cities,
      searchType: 'startswith'
    },
    {
      id: 'airports',
      name: 'Airports',
      ratio: 2,
      displayField: 'name',
      data: airports,
      searchType: 'contains'
    }
  ];
};

API that Already Groups Results
const listbox = async query => {
  const alreadyGroupedData = await fetch(`/api/grouped-data?q=${encodeURIComponent(query)}&limit=${maxItems}`)
    .then(res => res.json());
  return [
    {
      id: 'cities',
      name: 'Cities',
      ratio: 8,
      displayField: 'name',
      data: alreadyGroupedData.cities,
      searchType: 'startswith'
    },
    {
      id: 'airports',
      name: 'Airports',
      ratio: 2,
      displayField: 'name',
      data: alreadyGroupedData.airports,
      searchType: 'contains'
    }
  ];
};

Thank you! This would be a great enhancement and makes a ton of sense. I'll add this to the backlog and respond to this issue when I have an update. Hopefully soon!

@pspaulding v1.3.0 of Turnstone has just been released. Hopefully this will allow you to do what you were looking for.
The listbox and defaultListbox props can still be supplied as an array or object as in previous versions. But, in addition, they can now be supplied as a function.
The listbox prop would look something like the following example. It accepts the query as the sole argument and must return a promise that resolves to an array.
const listbox = (query) => fetch(`/api/locations?q=${encodeURIComponent(query)}`)
  .then(res => res.json())
  .then(locations => {
    const {cities, airports} = locations

    return [
      {
        id: 'cities',
        name: 'Cities',
        ratio: 8,
        displayField: 'name',
        data: cities,
        searchType: 'startswith'
      },
      {
        id: 'airports',
        name: 'Airports',
        ratio: 2,
        displayField: 'name',
        data: airports,
        searchType: 'contains'
      }
    ]
  })

Thanks again for the suggestion! This makes the definition of listbox groups super flexible.

Awesome!


Bug: Passing relative Path to StaticFilesConfig fails to join correctly but passes validation.

Passing a relative path, as str or Path object, generates a NotFoundException when resolving paths using the StaticFilesConfig class when it should be resolved correctly.
This is interesting, as the path will first be validated when instantiating the class by Pydantic with the DirectoryPath type (and a Path object created), but later when joining the directory and file_path it fails to resolve it correctly:
in base.py/get_fs_info [line 57]:
joined_path = join(directory, file_path)  # noqa: PL118

How to reproduce:
This returns a NotFoundException: "no file or directory match the path  was found"
static_path = Path("../static")
static = StaticFilesConfig(path="/ui", directories=[static_path])

While this works fine:
static_path = Path("../static").resolve() # or .absolute()
static = StaticFilesConfig(path="/ui", directories=[static_path])

A quick solution for this problem is to resolve() all given directories in StaticFiles:
class StaticFiles:
    """ASGI App that handles file sending."""
    def __init__(
        self,
        directories: Sequence["PathType"],
    ) -> None:
        """Initialize the Application.
        self.directories = [d.resolve() for d in directories]  # <-- here

I think there may be a better solution using Pathlib joining instead of os.join that might involve more refactoring.

Hi, thanks for the report. Can you check the main branch? We updated the configs there.

@Goldziher thanks for the reply. I just checked on main and it now works when passing a relative Path object, but not a str. (ie. Path("../static") works but not "../static")


Deprecate Symfony level sets

It's not best practise to use UP_TO_* sets in rector.php longer than is their single-run. They run dozens of rules with very complex logic, as it take to get from Symfony 2 to 7. It's like running a Tesla control and checking all elements available since the first horse ride :)
See section 3:
https://getrector.com/blog/5-common-mistakes-in-rector-config-and-how-to-avoid-them
It's best practice - and we use it this way since the first Symfony rule set - to run those just once and remove .

Instead use only the latest major Symfony sets, to keep up to date and get fast and reliable Rector run :+1:
Thank you

Resolves https://github.com/rectorphp/rector/issues/8403
Resolves https://github.com/rectorphp/rector-symfony/pull/547

See https://github.com/rectorphp/rector-src/pull/5477


fix: Add "type": "module" to package.json for ESM compatibility

This change adds the "type": "module" field to the package.json file to ensure the package is correctly recognized as an ES Module. This resolves issues with bundlers and compilers, such as Vite, that require explicit module type declarations to handle ESM syntax properly.
Without this field, certain environments may misinterpret ESM syntax, leading to errors during development and build processes. This update improves compatibility and developer experience.

Hmm, I believe vite should correctly parse the exports map. I won't have a chance to verify and test this until I'm back from vacation in two weeks


Linear Extender

This is the portion of the robot that allows us to extend vertically. Current concept:

Two Misumi Slides in parallel, facing inwards and last stage attached together -> see FUN Team Great Scott for inspiration
Attached to drivetrain with maximal stability
Holds #3

Extension:

Driven independently (two different motors, 40:1 or 20:1 NeveRest) -> subject to change
Pull string on each (kevlar string) -> look up gm0 linear slide rigging for a guide
Each string is connected to a winch on each motor
Pulley inserts between each slide, attached with short head nuts -> see CAD for more details

Retraction:

Single motor (preferably 60:1 NeveRest)
String connected to the top of slide and to motor winch, NO PULLEYS (maybe one for pulling string horizontally at base) -> see FUN Team Gearheads for inspiration
Motor mounted on base plate between slides (pushed back)
Motor lets out string as extension motors run, takes in as slide comes down (rate determined in code, think an artificial gearing)
MAYBE two strings attached to the same winch, one attached to the top of each slide. This could be overengineering

Starting fabrication. All structural components completed, needing waterjetting and large scale 3d printing.


When there are multiple points as prompts (for example, more than five points), some point areas cannot be segmented.

When there are multiple points as prompts (for example, more than five points), some point areas cannot be segmented.

The maximum number of prompt points is determined by the parameter decoder_max_num_input_points, which defaults to 6. You can modify its value in efficient_sam/efficient_sam.py, within the EfficientSam class, specifically in the build_efficient_sam method.

But I found that no matter the parameter  ### decoder_max_num_input_points gets bigger or smaller, the segmentation can only change according to the first six points


[incubator/orientdb] Support for existing volumeClaim or volumeClaimTemplates & storage classes with volumeClaimTemplates

Is this a new chart

NOTE: We're experiencing a high volume of PRs to this repo and reviews will be delayed. Please host your own chart repository and submit your repository to the Helm Hub instead of this repo to make them discoverable to the community. Here is how to submit new chart repositories to the Helm Hub.

What this PR does / why we need it:
To support existing volume claim with the chart for storage and backup folders to stay with persistence storage. second to support storage class name in autocreating volume claims through the chart while setting up orient. This will help in mapping NFS storage or other specific storage classes.
Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

fixes #

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[ ] DCO signed
[x] Chart Version bumped
[ ] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/chart])

I didnt do DCO on each commit. As this is my first time giving pull request in this repo. I can go and change now. So what should I do, keep me posted...


Fix GVK supplied to create owner reference for the secret/service/web…

This issue explains why the GVK is empty in the Deployment object that we get back from client-go: kubernetes/client-go#541 .
I will modify the code to use the correct GVK.

Good find with that issue!


sync from inner 0519

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


cairo: silence self_named_constructor

Silence a clippy warning.
Or do we want to break API here and rename it "new"?

An API break is not a problem.


Removing cards with the corner "x" is unreliable

I haven't been able to trace it down yet, but behavior can be reproduced by

Add a region
remove the region
add another region
try to remove the region - it'll deactivate, but not get removed.

It seems that active_regions may not be getting updated correctly as a computed property, or something else is failing to call update_selected, or it's getting called with no changes. Still needs work to trace what's going on.

Resolved in https://github.com/Water-Systems-Management-UCM/Stormchaser/commit/1458a4f62aa68183859b245b79f2e7002d49fcc0 - made regions and available regions get calculated once in the created() method rather than making them computed properties


GC log and profiler's output do not match

Hello, I see the following picture
My application worked  26 seconds.
This is full GC logs:
1.141: [GC (Metadata GC Threshold) [PSYoungGen: 1114640K->35370K(3421696K)] 1114640K->35394K(11242496K), 0.0162584 secs] [Times: user=0.08 sys=0.02, real=0.01 secs]
1.157: [Full GC (Metadata GC Threshold) [PSYoungGen: 35370K->0K(3421696K)] [ParOldGen: 24K->34380K(7820800K)] 35394K->34380K(11242496K), [Metaspace: 20890K->20890K(1067008K)], 0.0350389 secs] [Times: user=0.24 sys=0.04, real=0.03 secs]
2.592: [GC (Metadata GC Threshold) [PSYoungGen: 1182359K->45904K(3807232K)] 1216740K->80292K(11628032K), 0.0151422 secs] [Times: user=0.15 sys=0.01, real=0.01 secs]
2.607: [Full GC (Metadata GC Threshold) [PSYoungGen: 45904K->0K(3807232K)] [ParOldGen: 34388K->66964K(8842752K)] 80292K->66964K(12649984K), [Metaspace: 34904K->34904K(1079296K)], 0.0692222 secs] [Times: user=0.64 sys=0.25, real=0.07 secs]
[WARN] Install JVM debug symbols to improve profile accuracy
[WARN] Install JVM debug symbols to improve profile accuracy
7.582: [GC (Allocation Failure) [PSYoungGen: 3761152K->101985K(4689920K)] 3828116K->168973K(13532672K), 0.0453168 secs] [Times: user=0.61 sys=0.08, real=0.04 secs]
11.859: [GC (Allocation Failure) [PSYoungGen: 4689505K->88584K(5664256K)] 4756493K->155580K(14507008K), 0.0151962 secs] [Times: user=0.16 sys=0.10, real=0.02 secs]
24.473: [GC (Allocation Failure) [PSYoungGen: 5264392K->85427K(5664256K)] 5331388K->152431K(14507008K), 0.5884998 secs] [Times: user=9.13 sys=4.24, real=0.59 secs]
Heap
PSYoungGen      total 5664256K, used 2177494K [0x000000062ab00000, 0x0000000793100000, 0x00000007c0000000)
eden space 5175808K, 40% used [0x000000062ab00000,0x00000006aa608ab0,0x0000000766980000)
from space 488448K, 17% used [0x0000000766980000,0x000000076bcecec8,0x0000000784680000)
to   space 120320K, 0% used [0x000000078bb80000,0x000000078bb80000,0x0000000793100000)
ParOldGen       total 8842752K, used 67004K [0x0000000300000000, 0x000000051bb80000, 0x000000062ab00000)
object space 8842752K, 0% used [0x0000000300000000,0x000000030416f078,0x000000051bb80000)
Metaspace       used 56948K, capacity 58534K, committed 58624K, reserved 1099776K
class space    used 7306K, capacity 7629K, committed 7680K, reserved 1048576K

This is all GC logs from the logs.
as I see gc time from logs is not 54% of all time (from the flame graph).

The flame graph says nothing about GC.
The profiler expectedly warns about missing debug symbols.

We were not able to turn on debugging symbols (due to organizational problems).
But what it can be besides GC ?
54% of execution time.

CompilerThread, VM Thread, Sweeper thread, Service Thread, or any other native VM thread.
You may want to use threads (-t) option.

got it.
thanks.
BTW thanks to your profiler we found a bottleneck and the main reason for the performance problem.
Good product !!!

We were not able to turn on debugging symbols

I'd recommends using a JDK that has all necessary symbols out of the box, e.g. Liberica JDK, Azul Zulu, or others

I can't just install JDK
It can be done only via the technical department.
They can't change current JVM due to some prolicies.


1084 db changes

Tests are expected to fail. Note that this is going to the branch for fixing 1084.
Makes the needed DB changes.
The DB changes in the patch could be done in SQL. However, before I can execute those changes I need to perform some DB and filesystem cleaning (i.e. moving files to the upload folder again), so that's why those changes are performed in the python patch.

Thanks @antgonza! Comments addressed.

:+1:, very minor comments.

Thanks @ElDeveloper, I've addressed the comments.

Thanks @josenavas, :+1:
On (May-25-15|15:06), josenavas wrote:

Thanks @ElDeveloper, I've addressed the comments.

Reply to this email directly or view it on GitHub:
https://github.com/biocore/qiita/pull/1201#issuecomment-105325247

@antgonza >


@conda-forge-admin, please add user @mkitti

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I added user @mkitti in conda-forge/jill-feedstock#5.


dont die if timestamp dir does not exist

This fixes the case where a py file is tested as if it is a script but in fact is not
For example
https://github.com/SpiNNakerManchester/SpiNNakerGraphFrontEnd/blob/7865c26bba59fbc5ec146ec8003fc7f9e309a9d1/gfe_integration_tests/test_scripts.py#L51
The script tester will then report how long it took (as it does with all others)
But local setups may not have a GLOBAL_REPORTS environment variable
The default to write to the parent reports folder fails too as it was never created
So just dont report.
Can only be tested locally as Jenkins has GLOBAL_REPORTS environment variable

Spelling of comments apart...


[FIX] Emit warning when including/excluding unknown tasks

Fixes: https://github.com/SAP/ui5-tooling/issues/510

Coverage increased (+0.3%) to 94.289% when pulling 65c7ee8aab18c1544643c3036881bdd3c1411570 on warning-unknown-tasks into cf901f329a2b37629e1a3c03e6ae4b370cf646c5 on master.


Restrict screenshots more precisely

Your Question

Source File: CoronaWarnApplication.kt
Line(s): 101 - 103
activity.window.setFlags( WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE )
Feedback:
Screenshots der App sollten erlaubt sein, wenn der Bildschirm zur TAN-Eingabe nicht geöffnet ist. Es ist wünschenswert, wenn die Nutzer*innen Screenshots in den sozialen Medien verbreiten und so andere zur Installation der App anregen.

You might want to team up with #517

Siehe auch #77 für einen Feature-Request.
Ich habe das endlos versucht zu diskutieren, aber das BSI hatte gemeint, dass man Screenshots wegen den Teletans verhindern müsse. Da der Hauptteil der App nur aus einer Aktivität besteht, und Screenshots nur pro Aktivität verhindert werden können, wurde das dann durchgesetzt (obwohl es sogar Pull Requests von zahlreichen Helfern gab).
 Davon redet #77.

It's pretty obvious I think. We don't want anyone to demand proof by screenshot that you have the app installed or that you're low risk.

You can use Google Assistant as a workaround for creating screenshots.

It's pretty obvious I think. We don't want anyone to demand proof by screenshot that you have the app installed or that you're low risk.

Why is it working on iOS then? The reason for this was BSI complaining about screenshots of TeleTANs or QR codes could be stored as picture in the app preview. It was not to prevent screenshots, only their sideeffct of Android making screenshots internally to show the "open apps" user interface of left button click.

I get the point. Then how about adding a short explanation to attempted screenshots and letting the user add an advertising image when tapping the share button on the top? This way the app can be shared using applications that need an image (e.g. Instagram Story).

You can use Google Assistant as a workaround for creating screenshots.
I tried about half an hor ago, this seems not to be working anymore (at least on Android 10).

see #9

see also #41 for the discussion

Thanks for all the suggestions. As this seems to require further explanation, we'll leave the issue open until we documented that properly.

You can use Google Assistant as a workaround for creating screenshots.

You could also use scrcpy

Thanks for all the suggestions. As this seems to require further explanation, we'll leave the issue open until we documented that properly.

Good reply :)

#77 should be implemented to resolve this IMHO.

Another way to still be able to screenshot the Corona-Warn-App is using some 3rd party app like "AZ Screen Recorder".

Well done Developers. I will deinstall the App now. You lost my acceptance. It is MY phone and I decide what I make a screenshot of.

Please don't make this cost another 5 Million to implement. Thanks

Please implement PR #619 ASAP. The screenshot-block as it is implemented now makes absolutely no sense. See also #625

@hellomrjones Be nice, this is a restriction of the android operating system. If the app is not allowed to show up in the recent apps screen you have to also disable screenshots. I agree with @Alestrix and hope that the PR or a similar PR will be considered again.

I doubt that any app has the right to disable a feature of my phone. That would have to be court tested. A simple workaround to make quick screenshots without using the overloaded Google Assistant is to use "Screen Master":
https://play.google.com/store/apps/details?id=pro.capture.screenshot&hl=en

Should the community open an issue to show that they would like PR #619 or similar be implemented?
Right now, this issue here just asks for clarification, not for a change to screenshot taking capabilities.
@mohe2015 @Alestrix @Spacefish @uschindler @Lucurus your thoughts? I want to keep a low profile for now and not reopen closed issues while the maintainers consider me to be hostile.
Alternative: Rename this issue.
Question: Can someone maybe explain a workaround in detail? I tried AZ Screen Recorder but I get a black screenshot.

I doubt that any app has the right to disable a feature of my phone. That would have to be court tested. A simple workaround to make quick screenshots without using the overloaded Google Assistant is to use "Screen Master":
https://play.google.com/store/apps/details?id=pro.capture.screenshot&hl=en

This seems to be not working anymore as of now, captured screenshots appear to be just black.
Im also disappointed by this being blocked. I understand the reasoning of the dev and see the point, however I believe everybody should have control over their own devices and make that decision themselves.

Rename this issue.

Done.

Why should I be able to make a screenshot of the app? I don't need it.
Most of the users (hopefully) just install the app and wait for a notification.

@corneliusroemer To be honest, I think we have more pressing issues right now than being able to take a screenshot or not. If the decision to use this app is based on whether one can screenshot it or not, then I'm not sure if that person has understood the reasoning behind the app.
Besides that, I would recommend that we wait for someone from the team to have a look at this issue, once everything has calmed down and not discuss it further in order to not take any attention away from more important issues.

If the problem is not resolved soon, no one will post screenshot anymore.
Then this way of advertising the app is over.

@Lucurus Thanks for your thoughts. Fair point, there are more pressing issues. However, commenting here doesn't necessarily harm the project as a whole - I would hope maintainers prioritise issues properly anyways.
Benefits of allowing screenshots:

Bug reporting is more informative (there were multiple cases where maintainers and community misunderstood an issue report due to lack of screenshot, yes we can take pictures with webcam, but it's less straightforward)
As @tobidwest mentions, people may want to take screenshots to share with friends that they're using it
Screenshots/casts make it easier for community to document how to use the app for less tech-savvy users. Visual support is much better than text.

So overall, I think these reasons warrant further discussion and implementation as soon as more pressing issues are fixed - and if the effort required isn't too big, which it doesn't seem to be from what I can see.

@corneliusroemer Thanks for your explanatory reply. Yes, I fully agree with the sentiment that providing feedback to the developers isn't harming it, in fact, I fully support it as well, after all, that is one of the points of open source! My comment was more directed towards some of the more drastic and, in my opinion, unhelpful and inflammatory comments in this chain.
What you outlined in the section is indeed relevant and should be implemented once the capacity is available, but, and I am also not involved with the project, I have just been following it for some time, the implementation of screenshots, taking into account privacy and security related aspects, is not as easy as you assume it to be. See #9 for initial reasoning and #41, especially https://github.com/corona-warn-app/cwa-app-android/pull/41#issuecomment-637990309 and #77 for why the implementation is not that easy.

Thanks @Lucurus for giving an in-depth explanation of the challenges regarding implementation.
I totally agree re inflammatory comments. I have empathy with the people making them, I'm also guilty of similar feelings occasionally, but they are unfortunately not helping us. If anything express these thoughts on Twitter where they are not giving any cause for retribution.
Much better than attacking the maintainers emotionally is if we can provide good reasons against what the community feels are unwise actions by the maintainers. It's much harder to ignore and silence.

This seems to be the BSI being prohibitively restrictive in their recommendations. Rather than the BSI's recommendation being regurgitated every time this comes up: What about asking the BSI what it thinks about the new proposal?
Also it's good to bear in mind that the BSI's rating was low so they don't consider it a big thing that cannot be overwritten with sufficient justification.
According to @harambasicluka this is being discussed internally. So good news.

Hi,
I use "cyanogenmod screencast" (onboard app ;-)...) to take a short screenvideo by scrolling the corona app.
Plaxing the screencast let me take any screenshot I want ;-)
This shows 2 things:

It's easy possible to take screens.
Diable Screenshot possibiliy in app code, isn't worth the effort, as its easy to overcome.
Just my 3 pence ;-)

It's easy possible to take screens.

It isn't as easy (if even possible) on modern Androids, as Google has rigorous protections if an app requested them. Screen recording will give you a black screen as soon as you open the app. Of course, rooted phones can circumvent this, but rooting isn't something everybody does.

Diable Screenshot possibiliy in app code, isn't worth the effort, as its easy to overcome.

This is pretty easy, you'd just need to set FLAG_SECURE to true and Android does the all the work of preventing screenshots.

Yes, you are 100% right.
Tried it with s4 and lineageos 17.1 (android 10 based) and my "workhorse" also d4, but based at 6.0.1 cxanogenmod.
Old one worked (easy screen and so on), new android 10 based... no way.
So, old stuff is sometimes better (like cars) ;-)

I want to note that the XPosed mod "DisableFlagSecure" works around this flag, as the name implies. This can be used for error message screenshots etc. In another report, someone also created a screenshot using remote-control with AnyDesk. That makes me think that some screen recorders might also work. AnyDesk doesn't even seem to require root (it doesn't appear in my SuperUser menu) and screen recorders might also not need it, depending on the Android version. You might even have a basic screen recorder preinstalled with your system on new Android versions.

I want to note that the XPosed mod "DisableFlagSecure" works around this flag, as the name implies. This can be used for error message screenshots etc. In another report, someone also created a screenshot using remote-control with AnyDesk. That makes me think that some screen recorders might also work. AnyDesk doesn't even seem to require root (it doesn't appear in my SuperUser menu) and screen recorders might also not need it, depending on the Android version. You might even have a basic screen recorder preinstalled with your system on new Android versions.

Just tested with AnyDesk and Android 10, nope, doesn't work. Get a black screen on AnyDesk. As mentioned before, there seems to be increasing restrictiveness with newer Android releases. There are a lot of people saying they have workarounds, but they alway only work for like Android 6/7 or so.

#745 is merged but in CWA 1.1.1 the screenshots are still not possible for error message details. Would make bug reports like https://github.com/corona-warn-app/cwa-app-android/issues/924 easier...
Should such screenshots work in 1.1.1?

@pathmapper on the release notes PR #745 is on the 1.2.0 release notes and not 1.1.1. So I suppose the fix will only be available on the next update.

@fredrb thanks for pointing me to the 1.2.0 release notes, didn't notice that they are available.
Yeah, looks like this will be included in 1.2.0 :+1:


NET Debugging is supported only in Microsoft versions of VS Code

Whenever I run any vscode based ide I ran into this:
------------------------------------------------------------------------------
You may only use the Microsoft Visual Studio .NET/C/C++ Debugger (vsdbg) with
Visual Studio Code, Visual Studio or Visual Studio for Mac software to help you
develop and test your applications.
------------------------------------------------------------------------------
Unable to start debugging. .NET Debugging is supported only in Microsoft versions of VS Code. See https://aka.ms/VSCode-DotNet-DbgLicense for more information.

Being vscode an open source project why locking the dotnet debugger this way? I mean microsoft benefits from all contributions from the community, why not giving this back to the community as well? I thought that was the goal of c#/dotnet.

Closing as a duplicate of https://github.com/dotnet/vscode-csharp/issues/1059


No theme

Hello,
Very nice module but I want using this without theme because I want display the render into a personal layout.
How should I do?
Thanks

@mespeche
quick hack could be to use <xmp theme="a" style="display:none;"> and then style however you want it.

+1
Related: https://github.com/arturadib/strapdown/pull/55


Changed camera model to pinhole (no lens distortion) for non-wide cameras

Should be more stable for small number of calibration images.

if reprojection_error_threshold is high too high then doesn't it affect the users who try to use it with pnp ?

I needed to set higher reprojection error treshold to accomodate for lower number of camera parameters. Not sure about the value honestly - these numbers worked for the 3 cameras I had factory images for, but might still introduce failed calibrations on others. I think we should either validate with more cameras or incease it even further. What do you mean exactly by affect pnp?


.Net: ImportOpenAIPluginFunctionsAsync throws SKExeption on user_http

Describe the bug
if the plugin .well-known/ai-plugin.json endpoint returns an auth node with type = user_http
"auth": {
"type": "user_http",
"authorization_type": "Bearer"
}
IKernel.ImportOpenAIPluginFunctionsAsync  trows
Microsoft.SemanticKernel.Diagnostics.SKException
HResult=0x80131500
Message=Parsing of Open AI manifest failed.
Source=Microsoft.SemanticKernel.Functions.OpenAPI
StackTrace:
at Microsoft.SemanticKernel.Functions.OpenAPI.OpenAI.KernelOpenAIPluginExtensions.d__3.MoveNext() in D:\source\repos\samples\semantic-kernel\dotnet\src\Functions\Functions.OpenAPI\OpenAI\KernelOpenAIPluginExtensions.cs:line 139
at Microsoft.SemanticKernel.Functions.OpenAPI.OpenAI.KernelOpenAIPluginExtensions.d__1.MoveNext() in D:\source\repos\samples\semantic-kernel\dotnet\src\Functions\Functions.OpenAPI\OpenAI\KernelOpenAIPluginExtensions.cs:line 84
at Example21_ChatGptPlugins.d__1.MoveNext() in D:\source\repos\samples\semantic-kernel\dotnet\samples\KernelSyntaxExamples\Example21_ChatGPTPlugins.cs:line 28
at Example21_ChatGptPlugins.d__0.MoveNext() in D:\source\repos\samples\semantic-kernel\dotnet\samples\KernelSyntaxExamples\Example21_ChatGPTPlugins.cs:line 17
at Program.d__4.MoveNext() in D:\source\repos\samples\semantic-kernel\dotnet\samples\KernelSyntaxExamples\Program.cs:line 101
at Program.d__1.MoveNext() in D:\source\repos\samples\semantic-kernel\dotnet\samples\KernelSyntaxExamples\Program.cs:line 60
at Program.d__0.MoveNext() in D:\source\repos\samples\semantic-kernel\dotnet\samples\KernelSyntaxExamples\Program.cs:line 30
This exception was originally thrown at this call stack:
[External Code]
Microsoft.SemanticKernel.Functions.OpenAPI.OpenAI.KernelOpenAIPluginExtensions.ImportAsync(Microsoft.SemanticKernel.IKernel, string, string, Microsoft.SemanticKernel.Functions.OpenAPI.OpenAI.OpenAIFunctionExecutionParameters, System.Threading.CancellationToken) in KernelOpenAIPluginExtensions.cs
Inner Exception 1:
JsonException: The JSON value could not be converted to Microsoft.SemanticKernel.Functions.OpenAPI.OpenAI.OpenAIAuthenticationType. Path: $.type | LineNumber: 0 | BytePositionInLine: 19.
To Reproduce
Steps to reproduce the behavior:
1: modify Example21_ChatGPTPlugins to access a plugin that returns auth type "user_http"
Expected behavior
looks like the enum OpenAIAuthenticationType is not parsed correctly
Platform

OS: Windows 11
IDE: Visual Studio 2022 17.8.0 Preview 7.0
Language: C#

@dehoward, would you be able to take a look at this and see if it's related to your recent auth changes?

this will be fixed by #3423 which should merge very soon (next day or so).

this will be fixed by #3423 which should merge very soon (next day or so).

@dehoward, is this now fixed?

@stephentoub yes, it ended up being fixed by #3716. closing.


Question about the flow of execution

Firstly i'd like to say thanks for releasing all these sources to the public. i've learnt alot
My main question is why you choose to execute everything in the Render thread? and don't multi-thread it.
The cheatfunction stuff is pretty cool so i understand that
Wouldn't it be better to read all the playerdata in a seperate thread and then sync with an atomic queue or mutex etc..
I may also just be completely missing something so sorry if i am

The Dead by Daylight cheat doesn't need multi threading, it was built to be very small to make it easy for people to update and use. As it was built to be minimal we are only ever looping 4 players in the player esp. The Actor count in Dead By Daylight shouldn't exceed 2000, since we cache every 3 seconds and eliminate all the other actors within 2 stages of 3x scatter reads it is a very minimal cache; unlike other games such as Rust and Hunt Showdown that can exceed 30k Entities up to 3 stages of scatter reads.
Multi Threading when you don't need the extra resources makes it harder to maintain.
The HuntDMA Cheat multi threads with mutexs as the caching takes an entire second to complete.

Thanks for the response. I suppose you're right and this has made me reconsider how i approach optimising and caching
i'll take a peep at that source


Provide support for running TabsManager in popup page environment.

Requirements

[ ] Popup page environment gets identified correctly.
[ ] Basic functionalities of the library are usable in popup page scripts.
[ ] Optional/extra functionalities of the library are usable in popup page scripts. ??

[ ] Documentation has examples of including and using the library in extension popup pages.


Full Analysis and Assimilation test for the Lower Colorado, TX

This is a canned analysis and assimilation test on the Lower Colorado River, TX with all necessary data. This test is intended to ship with the repository to allow quick start use on a test case that has nearly all capabilities operating within it.
This test allows the user to experiment with the following t-route capabilities

Muskingum Cunge channel routing
Hybrid Muskingum Cunge - Diffusive Wave channel routing
Level pool reservoir routing
RFC reservoir forecasts
Streamflow data assimilation

The only capability not included in this test is hybrid reservoir data assimilation. This domain simply does not include any of the USGS or USACE reservoirs for which reservoir data assimilation occurs in the National Water Model.
Additions

A new directory t-route/test/LowerColorado_TX and sub-directories containing all requisite data necessary to execute the test
A .yaml configuration file, test_AnA.yaml designed for a full analysis and assimilation simulation.
All data files have been subset so as to only include data for stream segments, lakes, gages, etc. that are within the Lower Colorado River basin.

Removals

None

Changes

None

Testing

t-route/test/LowerColorado_TX/test_AnA.yaml

This will not build with the comments in $REPOROOT/src/fortran_routing/Reservoir_Binding/Reservoirs/makefile
The bind_hybrid.a object is never moved to the lib folder for compile with the setup.py.
If bind_hybrid is supposed to be deprecated, then setup.py in the framework folder needs to be modified to not refer to it. If the comments are not intentional, they need to be removed so that bind_hybrid.a is properly built and referenced.
@karnesh

@jameshalgren turns out bind_hybrid.a is no longer needed because we've re-wrote the hybrid reservoir da in pure python #509
Interesting that this came up because the Lower Colorado domain does not have any USGS/ASCE reservoirs for which hybrid DA would be needed. However, if this is disrupting the build, then my point is moot. I will look into this now.
FYI - considering a MASSIVE house cleaning and some repackaging with #519

And @awlostowski-noaa... kudos on #519 (It's a bit like having to go through one's box of school art drawings... couldn't we just keep one?)


Shapely incompatible with NumPy 2.1.0

Posting this here for visibility.
The fix is already merged, but a new release needs to be tagged.

https://github.com/shapely/shapely/pull/2099

Shapely 2.0.6 is released that includes the fix (it's on pypi, conda-forge can still take a few hours)

Thanks!


Freeswitch 1.6

Hi
I try install this for test in freeswitch 1.6 but dont work
2018-02-05 13:32:07.706205 [ERR] switch_core_session.c:2622 Invalid Application amd
best regards
Leonardo Sena

I fix thanks


chore: Update .codegen.json with commit hash of codegen and openapi spec

Pull Request Test Coverage Report for Build<PHONE_NUMBER>9
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 69.809%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
6671

Relevant Lines:
9569

💛  - Coveralls


Move i18n strings to separate files

Move i18n strings to separate files. This change makes it easy to add other languages to the repo in the future. This PR adds support for (default) English and Dutch.

Since this project seems abandoned I've created a copy here: https://github.com/AntoineGS/TeamsStatusV2
I have merged your PR in it already.


Display field label on error messages in SmartForm

So i've worked a little on getting back to the original error displaying of errors in SmartForm, which included the label of the field concerned by the error.
Current Behaviour: The label of the field is not passed as an error value. The current messages are, for example : Field "{name}" is required where {name} is actually the name of the field in the schema, not its label; So if my field is called userFavoriteMovie and the label is "Favorite Movie" the error will display Field "userFavoriteMovie" is required instead of Field "Favorite Movie" is required, which is in my opinion not user-friendly.
Behaviour after this PR: the errors are enhanced with: properties.label and we can now define our error message in i18n as: Field "{label}" is required . I used properties.label and not properties.name to avoid overriding the current API where the actual name of the field is returned, because someone could use the name too and i think it makes more sense in terms of naming.
I need feedback on the API about keeping properties.label or overwriting properties.name
I will update the default translations to fit the API we chose in this PR too, so don't merge it now

Sorry for not reviewing this sooner! Actually @ochicf submitted a very similar PR except that it converts the name into a label inside the error component, which I think is a bit better (since the error component can be replaced, and gives you more flexibility):
https://github.com/VulcanJS/Vulcan/pull/2010
Maybe I can close this one?

Yes I saw the other PR, it's better to merge the one from ochicf rather than this one


Feature: Add --chain name 'morden' as alias for 'testnet'

Just in case there's ever another testnet adopted, it can't hurt to be able to be specific.

Currently using morden, as there can be multiple testnets, so we decided to omit testnet at all