Cleanup of packages used for building git

Thank you so much for your nifty git build script. I am trying to use it in one of my docker builds (for an older version of ubuntu that has the gnutls problem). However, the sideffect is that I end up with a really large image (2.6GB).
Is there anyway the script could be modified to do some cleanup of all build packages that are not necessary after building git? I have tried some cleanup, but I'd figure there could be some more.

It's do-able, but I don't feel comfortable removing packages from a user's end-system. I don't know if that's really the best option since I don't know if they installed the package before-hand or not. They might be using any/all of those packages to build other projects already and removing could have the unintended side-effect of blocking someone for part of a day trying to figure out why their freshly check-out code no longer builds.
Depending on your current use-case there may be better alternatives.  If you need some help, I can look at whatever repo you are attempting to do this in

I have never done multi-stage builds, but I think I understand what you mean, so I will try that out with the image I am working with, and reach out if I have any issues. Thanks man.

OK, so I did the multi-stage build as you suggested. I did it with the webdevops/php-nginx:ubuntu-14.04 image.
Everything seems to work. However, in my resulting image, I end up with the following error when I am trying to do a git pull:
fatal: unable to find remote helper for 'https'

I tried by creating a deb package from the build using checkinstall inside of the builder image, then I copy the deb package to the final image, install it with dpkg, and remove the deb package. Git finally works properly, but the resulting image is 1GB (from 439MB). Perhaps it is unavoidable.

I think the problem here is that the copy statement is pointing to the git binary installed to the image, and not the one you just built. Git's makefile will create the binary file in the project's root directory. So when you specify /tmp/git-build the final binary is /tmp/git-build/git
Try this instead:
RUN apt-get remove git
COPY --from=BUILDER /tmp/git-build/git /usr/bin/git

But what about the rest of the files? the ones installed to /usr/libexec, and /usr/share?

I'm honestly not sure if the final git binary will actually need them or not. I think the final binary should be static, but I'm on a low-bandwidth network at the moment and can't really test your specific situation right now. You can try it and see? Worst case scenario, if you get and error you can figure out which file it needs and add it too

I googled the error I get and it tells me that it has to do with libcurl4-openssl-dev  needing to be there at the time of build, which I know it is, because it is in your script. I am suspecting the resulting binaries are static tho. Because like I said, I added a checkinstall build at the end, which got me a full deb package, and that one does work in the final image.

I'm going to close this for the time being. We can't remove the packages and until there is a better way that actually creates a static binary we have no choice but to keep them in


Allow synthetic clicks

Hi,
when trying to open a file picker by doing inputElement.click(), nothing happens.
similarly, a API can only be initiated by a user gesture error happens when doing element.requestFullScreen()
it would be nice if there were a way to run javascript in a “user interaction” context.
i found out that we have to basically call UserGestureIndicator gestureIndicator(DefinitelyProcessingNewUserGesture); before executing the code. here is a Qt bug about it

wow, what a pleasant surprise!
i didn’t expect this to be added since no discussion happened at all.
thank you! :bow:


Common pattern for authentication during installation and configuration process

Feedback:

Unify authentication with git in a consistent way throughout the process.  The process of authentication varies in this document.  In First Workflow specified as SSH in step F and N and changes to PAT in the GitOps section of the documentation.

I think this is a misunderstanding of having to use SSH for Flux authentication (git repo to in-cluster process) vs git repo to pipeline processes within the AzDO scope. This task will make this separation more clear. Closing.


Support http ^1.0.0 and file ^7.0.0

Checklist

[X] I made sure that the issue I am raising doesn't already exist

Use case / Problem
First of all, thanks for this library,
but the library currently does not support http^1.0.0 and file^7.0.0,
can you upgrade it.
Proposal / Solution
No response
Example Code
No response
Affected platforms
Android, iOS, web, Windows, Linux, macOS, other
Platform details
No response
Audio Files/URLs/Sources
No response
Mockups
No response
Related issues / more information
No response
Working on PR
no way

Because audioplayers >=3.0.1 depends on http ^0.13.5 and .... depends on http ^1.0.0, audioplayers >=3.0.1 is forbidden.
So, because ....... depends on audioplayers ^4.1.0, version solving failed.


ERROR: datefudge.so' from LD_PRELOAD

What would you like to be added:
If I remember correctly, we discussed in our introduction meeting that this error:
ERROR: ld.so: object 'datefudge.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

should be ignored.
As suggested by @5kt, we need at least a message above that ERROR that tells the user to disregard the following error.

The issue can still be reproduced with feature _legacy as the command line tool datafudge is still used there. It does not cause any errors thought.


added skie/PhpStorm link

Missing e in gneration

IMO this does not need its own category, putting it into the existing "Development Env" one would totally suffice.

There is plugin usage example

@skie nice!
Would you mind just bumping it a little up in the list under that category so it's alphabetically sorted?

The word Console looks wrong to me in that sentence

@dereuromark why? What do you suggest?

The tool name is "Command line Tools Console"
So console is correct here.

The specifics and that it is a shell is irrelevant here IMO, so it should read what it does:
CakePHP auto-completion support for the PhpStorm IDE.

or sth like that.

@dereuromark I will have to disagree.
I see it provides shell tasks not auto-completion of code snippets (which is what your description makes me think of).

Then I misread the plugin itself, so it does not help with autocompletion of the code, but the console commands there. Well, then I take my last comment back,of course. Sry for that!
CakePHP auto-completion support for console command in PhpStorm IDE.

Is that clearer maybe?

Final update added

Truly awesome, thank you!


Documentation needed for EXSRV003

Wiki URL is
https://github.com/cunninghamp/ExchangeAnalyzer/wiki/EXSRV003
A template is available here:
https://github.com/cunninghamp/ExchangeAnalyzer/wiki/TESTID

https://github.com/ExchangeAnalyzer/ExchangeAnalyzer/wiki/EXSRV003


litestar guru added

Litestar Guru added. A detailed discussion can be found on this PR

I noticed it leaks questions asked prior, but this seems like someone could be malicious - what is keeping this from happening?

Example: https://gurubase.io/g/litestar/how-is-litestar-better-than-fastapi

I noticed it leaks questions asked prior, but this seems like someone could be malicious - what is keeping this from happening?

A quick solution would be to disable autocomplete on the Litestar and related sections. This would require a bit of development effort, but we can work on it if that works for you.

A quick solution would be to disable autocomplete on the Litestar and related sections. This would require a bit of development effort, but we can work on it if that works for you.

I don't think this is specific to Litestar, but a general privacy issue?

Hi everyone,
We've disabled showing asked questions publicly.
Additionally, I’d like to update you on the release of the Maintainer Panel feature on Gurubase. With this panel, you can add, remove, or update data sources, as well as change the logo and more. You can find the details about how to claim a Guru here.
In the near future, I’m planning to include analytics insights in this panel, such as the number of questions asked, the most frequently asked ones, and more. I’ll be sure to update this thread once it’s available. However, in case I miss it, I highly recommend joining our Discord channel to stay updated.
If you’d prefer that I don’t update this thread anymore, please let me know.


Add release-it

By submitting this pull request, I promise I have read the contribution guidelines twice and ensured my submission follows it. I realize not doing so wastes the maintainers' time that they could have spent making the world better. 🖖
⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆

Thanks for the suggestion. It looks great! I'm unfortunately going to pass on this. The CLI tools list is growing too large and I need to be very picky about what I add there. It seems like this could rather be added to more specific lists like https://github.com/aharris88/awesome-cli-apps and https://github.com/sindresorhus/awesome-npm :)

Thanks for your consideration, @sindresorhus. I've opened PRs in both lists you suggest. Keep up your awesome-work.


feat(insight): added user actions events

Added the following event logging methods related to the Quantic Insight Panel:

openUserActions
showPrecedingSessions
showFollowingSessions

Please bump patch version in package.json.

Oh my bad I assumed it was done automatically like most of our other open source projects. Is there a reason it isn't? 🤔

Please bump patch version in package.json.

Oh my bad I assumed it was done automatically like most of our other open source projects. Is there a reason it isn't? 🤔

Disregard my comment. There is an automated version bump by Jenkins. 🤦


[ODS-5442] Disable shell debug

Using set -x instructs the shell to explain itself while running through scripts.  This is helpful while debugging but in production can cause the values of variables to be written to logs.
For example, when the line PGPASSWORD=$POSTGRES_PASSWORD is executed, the shell writes  + PGPASSWORD=TheActualPostgresP@ssw0rd to the screen.  In many cloud environments, the contents of stdout and stderr are captured and logged.  In these cases, using set -x causes the password to be written to logs.
To prevent this, use set +x instead to require that the shell not explain itself while processing these scripts.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@ea-mtenhoor this is a great little contribution, thank you. I'll create a ticket so that we have something to track this against in Jira, and then I'll rename the PR accordingly. The ODS Platform scrum team will be able to review and accept this change in an upcoming sprint.

@AxelMarquez  I went with set +x to ensure that even if it was enabled somewhere else, these scripts could not leak sensitive information.  Removing the lines is also a valid solution.  It's probably less safe, but leaves more control to the admin.

Trying with this command, but it's not doing what I'd expect based on that stack overflow.  2a167c8 being the commit before my first one.
git rebase --exec 'git commit --amend --allow-empty --no-edit -n -S' 2a167c8

@ea-mtenhoor @AxelMarquez since we have other verified commits, I feel sufficiently confident that the unverified commits come from Mark. I am willing to override the requirement in order to complete this pull request. The individual commits will end up being squashed, and the final signature will be mine on the squashed commit. Axel, please let me know when you are ready for this to be merged, and then I'll take the final step. Of course we need to investigate the build failures first in Docker Hub...

Looking at the build failures, looks like the development team needs to fix them before we can merge. I'll create a separate ticket to deal with that.


Fix interval subtraction parsing

Which issue does this PR close?
Fixes https://github.com/apache/datafusion/issues/12190

Ops, didn't notice an older #12222. It also looks like more changes will be required.


Mac

After digging around, I found that the only functions that needed adapting for Mac use were glVertexArrays (which worked when changed to glVertexArraysAPPLE) and glBindVertexArray (once again, to glBindVertexArrayAPPLE). The tutorials now run just fine with those changes, so I simply added a check for the platform when using those functions and substitute the correct one. If we find more changes are necessary in the future, a more robust function substitution (similar to Pyglet's approach, perhaps) may be necessary.
I also tried using Travis CI for Mac testing, but they don't support Python on Mac.  There may be some workarounds, but in the meantime we'll have to be careful with testing Mac support ourselves.

Pull Request Test Coverage Report for Build 115

3 of 3 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 76.122%

Totals

Change from base Build 36:
0.02%

Covered Lines:
950

Relevant Lines:
1248

💛  - Coveralls

Pull Request Test Coverage Report for Build 115

3 of 3 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 76.122%

Totals

Change from base Build 36:
0.02%

Covered Lines:
950

Relevant Lines:
1248

💛  - Coveralls

Merged.


Add back to top link

Add back to top link in each section

http://hail2u.net/blog/webdesign/scroll-down-smoothly-with-css-transition.html


Thanks to your plugin, I was able to make my own.

Tell me what you think about it ! If you ever happen to still work on it :
https://github.com/Random-Shit-Factory/BrotherPrinterCordova

Hi, it really would have been nice if you had forked normally so you could push your changes back to help make this plugin better.
Instead, you lifted all the code into your own repo, and removed our attribution and copyright notice from the license and replaced it with your own.
Now your repository can't be merged back with ours easily.
Glad this was of some help at least, and please do feel free to send pull requests.

oops, I'm kind of a begginner with cordova plugins etc... So I started "from scratch" with a plugin example code from another user who provides a blank cordova plugin interface, but I didn't take your code and adapt it, I inspired myself from it, if you look at the code you'll notice that it has almost no ressemblance to yours, it is actually even not using the same libraries. You were just my starting point that motivated me doing this, I just wanted to thank you personnally. But it wasn't a modified clone from your repository, sorry for the confusion ! If I want to be able to send a pull request I'll have to clone from your repo and then inject my code that is right ?

Ahh, I didn't really look closely so I didn't realize you just use the same structure and rewrote everything. Neat...
Best of luck with it!


Feature/std dev

Added std dev & corrected -SavePerIteration …

Standard deviation values are printed to screen when -perf all command
line is given. They are also written to file if -perfOutput is given
Corrected - SavePerIteration issue (now outputs eval & bind times for
all iterations)

The idea was to use iterationNum as an index to the profiler so that for when Iteration number=0, profiler[EVAL_MODEL_FIRST_RUN] is used and other times profiler[EVAL_MODEL] is used. Due to several resets in the head, i pushed in a wrong commit. I have made sure everything is correct now. Please take a look into the recent commit.


feat: Support multiple SolverManager instances

This pull request updates the Quarkus extension to support multiple instances of Solver in an application. The new logic utilizes a map to keep track of the configurations, and nothing changes for the current behavior for single solvers, which are mapped by default to the key name default.
A new build step that executes at runtime has been included to fetch an updated properties instance from TimefoldRuntimeConfig. The reason we need to register the managed beans at runtime is because Arc.container().instance() does not return an instance of TimefoldRuntimeConfig when using interfaces instead of classes. Defining configuration properties as interfaces is the only way to use @WithUnnamedKey. This is the default approach documented in both Quarkus and Smallrye pages.
When using multiple solver properties, only the SolverManager can be injected by default. Also, the SolverManager can be injected using the following parameterized types because the ProblemId_ domain is not restricted.

String
Short
Integer
Long
Float
Double

@triceo I am planning to submit a separate PR to update the documentation.

Out of curiosity, I wanted to check out the dev UI and I got this:

The other tabs (model / constraints) are empty.
No exception in the log.
I used the employee-scheduling quickstart.

Also, the SolverManager can be injected using the following parameterized types because the ProblemId_ domain is not restricted.

Please explain what you mean by this. Give a few examples of what is not possible to do. That way, we can discuss if that's OK, or if we need to do something more about it.

In the original approach, the accepted ProblemId_ types were considered required to create a synthetic bean. Otherwise, it would fail to locate the managed bean. Let's consider the synthetic bean definition below:
SyntheticBeanBuildItem.configure(SolverManager.class)
  .scope(Singleton.class)
  .supplier(recorder.solverManager(key, value, runtimeConfig,
      GizmoMemberAccessorEntityEnhancer.getGeneratedGizmoMemberAccessorMap(recorderContext,
         solverConfigBuildItem
             .getGeneratedGizmoClasses().generatedGizmoMemberAccessorClassSet),
      GizmoMemberAccessorEntityEnhancer.getGeneratedSolutionClonerMap(recorderContext,
            solverConfigBuildItem
             .getGeneratedGizmoClasses().generatedGizmoSolutionClonerClassSet)))
  .setRuntimeInit()
  .named(key)
  .done();

Defining a bean without a parameterized type would cause an injection to fail because the problem type is not solved during injection time.
@Inject
SolverManager<Solution,String> manager;

After conducting further investigation, I discovered a method to accept any type of Problem_id by using TypeVariable.create(Object.class.getName()).
SyntheticBeanBuildItem.configure(SolverManager.class)
  .scope(Singleton.class)
  .addType(ParameterizedType.create(DotName.createSimple(SolverManager.class.getName()),
          Type.create(DotName.createSimple(value.getSolutionClass().getName()),
                 Type.Kind.CLASS),
           TypeVariable.create(Object.class.getName())))
   .supplier(recorder.solverManager(key, value, runtimeConfig,
              GizmoMemberAccessorEntityEnhancer.getGeneratedGizmoMemberAccessorMap(recorderContext,
                    solverConfigBuildItem
                        .getGeneratedGizmoClasses().generatedGizmoMemberAccessorClassSet),
              GizmoMemberAccessorEntityEnhancer.getGeneratedSolutionClonerMap(recorderContext,
                   solverConfigBuildItem
                       .getGeneratedGizmoClasses().generatedGizmoSolutionClonerClassSet)))
  .setRuntimeInit()
  .named(key)
  .done()

Out of curiosity, I wanted to check out the dev UI and I got this:

The other tabs (model / constraints) are empty. No exception in the log.
I used the employee-scheduling quickstart.

Since this is only available in dev mode, I have modified the JSON structure to include multiple solvers. Let me check the UI.

@triceo the DevUI components are fixed.
Default behavior

New behavior

@triceo, the DevUI changes are done!

@zepfred and @triceo much appreciation for this effort. I have question with regard to this effort which I have not understood well. Will this capability of having multiple named solvers allow the capability to have multiple @PlanningSolution and ConstraintProvider implementations for the different solver configurations?
I see from this code snippet from TimefoldProcessor will not allow more than one @PlanningSolution. The example solverConfig.xml files solver1 and solver2 the same entries have been used for both.
TimefoldProcessor.java@489
   private Class<?> findSolutionClass(IndexView indexView) {
        Collection<AnnotationInstance> annotationInstances = indexView.getAnnotations(DotNames.PLANNING_SOLUTION);
        if (annotationInstances.size() > 1) {
            throw new IllegalStateException("Multiple classes (" + convertAnnotationInstancesToString(annotationInstances)
                    + ") found with a @" + PlanningSolution.class.getSimpleName() + " annotation.");
        }
        ....
    }

@cngotho Thanks for the feedback.
The fail-fasts you see exist in cases where there are multiple solution classes / constraint providers, neither of which is attached to any solver config. This makes them ambiguous and we have to fail in that case.
We will not fail if you correctly specify which solver config should use which of those classes. We have test coverage for that, and we will improve the error messages to make this more obvious.


Fluent icons are blurry

Describe the bug
Side panel icons are blurry at 100% system UI scale.
To Reproduce
Launching the Files app at 100% UI scale is enough.
Expected behavior
Icons must look sharp like in Chromium Edge or recently updated UWP apps.
Screenshots
Files app

Side panel mock up in UWP using icons from https://github.com/yoshiask/FluentSystemIconsUWP

Desktop (please complete the following information):

OS Version: Windows 10 20H2 19042.804
App version: v<IP_ADDRESS>

Additional context
Current icons obviously lacks hinting (currently used icons are ttf font?).

This issue should be resolved with #3864.


Remove invalid label when issues or pull requests are reopen

This branch add support removing triage/invalid label from issue/pull request when they are reopened.
I tested it in my playground repo:

https://github.com/glefloch/quarkus-bot-playground/pull/3
https://github.com/glefloch/quarkus-bot-playground/issues/2

close #33

@gsmet thanks for the review, I addressed your comments :)


[TEST] Unit Testing

Overview
Write unit tests for major systems like resource collection, trading logic, NPC behavior, map generation, and inventory management.
Goals

[ ] Write unit tests for resource collection.
[ ] Write unit tests for trading logic.
[ ] Test NPC behavior and interactions.
[x] Test map generation for correctness.
[ ] Test the inventory system for handling items and slots.

Tools

Integrate Catch2 or GoogleTest for C++ unit testing.

Testing

[ ] Ensure each system passes the relevant unit tests.
[ ] Implement automated testing within CI.

Integrated GoogleTest


Importing certain example scenes via UPM generates "Creating missing ConstraintManager" warning

Describe the bug
When importing the example scenes highlighted below via UPM, a "Creating missing ConstraintManager" warning is generated.
Initial Examples UPM package import

**Demos - HandTracking **

Demos - ScrollingObjectCollection

Experimental - ColorPicker

Experimental - Examples Hub

Experimental - HandMenuLayout

Your setup (please complete the following information)

Unity Version 2020.3.7
MRTK Version 2.7

Target platform (please complete the following information)

OpenXR
UWP

Closed with #9805


Upgrade router's warp server example to use warp v0.2.2

Fixes https://github.com/yewstack/yew/issues/1138

Something seems wonky about the CI here. It appears to have ran, but GH doesn't seem to pick up the fact that it has completed.
I've just restarted it again. If GH can't determine if the CI passes once it finishes, would you mind merging this @jstarry?

Hmm this just happened to me recently too, sure no problem

CI is being really weird

I don't have access to retry
Cache is wonky


Pressing UL,UR,UL,UR in group select softlocks the game

Pressing [UpLeft, UpRight, UpLeft, UpRight] in group select freezes the game and displays a weird square black box near the top left of the screen.
I know group select is due to a rework, and I have no idea what this is or how I found it out, lol.

fixed


webpack without ExtractTextPlugin

In this comment, @javivelasco suggested that it should be possible to configure webpack without ExtractTextPlugin. I've been trying to set that up without much success. The CSS is succesfully injected into a style tag using the sass/css/style loaders, but the button doesn't have any classes, and consequently doesn't receive any of the styling.
index.jsx
import React from 'react';
import {render} from 'react-dom';
import { Button } from 'react-toolbox/lib/button';
render(<Button label="Hello World!" />, document.getElementById('app'));

webpack.config.js snip
...
  resolve: {
    extensions: ['', '.scss', '.css', '.js', '.jsx', '.json'],
  },
  module : {
    loaders : [
       ...
      {
        test: /\.scss$/,
        loaders: ["style", "css", "sass"]
      }
      ...
    ]
  }
...

Result:

You need to configure webpack to use css modules by default with the modules option in the loader. Otherwise the imported object does not have the classes to put them into the nodes. The only issue you'd have without the extract plugin is with components that need to read their dimensions from the DOM once mounted because sometimes by the time they are mounted in the first load, styles are not applied yet so the dimensions are wrong

@javivelasco Aha! That worked perfectly. I've also noticed that react-toolbox-example uses the postcss loader between sass and css loaders, but that's not mentioned in the installation any where. Is this still recommended?

Yeah, it's used to add vendor prefixes with the autoprefixer so I'd recommend it. Since it's useful to postcss styles, we are making the switch from SASS to CSSNext. I think it's going to be more flexible and easier to customize, I'm currently making some changes and also there is a WIP PR migrating some styles. Coming soon.... 💃

Ok, thanks for your help! :)

@InfernoZeus, could you please elaborate?
In a target: node environment using style-collector-loader:
This does NOT set the class name:
{ test: /(\.scss|\.css)$/, loader : 'style-collector!css?sourceMap&modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!postcss!sass', include: /react-toolbox/ }
while this sets the class name:
{ test: /(\.scss|\.css)$/, loader : ExtractTextPlugin.extract('style-collector', 'css?sourceMap&modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!postcss!sass'), include: /react-toolbox/ }
I'm interested in NOT using ExtractTextPlugin but I'm not sure how to make SSR to work without it.

I haven't verified that my configuration works with SSR, as I wasn't interested in that setup. For me, the key to getting the class names applied was css?modules, but it looks like you've already got that. Perhaps @javivelasco knows how to help? Sorry!

I've never used webpack in the backend. To make SSR work with toolbox I've used a css-modules hook.

Thanks @InfernoZeus, @javivelasco. Can css-modules hook be used to avoid the FOUC (Flash Of Unestyled Content) problem? In other words, can react-toolbox be used with SSR and without FOUC?

Well the FOUC happens because the page is rendered without styles and then they are inyected once the page is loaded. If you want to avoid the ExtractTextPlugin I think it's not possible to skip the FOUC. My advice is you generate a build with all CSS extracted and to allow SSR with either webpack or the require hook.
Also, beware some components may don't work because of the same FOUC because as I said up there, some of them need to take the displayed space once they are rendered and without styles the read value would be wrong

FYI @javivelasco , @InfernoZeus and other people that find this thread in the futur.
It is possible to achieve:

Server rendering
No need to use ExtractTextPlugin
No FOUC

I managed to make it work using isomorphic-style-loader.
In case someone else needs to make it work in a normal react-router scenario I suggest to read this thread.
One might still find the issues that @javivelasco mentioned above.
Thanks

Oh nice, I didn't knew about it! Anyway I'm curious about why do you want to avoid extracting the CSS in production. IMO is a good benefic

Because of the FOUC...
On Wed, Jul 13, 2016 at 11:47 AM, Javi Velasco<EMAIL_ADDRESS>wrote:

Oh nice, I didn't knew about it! Anyway I'm curious about why do you want
to avoid extracting the CSS in production. IMO is a good benefic
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/react-toolbox/react-toolbox/issues/636#issuecomment-232308722,
or mute the thread
https://github.com/notifications/unsubscribe/AEKckmxs649kpjXcBQ232GiYC_M_5k_Vks5qVLQygaJpZM4JKOOF
.

But you avoid FOUC extracting CSS :S

To be honest, there are so many technologies and stuff to learn and to make them work together...  webpack+react+SSR+No FOUC+react-router+express+react-toolbox+isomorphic-style-loader+...
@javivelasco I managed to make react-toolbox work using isomorphic-style-loader mentioned above.
I don't know exactly what you mean with extract CSS. Do you mean to extract the whole CSS (taking into account CSS-modules) of react-toolbox and embed it all in html?
What is the difference compared to isomorphic-style-loader? Even worse. What is the point in  isomorphic-style-loader?
There's no clear documentation since I'm navigating through so many different libs and projects which most of them are constantly changing / beta soft. I'm not complaining because you are delivering great soft for free but trying to make everything work together is a bit frustrating.
Con una cerveza fría a lo mejor lo veo más claro.


Reconsider how to get deps and env in callee functions

Now we use GlobalApi for getting deps and env in callee functions. Consider getting them as parameters or improving GlobalApi for tests. (See GlobalApi's fixme comments)
related: #212 and #184

About deps
I suggest adding deps as an arg of dynamic-linked function.
From
#[callable_point]
fn add(by: i32) {
    GlobalApi::with_deps_mut(|deps| handle_add(deps, by)).unwrap();
}

Into
#[callable_point]
fn add(deps: DepsMut, by: i32) {
    handle_add(deps, by).unwrap()
}

About env
There are no problems technically. But, if we add deps as an arg of dynamic-linked function, It may be natural there is the env an arg, too.

@shiki-tak @da1suk8
How about yours?

Question about deps
If we select Suggestion2, do we need to add deps_name = deps even if I don't use deps? (i.e. deps_name = _deps)
My opinion
I think the following suggestion is better because it is familiar as the way to write entry_point.
#[callable_point]
fn env(_deps: DepsMut, env: Environment, by: i32) {
    env
}

If we select Suggestion2, do we need to add deps_name = deps even if I don't use deps? (i.e. deps_name = _deps)

No, deps_name is optional. If there are no, the expanded one is fn add(_deps: DepsMut, by: i32) or fn add(deps: DepsMut, by: i32) by our macro defining default.

Regarding the deps, I think Suggestion1 is better, because it is easier to see where the variables are coming from compared to Suggestion2.
Regarding env, I think Suggestion2 is better, because I think it is cleaner to use it in the same way as deps.


Choose a license for the project

I imagine we want this to become an apache incubator project, and that we'll choose an Apache2 license. We should discuss this at the next planning meeting

ASL it is


FastAdapterDiffUtil.calculateDiff is re-ordering items towards top of scrollview

When I'm using FastAdapterDiffUtil.calculateDiff and it results in items being re-ordered, it seems that the resulting recyclerview is scrolled all the way to the bottom of the scroll view. Is there any way to change this behavior so it prefers the existing scroll view's offset %? So if it's at 25% scrolled, it should prefer to stay at 25% scrolled after re-ordering rather than 100% scrolled.
I'm still trying to understand whether this is caused by the fast adapter diffutil or the underlying diffutil and how the behavior can be changed.

This is actually should be a behavior of the RecyclerView whereas it tries to stick with the item with the id currently shown.
As far as I know this does not occur and happen in the sample app where we also have a sorting sample with the diff util

I tested it a bit more, and when re-sorting is done it does seem to stick with the current visible item. So when I reverse the sort from ASC to DESC, it ends up scrolling to the bottom of the list because the one at the top is now shown at the bottom.
I think it might be a better user experience to sticky at the current sort % of scrollview. For now I will probably make the recycler view manually scroll to the top every time I change the sort order to workaround this issue.

that's what I mentioned :D
That is the behavior of the RV :)
You may also read about it here: https://github.com/airbnb/epoxy/issues/224#issuecomment-305991898


Stickers do not show up immediately (requires leave and re-enter chat)

Haven't experienced this in my testing of stickers, neither has anyone reported this since it was opened. Therefore, closing


Future: Laravel 5.5 LTS

Any plans to bring this up to 5.5 LTS?
Great app btw.

Yeap , I will updated it to 5.5 soon :)
Thank you for using this Starter.
Regards

Hi Roladn
Is is possible to publish the stubs that generate the blade views or override them somehow in the resources folder so I can make changes to them outside the vendor folder?
C:\laragon\www\laravel-sentinel-crud-starter-master\vendor\roland\crud\src\Commands\stubs
I used a similar one a couple of years ago but the developer is not longer supporting it.
https://github.com/pingpong-labs/generators/tree/2.1
the user can optionally publish the stubs to resources folder, make changes as required and when they generate any new crud or views it would use the stubs found in /resources/assets/vendor/roland/stubs/

Hi Dear,
To override the default template with yours, turn on custom_template option in the config/crudgenerator.php file.
'custom_template' => true,
Also change  your path for the new sub.
'path' => base_path('resources/'),
Copy paste all subs and changes as you need .
Hope this help.


Action: Replace deprecated set-output command

The set-output workflow command has been deprecated and replaced with writing to an environment file. Update .github/action_helper.py to use the new file.

This looks good, just needs a conflict resolution because I merged #667 in before this one 👍🏻

Does anyone have an idea what went wrong in the "macos-latest, 3.8" build? The log looks to me like a KeyboardInterrupt within Nox' process management bubbled up to pytest, but that's code I haven't touched, and it passed CI on main, so I'm confused what I should do. :thinking:

Looks like a spurious error to me, I'll re-run and see what happens

Okay, well now it's 3.11 apparently!

5th time's the charm it seems!

Thanks @airtower-luna 🎉


Weard behaviour of Md-Dialog that when opening again, rendering issues occure.

What is affected?
Component
Description
When I do mdDialog.dialog.showModal(); close it and open it again, all of the content won't be shown in the dialog.
https://github.com/material-components/material-web/assets/101067288/7bf63faf-d74b-4e1e-bd76-85b280f03435
Reproduction
https://lit.dev/playground/#project=W3sibmFtZSI6Im1hdGVyaWFsLWltcG9ydHMuanMiLCJjb250ZW50IjoiaW1wb3J0IFwiQG1hdGVyaWFsL3dlYi9idXR0b24vb3V0bGluZWQtYnV0dG9uLmpzXCI7XG5pbXBvcnQgXCJAbWF0ZXJpYWwvd2ViL2RpYWxvZy9kaWFsb2cuanNcIjtcblxubGV0IGJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYnV0dG9uXCIpO1xuYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PntcbiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJkaWFsb2dcIikuZGlhbG9nLnNob3dNb2RhbCgpXG59KSJ9LHsibmFtZSI6ImluZGV4Lmh0bWwiLCJjb250ZW50IjoiPCFET0NUWVBFIGh0bWw-XG48c2NyaXB0IHR5cGU9XCJtb2R1bGVcIiBzcmM9XCIuL21hdGVyaWFsLWltcG9ydHMuanNcIj48L3NjcmlwdD5cblxuPG1kLW91dGxpbmVkLWJ1dHRvbiBpZD1cImJ1dHRvblwiPkEgbWF0ZXJpYWwgYnV0dG9uPC9tZC1vdXRsaW5lZC1idXR0b24-XG5cbjxtZC1kaWFsb2cgaWQ9XCJkaWFsb2dcIj5cbiAgPGRpdiBzbG90PVwiYWN0aW9uc1wiPlxuICAgIDxtZC1vdXRsaW5lZC1idXR0b24-QW5vdGhlciBtYXRlcmlhbCBidXR0b248L21kLW91dGxpbmVkLWJ1dHRvbj5cbiAgPC9kaXY-XG48L21kLWRpYWxvZz5cbiJ9LHsibmFtZSI6InBhY2thZ2UuanNvbiIsImNvbnRlbnQiOiJ7XG4gIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcImxpdFwiOiBcIl4yLjAuMFwiLFxuICAgIFwiQGxpdC9yZWFjdGl2ZS1lbGVtZW50XCI6IFwiXjEuMC4wXCIsXG4gICAgXCJsaXQtZWxlbWVudFwiOiBcIl4zLjAuMFwiLFxuICAgIFwibGl0LWh0bWxcIjogXCJeMi4wLjBcIlxuICB9XG59IiwiaGlkZGVuIjp0cnVlfV0
Click the button. Then close the dialog by pressing outside of the dialog. Then click the button again.
Workaround
I have not found a workaround.
Is this a regression?
No or unsure. This never worked, or I haven't tried before.
Affected versions
Failes in npm package version 9.6.7
Browser/OS/Node environment
Browser:

Firefox 121.0
Chrome Version 120.0.6099.129

Both in Windows 11

in the interactive Demo on https://material-web.dev/components/dialog/ it's not the case.

Have you tried calling mdDialog.show()?
The inner dialog and the private property for it are not part of the supported API. Messing with internals will likely introduce state problems like this.


MIB file read dimensions problem

I have a *.mib file which contains 256x256 + 2 diffraction patterns due to additional triggers from scanning system.
I would like to be able to read this in LiberTEM.
In the current git version, this fails with a complain that the number of images in the file does not match the geometry. This should be only an upper limit -> e.g. we should be able to even read first 20 lines or so if needed.

can be fixed by changing:
https://github.com/LiberTEM/LiberTEM/blob/15d190dbeaa6b4baea762d90515bdf60a7e41f3d/src/libertem/io/dataset/mib.py#L352
to
if s[0] * s[1] > num_images:

@matkraj thanks for reporting and suggesting a fix! Just to confirm, you tested it with your file and it resolved your issue? In that case, would you like to file a pull request so that you are credited as contributor? I believe that even works by editing the file on GitHub.

Thanks for filing the issue! This change should also have a unit test, to prevent regressions in the future. It could try to open the test data set with scan_size=(16, 32), which fails right now in master.
Currently, we don't run the I/O tests in continuous integration because we don't have a good way of distributing the test data, and often we don't have clearly licensed data sets available (see also https://github.com/LiberTEM/LiberTEM/issues/86 - help in this area is appreciated!). If you want to run them locally, you need to make a (32, 32) MIB file available as <your_libertem_clone>/data/default.mib. The file I'm currently using contains a test pattern ("Merlin diamond" as text) and you may know it - I got it from @enebotde
Let me know if you need help, with tests or pull request creation!

I am also not 100% sure it should be a fail if the data is shorter than the geometry. I'd suggest a warning and the data should be analysed in any case (grey signal for missing points).This could happen if something went wrong during the acquisition or we try to analyse unfinished data.

That's a good point. So it's also about properly handling missing data (for which we have https://github.com/LiberTEM/LiberTEM/issues/256), specifically when reading MIB files.
Do we only need to expect data loss (or too much data) at the end of the dataset, or is there any plausible scenario where e.g. a .mib file from the middle of a dataset can go missing? I know we can recover from that also (check if the sequence number of file N matches number of images plus sequence number of N-1), but I wonder if it is likely to happen.

I incorporated the fix for the initial issue; having less data than the scan_size will then be fixed as part of #256


Mini Sort Project Crossover Review Ticket

Fronted Backend Links
Frontend
Frontend Runtime
Backend

Name
Key Commits
Analytics
Video
Individual Ticket

Yuri
Inheritance Integration,Cors Issue Cleanup
analytics
video
[review

Vinay
Cors Fix, Fibonacci Integration
analytics](https://github.com/SortingMiniProject/frontend/issues/4)

Edwin
Sass Implementation, Fetch Fix

Project Outline
Our project utilizes a JSON database of 146,000 cities across the world and sorts them based on length while outputting the complexity in which it took to sort. The Fibonacci portion of our project finds the fibonacci sequence using four different functions (For, While, Recursive, Stream).
Sorting Algorithm and Logistics
Yuri primarily worked on the sorting algorithms integrating inheritance into the sorting portion of the project. The four algorithms we used for our project were : bubble, sort, selection and merge.
Inheritance
Below is an example on how Yuri used inheritance (we have a parent class that extends to all the algorithms we created)
package com.nighthawk.spring_portfolio.mvc.cities;
package com.nighthawk.spring_portfolio.mvc.cities;
import java.util.ArrayList;
import java.util.List;

// Abstract base class
abstract class SortingAlgorithms {
    public abstract List<String> sort(List<String> data);
}

Bubble Sort
class BubbleSort extends SortingAlgorithms {
    @Override
    public List<String> sort(List<String> data) {
        int n = data.size();
        for (int i = 0; i < n - 1; i++) {
            for (int j = 0; j < n - i - 1; j++) {
                if (data.get(j).length() > data.get(j + 1).length()) {
                    String temp = data.get(j);
                    data.set(j, data.get(j + 1));
                    data.set(j + 1, temp);
                }
            }
        }
        return data;
    }
}

Insertion sort
// Insertion Sort implementation
class InsertionSort extends SortingAlgorithms {
    @Override
    public List<String> sort(List<String> data) {
        for (int i = 1; i < data.size(); i++) {
            String key = data.get(i);
            int j = i - 1;

            while (j >= 0 && data.get(j).length() > key.length()) {
                data.set(j + 1, data.get(j));
                j = j - 1;
            }
            data.set(j + 1, key);
        }
        return data;
    }
}

Merge Sort
// Merge Sort implementation
class MergeSort extends SortingAlgorithms {
    @Override
    public List<String> sort(List<String> data) {
        if (data.size() <= 1) {
            return data;
        }

        int mid = data.size() / 2;
        List<String> left = new ArrayList<>(data.subList(0, mid));
        List<String> right = new ArrayList<>(data.subList(mid, data.size()));

        return merge(mergeSort(left), mergeSort(right));
    }

    private List<String> merge(List<String> left, List<String> right) {
        List<String> result = new ArrayList<>();
        int leftIndex = 0, rightIndex = 0;

        while (leftIndex < left.size() && rightIndex < right.size()) {
            if (left.get(leftIndex).length() <= right.get(rightIndex).length()) {
                result.add(left.get(leftIndex++));
            } else {
                result.add(right.get(rightIndex++));
            }
        }

        result.addAll(left.subList(leftIndex, left.size()));
        result.addAll(right.subList(rightIndex, right.size()));

        return result;
    }

    private List<String> mergeSort(List<String> data) {
        if (data.size() <= 1) {
            return data;
        }

        int mid = data.size() / 2;
        List<String> left = new ArrayList<>(data.subList(0, mid));
        List<String> right = new ArrayList<>(data.subList(mid, data.size()));

        return merge(mergeSort(left), mergeSort(right));
    }
}

Selection Sort
// Selection Sort implementation
class SelectionSort extends SortingAlgorithms {
    @Override
    public List<String> sort(List<String> data) {
        for (int i = 0; i < data.size() - 1; i++) {
            int minIdx = i;
            for (int j = i + 1; j < data.size(); j++) {
                if (data.get(j).length() < data.get(minIdx).length()) {
                    minIdx = j;
                }
            }

            String temp = data.get(minIdx);
            data.set(minIdx, data.get(i));
            data.set(i, temp);
        }
        return data;
    }
}

##Fibonacci Code
Our fibonacci code also used inheritance. This is our parent class:

Each method for calculating the fibonacci sequence extends this parent class, and adds its own methods.
For:

While:

Recursive:

Stream:

##Our frontend
This is the frontend for our fibonacci project. We chose to keep it simple and easy to understand to improve our user's experience.

This is ou

Individual Review "Akshat Parikh" grading "Yuri S."

[x] Individual should show that they were key contributor and example to team.  This includes their participation in ideas, plans, creating individual issues, providing code commits to project, crossover grading participation, being on task and positive example in the classroom.

Individuals Video, Issue(s), Commits(s)

[ ] Video, includes Web demo of key contribution to project, 1 minute
[x] Issue(s) that show plans/progress to team objectives
[x] Highlights of key commit(s) in Issues, summarizes code contributions
[x] Review GitHub analytics for key commits in each weeks during the project, shows consistent participation for 3 weeks

Per check.
0.55 not attempted/no check
0.7 attempted, incoomplete, but some runtime
0.8 mastery and runtime
0.9 above and beyond.
Freeform comment.
Provide positivies and growth summary.
Justify or comment on final score.
Be sure to provide extra details on anything below 0.7 average or above 0.8.
Grader Notes:

Yuri has shown an understanding for his project and the primary sorting algorithms it uses to go through different cities.
He showed the complexity portion of his sorting algorithm in a very intricate manner, it can be observed that he truly understands the program
Moreover, Yuri also showed skills of collaboration with his peer Vinay on frontend issues that they resolved, like visualizing Fibonacci sequence

Individual Review "Tanay" grading "Vinay"

[x] Individual should show that they were key contributor and example to team.  This includes their participation in ideas, plans, creating individual issues, providing code commits to project, crossover grading participation, being on task and positive example in the classroom.

Individuals Video, Issue(s), Commits(s)

[x] Video, includes Web demo of key contribution to project, 1 minute - 0.8
[x] Issue(s) that show plans/progress to team objectives - 0.8
[x] Highlights of key commit(s) in Issues, summarizes code contributions - 0.9
[x] Review GitHub analytics for key commits in each weeks during the project, shows consistent participation for 3 weeks - 0.9

Per check.
0.55 not attempted/no check
0.7 attempted, incoomplete, but some runtime
0.8 mastery and runtime
0.9 above and beyond.
Vinay had all the things that he needed, showed that he had a good knowledge of how the code works. He had a lot of commits on both the frontend and backend. I would like to see a way that this team can properly display the other sorting methods than merge. I think they can break the database down so that sorting is faster, don't really need 147000 cities at once.

Individual Review Toby Leeder grading Edwin Abraham

[x] Individual should show that they were key contributor and example to team.  This includes their participation in ideas, plans, creating individual issues, providing code commits to project, crossover grading participation, being on task and positive example in the classroom.

Individuals Video, Issue(s), Commits(s)

[x] Video, includes Web demo of key contribution to project, 1 minute - 0.8
[x] Issue(s) that show plans/progress to team objectives - 0.7
[x] Highlights of key commit(s) in Issues, summarizes code contributions - 0.8
[x] Review GitHub analytics for key commits in each weeks during the project, shows consistent participation for 3 weeks - 0.8

Per check.
0.55 not attempted/no check
0.7 attempted, incomplete, but some runtime
0.8 mastery and runtime
0.9 above and beyond.
Average Score: 0.775/.9
Comment:
Edwin had all of the requirements for this project, except for evidence of continuous planning/issue making and updating ideation throughout the project. It was clear that he was an important part of the group, as I saw both frontend and backend commits. It appears that Edwin mostly was in charge of the frontend and designed the page. I will say that Edwins commits could have been improved, he committed large amounts of code at once rather than commuting small changes often.

Individual Review Toby Leeder grading Edwin Abraham

[x] Individual should show that they were key contributor and example to team.  This includes their participation in ideas, plans, creating individual issues, providing code commits to project, crossover grading participation, being on task and positive example in the classroom.

Individuals Video, Issue(s), Commits(s)

[x] Video, includes Web demo of key contribution to project, 1 minute - 0.8
[x] Issue(s) that show plans/progress to team objectives - 0.7
[x] Highlights of key commit(s) in Issues, summarizes code contributions - 0.8
[x] Review GitHub analytics for key commits in each weeks during the project, shows consistent participation for 3 weeks - 0.8

Per check.
0.55 not attempted/no check
0.7 attempted, incomplete, but some runtime
0.8 mastery and runtime
0.9 above and beyond.
Average Score: 0.775/.9
Comment:
Edwin had all of the requirements for this project, except for evidence of continuous planning/issue making and updating ideation throughout the project. It was clear that he was an important part of the group, as I saw both frontend and backend commits. It appears that Edwin mostly was in charge of the frontend and designed the page. I will say that Edwins commits could have been improved, he committed large amounts of code at once rather than commuting small changes often. Overall it was clear that Edwin had valuable contributions to his team and worked hard throughout the mini project.


Double-defined pyglet.key.SPACE

TL;DR: pyglet.key.SPACE appears defined twice: once as the compose key, then as the ASCII space character
Where?

At the end of the ASCII commands block (appears to be the same as the compose key):
https://github.com/pyglet/pyglet/blob/9fe927d1322f2e845288c9b10a54f1ded12b4d08/pyglet/window/key.py#L175-L186

In the Latin-1 block:
https://github.com/pyglet/pyglet/blob/9fe927d1322f2e845288c9b10a54f1ded12b4d08/pyglet/window/key.py#L327

Fixed in latest PR from Caffeinepills.


[Nodes] Add a ToDevice node, or combine with pin memory

🚀 The feature
We should add a node that will send batches to device (probably one at a time). We could either separate this, add it on to pre-fetcher (ie always call .to(device) on the head of the queue, or maybe part of pin-memory
Motivation, pitch
Sending data to device can be slow, and often users want this done in a background thread. DataLoader should do this in the backgroudn as it consolidates state management
Alternatives
No response
Additional context
No response

I wonder, how different can this be from doing the transfer within a Mapper, similar to  a collate_fn doing tensor.to(device)

For cases where we have multiple threads reading from data, we might be able to create multiple thread local CUDA streams to transfer data onto the GPU. WDYT @andrewkho ?


Created Longest common subsequence

implemented using DP

Hello @1dharode ,
I have created a longest common subsequence code file in cpp using DP. I saw it as one of the issues,hence added it.Please check with the pull request.
Thanks


Forms should be selectable in the editor, even if they are in subfolders

Is your feature request related to a problem? Please describe.
I use one project for several processes. I have several forms in each process. This results in a large number of forms in the forms folder.
Describe the solution you'd like
It would be nice if I had the option of organizing the forms in subfolders. Of course, this is possible in principle. However, I cannot select a form in the Process Editor within a Human Task that is located in a subfolder under "forms". It would be nice if that were possible.
Describe alternatives you've considered
Forms should be selectable, no matter how deep they are in a structure in the "forms" folder. You can also limit this to one or two levels, but having everything in the top level folder is not practical for many forms.

This feature request is a duplicate of #451. Therefore, I will close this issue.


Add Gopher to readme; get travis working again...!

For the sake of character, I've added the golang gopher, and I've been trying without success to get some passing tests... This needs to happen now.

Tests are executing successfully in:

Ubuntu 16.04
Ubuntu 14.04
CentOS 7
Debian 8
Fedora24

Tests are currently failing in:

Ubuntu 12.04
CentOS6

Tests should be achievable and passing in both failing platforms, but that's where this is at.

Fedora24 requires more work, unzip package is not found despite attempted install in pre_tasks.
Ubuntu 12.04 requires more work, problem unknown.

Depending on the how things are at the time of milestone exception completion date, these platforms will discontinue official support.

Working on idempotence now.

Idempotence tests are now passing 👍
Unless I can get Fedora24 working sometime soon, support will cease until I can pick it up.


[CI] Fix step-by-step recipe by running an apt-get update

What does this PR do?
This PR fixes an error introduced by #16835. It basically adds an apt-get update before an apt-get install.

Motivation
#16835 modified the sources.list file. We need to run apt-get update so that apt updates its sources before trying to install anything.

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided if the qa/skip-qa label is not applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[ ] If applicable, the config template has been updated.

Just reran a full deploy pipeline to check it worked ! I will backport it as soon as I see everything's green, thanks !


Is it possible to view process stdout/err with eye trace?

Title.
It's pretty much a nonissue since I can just tail the log itself, but it would be really convenient to be able to call "eye log " and view the process logs themselves.

technically it possible, it would just get current process stdout, stderr, and call tail | grep on it.


💄 Change heading style

The heading style has been changed to improve UX.
Now only the title (h1) is in ssw-red.
All other headings (h2, h3, etc.) are in black.
Relates to #1399
Also relates to #1138
Screenshot

Figure: Example of a rule with the new heading styles

As per my conversation with @bradystroud, the .yarn/install-state.gz line was added in the .gitignore file.
This is to prevent generating this file whenever we run yarn install


add github-token to minimal config example

This PR adds the required github-token to the minimal config example, making it copy-pastable

Hello @amilajack :wave:
Thank you for your PR! github-token defaults to "${{ github.token }}" value: https://github.com/ArtiomTr/jest-coverage-report-action/blob/9f733792c44d05327cb371766bf78a5261e43936/action.yml#L8-L11
However, I believe that this value is not suitable in some cases. As I understood, you have that case. Could you please tell me more about it? Do you run this action in a public or private repo? Is that personal repo or it is attached to some organisation? What type of event triggers this action to run (push or pull_request)? What error do you see in the console, when running without the github-token option? I just want to know a little bit more about these "special" cases, to make the default configuration as useful as possible. Thank you in advance.


SplashScreen-Image in Manifest not working with OpenJDK 11.0.1+13 on x86

Platform: Windows 7 x64
Architecture: OpenJDK 11.0.1+13 x86 running on Windows 7 x64
I have a JAR file that uses a SplashScreen-Image within the MANIFEST.MF file defined as follows:
SplashScreen-Image: images/splash.png
The image is within the JAR at the above location.
If I attempt to run this using OpenJDK 11.0.1+13 x64 (main distribution and not jlink created runtime) with the following command line then the splash screen is displayed:
java -jar MyApp.jar
However, if I try running the same JAR with OpenJDK 11.0.1+13 x86 then it fails to show the splash screen although the JAR is still loaded.
Should be easy to recreate but I can provide an example JAR if required.

I ran the jar against:
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.2+9)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.2+9, mixed mode)
And it come up with a grey, blank splashscreen.
If I run with Oracle Java 8 Update 111 it behaves the same

Try running it against the 32-bit version and you won't get the Splash screen but you will on the 64-bit.
I have just tried on the following and see the same behaviour as 11.0.1:
C:\Local\Tools\jdk-11.0.2-x86\bin>java --version
openjdk 11.0.2 2018-10-16
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.2+7)
OpenJDK Server VM AdoptOpenJDK (build 11.0.2+7, mixed mode, emulated-client)

Hello
Any news about this issue, or how to overpass it?
Thank you!

@chrixm Does switching to the latest JDK11 version resolve your issue? https://adoptopenjdk.net/?variant=openjdk11&jvmVariant=hotspot

Yes it does. I have retested on AdoptOpenJDK 11.0.7 and a splash screen appears on both the x64 and x86 runtimes. Thanks, I guess this issue can be closed.

Yes it does. I have retested on AdoptOpenJDK 11.0.7 and a splash screen appears on both the x64 and x86 runtimes. Thanks, I guess this issue can be closed.


starship: 0.37.0 -> 0.38.1

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[X] NixOS
[X] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

I don't seem able to build it
with nix-review
[...]
$ nix build --no-link --keep-going --option build-use-sandbox relaxed -f /home/bbigras/.cache/nixpkgs-review/pr-83179/build.nix
builder for '/nix/store/r4ayg0d5wzxs1g3k82mnpzkphvn0xr80-starship-0.38.1.drv' failed with exit code 101; last 10 log lines:
  It looks like you're compiling on Linux and also targeting Linux. Currently this
  requires the `pkg-config` utility to find OpenSSL but unfortunately `pkg-config`
  could not be found. If you have OpenSSL installed you can likely fix this by
  installing `pkg-config`.

  ', /build/starship-0.38.1-vendor.tar.gz/openssl-sys/build/find_normal.rs:150:5
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

  warning: build failed, waiting for other jobs to finish...
  error: build failed
cannot build derivation '/nix/store/yj156ira1qg1v6w0hf5vz2170rmyg5z4-env.drv': 1 dependencies couldn't be built
[2 built (1 failed), 122 copied (1315.5 MiB), 347.6 MiB DL]
error: build of '/nix/store/yj156ira1qg1v6w0hf5vz2170rmyg5z4-env.drv' failed
https://github.com/NixOS/nixpkgs/pull/83179
1 package failed to build:
starship

normally
error: failed to run custom build command for `openssl-sys v0.9.54`

Caused by:
  process didn't exit successfully: `/build/source/target/release/build/openssl-sys-fcf5ef1f7a4e925f/build-script-main` (exit code: 101)
--- stdout
cargo:rustc-cfg=const_fn
cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR
X86_64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR unset
cargo:rerun-if-env-changed=OPENSSL_LIB_DIR
OPENSSL_LIB_DIR unset
cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR
X86_64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR unset
cargo:rerun-if-env-changed=OPENSSL_INCLUDE_DIR
OPENSSL_INCLUDE_DIR unset
cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_DIR
X86_64_UNKNOWN_LINUX_GNU_OPENSSL_DIR unset
cargo:rerun-if-env-changed=OPENSSL_DIR
OPENSSL_DIR unset
run pkg_config fail: "Failed to run `\"pkg-config\" \"--libs\" \"--cflags\" \"openssl\"`: No such file or directory (os error 2)"

--- stderr
thread 'main' panicked at '

Could not find directory of OpenSSL installation, and this `-sys` crate cannot
proceed without this knowledge. If OpenSSL is installed and this crate had
trouble finding it,  you can set the `OPENSSL_DIR` environment variable for the
compilation process.

Make sure you also have the development packages of openssl installed.
For example, `libssl-dev` on Ubuntu or `openssl-devel` on Fedora.

If you're in a situation where you think the directory *should* be found
automatically, please open a bug at https://github.com/sfackler/rust-openssl
and include information about your system as well as this message.

$HOST = x86_64-unknown-linux-gnu
$TARGET = x86_64-unknown-linux-gnu
openssl-sys = 0.9.54

It looks like you're compiling on Linux and also targeting Linux. Currently this
requires the `pkg-config` utility to find OpenSSL but unfortunately `pkg-config`
could not be found. If you have OpenSSL installed you can likely fix this by
installing `pkg-config`.

', /build/starship-0.38.1-vendor.tar.gz/openssl-sys/build/find_normal.rs:150:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

It builds if I use:
buildInputs = stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ] ++ [ pkg-config openssl ];

sorry about that, it should be fixed now


[FEATURE] GUI: Resume training from checkpoint

Pick a checkpoint...

And training will resume from it if possible.
If not possible, an error is communicated via a modal:

Also added functionality to disable the main window while one of the sub-windows (metadata, advanced options, this error modal) is open 😄 (see above)
I'm probably going to regret this one...I tried to anticipate the ways it might go wrong, but I'm going to bet against myself 😅
Resolves #210

Something like this would be great if training different gain settings of an equipment to maybe need to do less training after the first one has been made.


Make the queue sized report stats once a second

@d00rman was correct in #284 - we need to accumulate the stats locally - it's not only more efficient, just sending increment-decrement into statsd simply doesn't work.
cc @wikimedia/services

Coverage increased (+0.3%) to 89.62% when pulling 3a5d8d75b801f8455dc3da8ad3f1f2bdb9a716b8 on Pchelolo:queue_size_metric2 into fa2a431c0449a4bc2bf928a6d9cc34e38abc0d18 on wikimedia:master.

ok, I'm too impatient, I wanna see those stats to progress. Will self merge-deploy.


feat: Respect stylus input mode

Some pens have an "eraser" which allows users to erase without switching to a different tool. This is exposed via the Eraser Button in the pointer events specification.
This change detects when the user is using the eraser and acts accordingly.
Tested w/ Wacom Intuos Pro

This does create an odd behavior with the "hover as mouse down" modifier on the pencil which allows you to "erase/draw" without touching the surface. If you press the hover button when the pen is "out of range" the browser will (correctly I think?) report that the side being used is the drawing side. However, correcting that seems like something that should be done in a different change as it could impact current workflows, and is possibly the desired behavior anyway. (The browser says we're using the drawing side so why argue with it?)
I don't believe any current scenarios will be impacted because the existing logic was "do nothing" if using the eraser.

Thanks @Squeakrats! ❤
I went to town and did a thorough investigation of what specific buttons emit on my two different Wacom tablets, in different modes (mouse mode, pen mode, pen mode with Windows Ink enabled).
The result is that if you want to use the Erase button (emitting pointerDownEvent.pen=5), you need be in Pen mode with Windows Ink enabled.

This does create an odd behavior with the "hover as mouse down" modifier on the pencil which allows you to "erase/draw" without touching the surface. If you press the hover button when the pen is "out of range" the browser will (correctly I think?) report that the side being used is the drawing side. However, correcting that seems like something that should be done in a different change as it could impact current workflows, and is possibly the desired behavior anyway. (The browser says we're using the drawing side so why argue with it?)

Can you elaborate on this? What's the steps to reproduce and what should I be seeing?
If I map the side button to Erase and press it when not touching the surface, it doesn't interpret it as erasing — I need to press down on surface first.
With click/right-click/middle-click it works as you describe, but that's present in production.

I actually realized this behavior already exists in the app as it is today.
My pen has a "treat hovering as mouse down" button that I can use to draw without touching the surface. If I use the "hover button" while my pen is "eraser side down" it correctly knows that I am "drawing with the eraser" and so does nothing.
HOWEVER if I press the button while the pen is "far enough" away from the tablet and bring it towards the tablet "while already holding the button" the event fired will be for the drawing side even though the eraser side is down. So basically Excalidraw will draw with the eraser side of the stylus but only if the "hover button" is pressed before being brought into range of the tablet.😅

Thanks for this, I've wanted this feature for a while. I've tested on a Surface Pro 7 with the surface pen, and I can confirm the eraser works perfectly.

@dwelle anything you need from me?

hey @Squeakrats, sorry for leaving this untouched for a long time. I wasn't quite satisfied with the way it's handled but myself couldn't come up with any non-hacky way.
The problem is that the way you do it introduces a new state for the current activeTool, so there's no longer single source of truth for it. Further, it doesn't propagate to all places we read it, and it's also non-reactive — for example, it doesn't update the UI. So fundamentally, it's unsafe.
Anyway, finally got some time to look at it again, and came up with this https://github.com/excalidraw/excalidraw/pull/7496 — still super hacky, but at least it doesn't introduce a derived state. Made in a new PR as I'd have to revert everything in this one anyway. Lemme know if it works on your end.

This pr has the same behavior as all of the msft online apps as well as google note drawings. It also sticks with the existing behavior for panning (UI doesn’t update when middle mouse is down)
In my mind the “selected tool” and “tool in use” are fundamentally two different things. There is already state on the pointerdown object to track things like “are we using the pan tool” which already doesn’t change the state of the ui.

In my mind the “selected tool” and “tool in use” are fundamentally two different things. There is already state on the pointerdown object to track things like “are we using the pan tool” which already doesn’t change the state of the ui.

The pointerDownState object is more of a hack than proper design pattern, and will be removed once we move away from react-based state. Even though it fits some/most of the use cases currently, ultimately it should still be reactive and accessible in the same way as AppState is currently.
Regardless of whether we want to show the ephemeral eraser state in the UI, the main problem here stands that we currently expect tools to be encoded in appState.activeTool. Moving some of it into pointerDownState adds complexity which we need to handle.
For example, should we pass it to host app listeners (onPointerDown())? I'd say yes (should e do that with ephemeral panning as well? Probably). There are also several other places that typecheck behavior based on this.state.activeTool which do not have access to pointerDownState and thus potentially behave incorrectly in this PR.

Sure, if there is a larger effort to refactor the code base and handle things like pan differently I can close this pr.

Sure, if there is a larger effort to refactor the code base and handle things like pan differently I can close this pr.

yes, but unrelated to this PR's feature and will take some time.
I've made https://github.com/excalidraw/excalidraw/pull/7496 more robust and fixed a few things around eraser at the same time. Will be shipping tomorrow.