[Delayed Clipboard Rendering] Promises to blobs vs DCR

From the Editing WG January meeting, we received the following question:
"Why can't web authors use promises to blobs, as already defined in the Clipboard API spec, to delay the generation of content?"
Two related open issues in the spec related to resolving promises:
What happens if promises to Blobs are not resolved within a reasonable amount of time? #161
Async clipboard read and race conditions. #180

We can't use promises to blobs as defined in the Async Clipboard API spec because promises are lazily evaluated, this means that the executor function that's passed to the Promise constructor is going to be immediately ran. As a result, we do need a web API update and will work to get an agreement on how the ClipboardItemConstructor should look like to support delayed clipboard rendering in certain formats.


Squashing and merging PRs

As per discussions on the core channel, I'm creating this issue so we can document what sort of procedure we should establish for some PRs that go stale on account of their contributor abandoning them after being unable to squash multiple commits into one.
Though it is our belief as a community we should instil the good habit of squashing commits for the sake of repo sanity, some of the contributions are being lost because of enforcing this requirement too strictly. Thus, we've talked about adding an unspoken deadline for squashing before we use Github's squash+merge feature (it's important not to make it too public as not to make some contributors rely entirely on us to do their squashing for them).
Thoughts? @FreeCodeCamp/issue-moderators

This is a good idea.
What do you think about something like the following?

Auto-squash commits after ~2 weeks but give contributors a chance to learn themselves - and possibly even offer to guide them to make sure they feel their contribution is "accepted" and that we care enough to help them finish what they started.

When a contributor submits a PR that needs a squash before it can be merged, let's reach out to them and explain what they need to do by linking them to the contributor guide and explain the relevant parts. Then they get ~2 weeks
From discussions in the chat yesterday:
If let's say a squash is needed before we can merge, many contributors might feel like their work isn't good enough when all we really ask for is for some finishing touches. So instead of asking them to fix the squash on their own, why don't we reach out to them and offer to talk them through the last steps on a voice/video call. That way, contributors will hopefully feel more welcome - and might contribute even more!
As @atjonathan mentioned, a problem is that many of FCC's core contributors are very busy and might not have time to mentor others.

That sounds good to me.
Anyone else cares to chip in? This would be a change in policy that would influence all of the mods, so it's best if everyone has their say, or at least express their acknowledgement.

I agree that we should still expect people to squash their commits, but if that is all that is left to do, we can auto-squash it if time passes 👍  I'd be willing to help out.

:+1:

So PRs stuck at squashing can be mergsquashed after completing two weeks of reaching that state. Ideally, one of us would still try to guide the contributor on how to squash properly.
Also, I've just thought... there's bound to be some who'd repeatedly not squash their PRs. How do we proceed in that case? I don't think rejecting their contribution would be the right approach, but squashing should be encouraged. Ideas?

I'm fine with this. How do I squash the commits for them?

I've thought about another alternative. Maybe we could make use of the
combined squash-n-merge feature by default? I know, it won't teach
contributors as much but it would ease the burden on those of us who keep
track of the PRs and manage the autosquashing as well as on the
contributors who would have one less step and get a easier workflow. My
reasoning: why do something manually when you could automate the process
and focus on other things?
Thoughts? :)
söndag 2 oktober 2016 skrev Justin Richardsson<EMAIL_ADDRESS>
So PRs stuck at squashing can be mergsquashed after completing two weeks
of reaching that state. Ideally, one of us would still try to guide the
contributor on how to squash properly.
Also, I've just thought... there's bound to be some who'd repeatedly not
squash their PRs. How do we proceed in that case? I don't think rejecting
their contribution would be the right approach, but squashing should be
encouraged. Ideas?
—
You are receiving this because you are on a team that was mentioned.
Reply to this email directly, view it on GitHub
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/11022#issuecomment-250983974,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF12KdVgKumPBxuswKWr6sngCWfUxm0gks5qv-1fgaJpZM4KMB4z
.

For the same reason we teach proper css while they could just use bootstrap alone.
Automation is dangerous when it implies forgetting or ignoring how it works.
In other repo management systems they don't offer this option, and it'll be useful for our campers to know how to squash. And beyond the knowledge, it's a matter of making sure they understand the importance of repo sanity. The whole check-in|check-out system has been revised a while ago for the model we use of pull-request and quality assessment.
I do agree however, it'd make our job much easier. But to what cost to our students?

Ah I see. Good point Justin :)
söndag 2 oktober 2016 skrev Justin Richardsson<EMAIL_ADDRESS>
For the same reason we teach proper css while they could just use
bootstrap alone.
Automation is dangerous when it implies forgetting or ignoring how it
works.
In other repo management systems they don't offer this option, and it'll
be useful for our campers to know how to squash. And beyond the knowledge,
it's a matter of making sure they understand the importance of repo sanity.
The whole check-in|check-out system has been revised a while ago for the
model we use of pull-request and quality assessment.
I do agree however, it'd make our job much easier. But to what cost to our
students?
—
You are receiving this because you are on a team that was mentioned.
Reply to this email directly, view it on GitHub
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/11022#issuecomment-250994074,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF12KWIcbFiBI08PzmZ0PGUD0Xpg0kuPks5qwBZDgaJpZM4KMB4z
.

In keeping with this train of thought, should we also edit branch names before merging for the contributor if it has something like the issue number in it?

Hmm squashing requires an extra level of understanding of Git... it can be a difficult taks sometimes even for experienced devs. Misnaming branchs/commits, however, is sheer inability to follow instructions. Not sure we need to go that far above and beyond, it should be easy enough for anyone to amend those titles. My 2¢. What what doth thou sayeth?

I think the principle should ultimately be "if the PR doesn't pass inspection, explain the steps to get it to that point" because regardless of the difficulty of renaming a branch, git has many pitfalls for a new contributor and it can take a lot of trial and error to get a PR to pass.

So if understand you correctly, there's a way or us to easily rename their branchs/commits from Github? I'm afraid I haven't seen that feature, and I was convinced we'd either need write access to their repo or submit a new PR with our own fork in which we'd rename their commit/branch. If Github has added that capability on merge, I'm all for it.

@hallaathrad to my knowledge, when you click the merge button, you can rename the branch and re-write the commit message. I'm not sure of any negative repercussions though.

Cool! so, does any other involved party want to chip in?

I happy with what is being proposed. We should be able to clear more PR's and issues with this

I think it's the best to educate once the PR is received.
Not all project owners are ready to spend a little time teaching new people. The PR would simply be ignored because of little work lacking from the new contributor.
Teaching about finishing PR will encourage contributors positively.
Alternatively, can we use something like Rultor? If the PR is not squashed in the given timeline, we can automatically squash it.

So I think we all agree on a ~2 week period after a multi-commit, we can go ahead and squash-merge it? Additionally, if a new contributor needs help fixing a commit, whoever comments first on the PR should try to make an effort in guiding the contributor to correct their commits? Shall one of us make this amendment to our guidelines?


GetWSE returns -9999 when using Unsteady HDF

In the screenshot below, the sampled stages at structures are all -9999. This is Muncie data.

The structure points appear to be obtained correctly, assuming we don't need the Z and M properties of a PointM:

-9999 is our generic NoData value, suggesting that the points are dry or didn't intersect any geometry element. In this case, the structure locations appear to be in lat/lon, so they need to be reprojected to the local projection before you can query the geometry.

Right now we're not handling reprojection. The point shapefile will need to be consistent with the projection of the hydraulic data. What's the projection of this point shapefile?

Closing this issue because this is really a projection issue.


[Feature] SRG automation - Architecture

Integrate the SRG workflow in the dyntrace automation tools CLI to allow to configure and execute evaluations.
Initial user workflow:

User downloads the CLI (or the docker container version)
User creates a Oauth token in Dynatrace account management to allow comunication.
User creates a CI/CD pipeline that uses this CLI to create a SRG evaluation based on business information (appname, type of app, etc).
The CLI communicates with Dyntrace API to create a workflow and a SRG project based on the internal templates.
User creates a CI/CD pipeline that uses this CLI to execute a SRG evaluation.

Features:
Should allow to configure a new SRG evaluation from a fresh environment.
Tasks:

Create a subcommand in the automation tool CLI.
Create or reuse common libraries to communicate with Dyntrace API gen 3.
Create templates for workflows
Create templates for SRG definitions
Connect everything and implement tests.

Should allow to execute a SRG evaluation by providing the target environment and credentials.

Implement trigger using bizevents or direct call to workflows?

closing this as initial architecture is defined and implemented


Access Tag Functions

Hi Guys! newbie here, also came from VueJS, I just want to ask if, how do we access tag functions? say the demo, it as add, is it possible to access it throught devtools to add new item, etc?

Yes, it is possible, but It's not that easy.
First of all, you should store the instances when mounting.
    var todo = riot.mount('todo', {
      title: 'I want to behave!',
      items: [
        { title: 'Avoid excessive coffeine', done: true },
        { title: 'Be less provocative' },
        { title: 'Be nice to people' }
      ]
    })

Then open the console, type
todo[0].items.push(title: {"another one"})
riot.update()

Finally you add a new item.

Hi @coolzilj glad its that easy, i am just worried about the riot.update If i where to make an admin panel to have a header with multiple modules like cphead_chat, cphead_notifications, etc will this unmodified object get revisited by update aswell? not to mention that also sidebar, the content, etc.. can maybe riot handle the stress? what u think? any test case around with such a number of tags to be updated?
Thanks..

Actually you can just call todo[0].update() to update the specific tag.

more like it ;) thanks closing this...

I wonder how this works when you have nested tags. Example:

  <my-tag></my-tag>

this.other.getVal() result in
Uncaught TypeError: undefined is not a function

I think it's strange that it's so easy to call methods on parent but not on custom child tags... I hope I'm missing out on something here.

@jhthorsen  Yeah, I think, currently its 1:1 or maybe need to mount the other-tag aswell? hmmm


Need ChainedCheckboxSelectMultiple widget (checkboxes instead of multi-select)

All versions of django-smart-selects prior to version 1.2.8 are vulnerable to an XSS attack as detailed in issue 171. As a result, all previous versions have been removed from PyPI to prevent users from installing insecure versions. All users are urged to upgrade as soon as possible.
Checklist

[ ] This issue is not about installing previous versions of django-smart-selects older than 1.2.8. I understand that previous versions are insecure.
[ ] I have verified that that issue exists against the master branch of django-smart-selects.
[ ] I have searched for similar issues in both open and closed tickets and cannot find a duplicate.
[ ] I have debugged the issue to the smart_selects app.
[ ] I have reduced the issue to the simplest possible case.
[ ] I have included all relevant sections of models.py, forms.py, and views.py with problems.

Steps to reproduce
Expected behavior
Actual behavior
chained m2m breaks when checkboxmultipleselect widget is introduced. All the objects of the m2m field comes up in the template instead of a filtered list
models.py:
class Examination(models.Model):
    name = models.CharField(max_length=20)

class Subject(models.Model):
    examination = models.ForeignKey(Examination, on_delete=models.CASCADE)
    name = models.CharField(max_length=30)

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    examination = models.ForeignKey(Examination, blank=True, null=True)
    subject = ChainedManyToManyField(
        Subject,
        chained_field="examination",
        chained_model_field="examination",
        )

forms.py:
class UserProfileForm(forms.ModelForm):
    subject = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple)

    class Meta:
        model = UserProfile

@blag  Please what do you mean by "fill out the template"? it cannot be click; can you expantiate
Edit (by blag): Formatted code with GitHub Flavored Markdown.
Edit 2 (by blag): Edited title to reflect the actual issue.

@toweralaka When you first filled out the issue form, the template should have already been there in text form:

The intent was for users to modify the text of that template when they submitted issues:

That way users include all of the information I need to help them. It gets super annoying to have to ask everybody who submits an issue to include the exact same information all the time, so the issue template is supposed to save everybody time.
The reason I was so unhelpful before was because you literally had to delete all of the template text to submit your single line issue report. You disregarded ALL of the work I've put in trying to make reporting issues easier!
No worries though! 😎  GitHub does syntax highlight your code if you format it properly - check out the GitHub Flavored Markdown page on code: https://help.github.com/articles/creating-and-highlighting-code-blocks/ That lets you paste your code between ```python ``` blocks like this:
```python
class Examination(models.Model):
    name = models.CharField(max_length=20)

class Subject(models.Model):
    examination = models.ForeignKey(Examination, on_delete=models.CASCADE)
    name = models.CharField(max_length=30)
```

and GitHub will render it like this:
class Examination(models.Model):
    name = models.CharField(max_length=20)

class Subject(models.Model):
    examination = models.ForeignKey(Examination, on_delete=models.CASCADE)
    name = models.CharField(max_length=30)

and that makes it a LOT easier to read.
Anyway, onto solving your issue...

As of right now, overriding the widgets for Chained*Field is not supported, because uses its own custom widget. Check out smart_selects/widgets.py.
I would love to add a checkbox widget, but Javascript isn't my forté and I don't really have time.
It shouldn't be too difficult to add your own widget though. You will need to subclass forms.CheckboxSelectMultiple and add smart_selects.widgets.JqueryMediaMixin:
my_widgets.py:
from django.forms import CheckboxSelectMultiple

from smart_selects.widgets import JqueryMediaMixin

class ChainedCheckboxSelectMultiple(JqueryMediaMixin, CheckboxSelectMultiple):
    # ...

And then use that in your form:
from my_widgets import ChainedCheckboxSelectMultiple

class UserProfileForm(forms.ModelForm):
    subject = forms.MultipleChoiceField(widget=ChainedCheckboxSelectMultiple)

    class Meta:
        model = UserProfile

and then fix whatever breaks. You'll need to adjust chainedm2m.js to build a sequence of checkboxes as well.
If you get it working, create a pull request with it and I'll take a look and try to merge it in.
In the meantime, I've added this to the TODO section of the README.

Thank you.


Improved error handling for the app

Description
Improving error handling inside the app. As of now, all APIs are expecting positive responses but there are several situations in which it might not work. Also, I am covering small cases where the app crashes. Therefore, the PR is going to have a major code change so I thought to create a WIP PR and start working.
Fixes: #63

@harchani-ritik I have added more checks (showing toasts to users) and try-catch statements with debug prints. Also, I have added this small chin to show if the app is not able to fetch torrentsList from the rtorrent server.

Also, I would suggest trying out the app changes before merging.

Hi @tusharojha, A big red label looks a bit odd in the app theme. Maybe you can change it to have a background colour of grey[100] and text colour red. Also add an error icon leading the text.
Now the changes in lib/api/api_requests.dart file has too many check for the status code 200 from the response. So instead of checking it manually every-time you can create a function similar to
bool isConnectedToTorrentServer (dynamic response) {
     if (response.statusCode == 200) {
          return true;
     }
     return false;
}

and optimise repetition of code.
Also try to think about other status codes that the torrent server may respond.

The project has been updated extensively in the last 2 years (check wiki for more info). The default branch is now the "main" branch. All issues and pull requests for previous versions are being removed.


Navbar

Description
This probably should've been done in a different branch, but it does have to do with navigation.
Clicking an image on the Browse page will take a user to that artwork's page. Currently using match.params to accomplish this, and realize it isn't the best way to do so. But it works. For now. There is some zombie code in App.js - a commented out route for SinglePage - that's the start of how this should be accomplished. Just wanted this functionality to work, and went with easy for now.
Type of change

[x] New feature (non-breaking change which adds functionality)

Change Status

[x] Incomplete/work-in-progress, PR is for discussion/feedback

Checklist

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] My code has been reviewed by at least one peer
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] There are no merge conflicts

 Browse Listings View


Prepare for FastBoot 1.0

Fixes: #193
PS: I haven't tested it in a app. So please test it before merging.
cc: @miguelcobain

We're using ember-cli-node-assets, with fastboot-transform there now, so this should be resolved. Thanks!


[Bug]: File not downloading from Laravel Nova

Is the bug applicable and reproducable to the latest version of the package and hasn't it been reported before?

[X] Yes, it's still reproducable

What version of Laravel Excel are you using?
3.1.31
What version of Laravel are you using?
7.30.4
What version of PHP are you using?
7.4.9
Describe your issue
On laravel nova 3.26.1. I created an exportable class, used a detached action to call Excel::download with the exportable class. I used the example with the array - no error and no file download.
How can the issue be reproduced?

On laravel nova - create a resource
Use https://github.com/gobrightspot/nova-detached-actions to create a detached action
Create an export file
In the handle function in the detached action call Excel download on the export.

What should be the expected behaviour?
a file should be downloaded.

Looks like its being stored on the storage folder and not being downloaded properlt

Nova doesn't support returning download responses directly. You'll have to store the file on disk yourself and call their Action::download($url) method


403 token errors

i keep gettiing The token retrieved was undefined. The username which we couln't get a token for is: sudocode1uwubot (please ignore the name lmao), am i meant to put MY (u/sudocode1) username and password or am i doing something wrong?

code used to fetch
await reddit.getImage(reddits[Math.floor(Math.random() * reddits.length)])
            .then(x => {
                message.channel.send(x); // (discord)
            });

@sudocode1, I'm soooo sorry for delay, I was extremely busy last week
This error might occur if you have your 2FA enabled on your account. Try using another account.
I'll put a warning about it in the README file

Actually, I'm now making a 2.0.0 version. You probably want to wait for it as I will completely remove the authentication.

alright,ill wait in that case

thank u for the help :D

alright,ill wait in that case

@sudocode1 it's done :)
https://github.com/mamoruuu/random-reddit/releases/tag/2.0.0


Upadate format of benchmark results

/bench_x64

Shows pct_change on x64 for the patch if merged compared to current head for main.
Hi .. Pct_change is based on clocktick event cycles where the benchmarks are run with Sightglass.

Hi .. Pct_change is based on clocktick event cycles where the benchmarks are run with Sightglass.

Results are based on clocktick event cycles.
A negative change factor means clockticks are expected to be reduced.
wasm,arch,phase,change_factor
benchmarks/blake3-scalar,x86_64,Compilation,-0.018020484435345097
benchmarks/blake3-simd,x86_64,Compilation,0.07125329573991457
benchmarks/bz2,x86_64,Compilation,0.05663455448270427
benchmarks/intgemm-simd,x86_64,Compilation,-0.013531855296949113
benchmarks/meshoptimizer,x86_64,Compilation,-0.00971237906343736
benchmarks/noop,x86_64,Compilation,0.029134824870321596
benchmarks/pulldown-cmark,x86_64,Compilation,0.013228006570848327
benchmarks/shootout-ackermann,x86_64,Compilation,0.020002081773226932
benchmarks/shootout-base64,x86_64,Compilation,-0.007003736627465562
benchmarks/shootout-ctype,x86_64,Compilation,-0.004608752229133928
benchmarks/shootout-ed25519,x86_64,Compilation,-0.008277265715443072
benchmarks/shootout-fib2,x86_64,Compilation,0.011220106614727277
benchmarks/shootout-gimli,x86_64,Compilation,0.014832410864674905
benchmarks/shootout-heapsort,x86_64,Compilation,-0.017634457779194368
benchmarks/shootout-keccak,x86_64,Compilation,0.0008661978001676118
benchmarks/shootout-matrix,x86_64,Compilation,0.023007335358968373
benchmarks/shootout-memmove,x86_64,Compilation,0.06472674765091657
benchmarks/shootout-minicsv,x86_64,Compilation,0.04885790067539486
benchmarks/shootout-nestedloop,x86_64,Compilation,-0.005068418090198201
benchmarks/shootout-random,x86_64,Compilation,0.016706885835964025
benchmarks/shootout-ratelimit,x86_64,Compilation,0.07955751122453081
benchmarks/shootout-seqhash,x86_64,Compilation,-0.11467834513027975
benchmarks/shootout-sieve,x86_64,Compilation,-0.007751763857428817
benchmarks/shootout-switch,x86_64,Compilation,-0.009151471234979724
benchmarks/shootout-xblabla20,x86_64,Compilation,0.022487753788641207
benchmarks/shootout-xchacha20,x86_64,Compilation,-0.0009132185261474524
benchmarks/spidermonkey,x86_64,Compilation,-0.023810309986815992
wasm,arch,phase,change_factor
benchmarks/blake3-scalar,x86_64,Instantiation,0.08154909323320281
benchmarks/blake3-simd,x86_64,Instantiation,-0.09435186486866431
benchmarks/bz2,x86_64,Instantiation,0.11957405581218317
benchmarks/intgemm-simd,x86_64,Instantiation,0.4747130822742083
benchmarks/meshoptimizer,x86_64,Instantiation,0.05548355858101073
benchmarks/noop,x86_64,Instantiation,0.17304086063955793
benchmarks/pulldown-cmark,x86_64,Instantiation,0.27660061848585493
benchmarks/shootout-ackermann,x86_64,Instantiation,-0.11412628925811696
benchmarks/shootout-base64,x86_64,Instantiation,0.10533374373406024
benchmarks/shootout-ctype,x86_64,Instantiation,-0.08610943958331274
benchmarks/shootout-ed25519,x86_64,Instantiation,0.011161434628267575
benchmarks/shootout-fib2,x86_64,Instantiation,0.02740152576677568
benchmarks/shootout-gimli,x86_64,Instantiation,0.05344418052256539
benchmarks/shootout-heapsort,x86_64,Instantiation,0.028390272819825535
benchmarks/shootout-keccak,x86_64,Instantiation,0.150034180758168
benchmarks/shootout-matrix,x86_64,Instantiation,-0.004677493388122622
benchmarks/shootout-memmove,x86_64,Instantiation,0.04072790294627393
benchmarks/shootout-minicsv,x86_64,Instantiation,0.10937690525545674
benchmarks/shootout-nestedloop,x86_64,Instantiation,0.019406581075283036
benchmarks/shootout-random,x86_64,Instantiation,-0.435801452421951
benchmarks/shootout-ratelimit,x86_64,Instantiation,0.027382681285544885
benchmarks/shootout-seqhash,x86_64,Instantiation,0.01843876843876835
benchmarks/shootout-sieve,x86_64,Instantiation,0.0858841589149062
benchmarks/shootout-switch,x86_64,Instantiation,-0.007686075517557511
benchmarks/shootout-xblabla20,x86_64,Instantiation,0.03505049314314901
benchmarks/shootout-xchacha20,x86_64,Instantiation,0.011538815365812027
benchmarks/spidermonkey,x86_64,Instantiation,0.029164479200131543
wasm,arch,phase,change_factor
benchmarks/blake3-scalar,x86_64,Execution,0.02391215030067606
benchmarks/blake3-simd,x86_64,Execution,-0.02889447530509881
benchmarks/bz2,x86_64,Execution,0.0020508170840825013
benchmarks/intgemm-simd,x86_64,Execution,0.00045994772965185504
benchmarks/meshoptimizer,x86_64,Execution,-0.0010003236316716846
benchmarks/noop,x86_64,Execution,-0.3480209111277073
benchmarks/pulldown-cmark,x86_64,Execution,-0.00206622418118807
benchmarks/shootout-ackermann,x86_64,Execution,0.06372045220966083
benchmarks/shootout-base64,x86_64,Execution,0.0042822672464284395
benchmarks/shootout-ctype,x86_64,Execution,0.0018272451989089777
benchmarks/shootout-ed25519,x86_64,Execution,-0.0013595588275698844
benchmarks/shootout-fib2,x86_64,Execution,0.001143417208171682
benchmarks/shootout-gimli,x86_64,Execution,0.005878084269548056
benchmarks/shootout-heapsort,x86_64,Execution,0.001104436110415108
benchmarks/shootout-keccak,x86_64,Execution,-0.009104548361943854
benchmarks/shootout-matrix,x86_64,Execution,0.0008669202313014157
benchmarks/shootout-memmove,x86_64,Execution,0.00207352742992839
benchmarks/shootout-minicsv,x86_64,Execution,0.002640286519395074
benchmarks/shootout-nestedloop,x86_64,Execution,-0.002400709949495039
benchmarks/shootout-random,x86_64,Execution,3.1917472615550224e-05
benchmarks/shootout-ratelimit,x86_64,Execution,0.0007861819136574244
benchmarks/shootout-seqhash,x86_64,Execution,0.0024118983474439304
benchmarks/shootout-sieve,x86_64,Execution,0.0018030860493345457
benchmarks/shootout-switch,x86_64,Execution,-0.00013305292489473874
benchmarks/shootout-xblabla20,x86_64,Execution,-0.0007567545061339942
benchmarks/shootout-xchacha20,x86_64,Execution,-0.012226764288853276
benchmarks/spidermonkey,x86_64,Execution,-0.0003628088639525684
phase,change_factor
Compilation,0.008605672417710477
Execution,-0.010790129505455161
Instantiation,0.04410906584604744

/bench_x64

/bench_x64

Change factor shows patch effect on x64 if merged compared to current head for main.
Results are based on clocktick event cycles.

Results are based on clocktick event cycles.

Results are based on clocktick (CT) event cycles.  Note, https://github.com/bytecodealliance/wasmtime/pull/5064 is a separate PR to look at better stabilizing results.

@cfallin. These are averages of what we decided to call the change factor (python pandas calls it percent change). I definetly don't think we want to take the geomean of these numbers. The numbers are already a percentage (and not based on a diff) .. so I think taking the arithmetic average is appropriate there. Note, I updated the comments to include the formula that is used:
Some Factor = (Patched_CT - Main_CT) / (Main_CT)
or
Patched Clock Ticks = Main Clock Ticks + (Main Clock Ticks * (Some Factor))
This makes sense to me, but multiplying "Some Factor" by 100 would break this formula.
0.003 factor is not the same as .3%.
1.003 factor is equivalent to .3%

As far as the effect size I think that is calculated in sightglass so should be doable. That said, I've found it takes a minute to noodle on these changes just because it takes so long to run and you don't know if you've broken something with your changes or to know the format is not quite like you want it. I don't want this to languish for a week while I attend to other things. Is it OK to do these other updates in another iteration? But of course close on the labels and formula here.

Ok .. I may be confusing something here but this is how I see it:
Patch = Main (1 + Factor) is what the current formula states.
So .. let's say Main is 100 and Factor is -.003 then the Patch Clockticks would decrease to (100 - .3) =  99.7
If we take the same thing with %
So .. let's say Main is 100 and Percentage is -.3% then the Patch Clockticks would decrease to (100 * .3) = 99.7
Ok .. this is why I don't like percentages 😁. I think you are right. Hopefully I can easily change this factor to percentage in pandas with ease. I'll just make that change as I do think it is easier to read.

/bench_x64

/bench_x64

/bench_x64

Change factor shows patch effect on x64 if merged compared to current head for main.
Results are based on clocktick (CT) event cycles.
Results are based on clocktick (CT) event cycles.  Ok. I think this is in the direction of the format we want. Is it OK to merge this as is? Adding an effect size column and sorting based on that we can do in iteration with another patch? Also .. about that. I kind of like the benchmarks being in the same predictable alphabetical order each table where you don't have to search for where a specific benchmark result is. Maybe we want to add the column but not sort?

One final request (sorry!). "Change factor" makes sense to me if it's a pure ratio where 1.000 is no change; but since we're presenting only the delta (subracting 1, or subracting Main_CT in the numerator, or subracting 100%, all equivalent), this is a delta, not a factor. It's also now a percent. So, ironically I guess, the original pct_change title (can we spell it out as "Percent change" though?) is actually now accurate, now that we've adjusted the formula -- could we go to that? Happy to approve+merge after that!

Can we mark whether the change is statistically significant or not? Otherwise there is no way to know whether to trust it or not.

I think I've communicated this in various one-off meetings over the years, but for posterity, my ideal output would be something like:
# Benchmark Results

Methods and Configuration

* Baseline: `main` at commit a1b2c3
* Comparison: `feature-branch` at commit d4e5f6
* Significance level: 0.01
* Processes: N
* Iterations per process: M
* Engine flags: ...
* Etc...

## Statistically Significant Results

 Wasm Input	 Architecture	 Phase	 Effect Size

 spidermonkey.wasm	 x64	 Compilation	 1.03 ± 0.01

## Statistically Insignificant Results

Statistically insignificant results; hidden by default

The important bits being:

Highlighting statistically significant changes
Hiding statistically insignificant changes behind a  by default
Showing the effect size (what you've been calling a change factor) with its confidence interval

FWIW, we designed the sightglass-analysis crate to expose reusable functions to compute statistical significance, effect size, and confidence interval: https://github.com/bytecodealliance/sightglass/blob/main/crates/analysis/src/effect_size.rs#L16

/bench_x64

Change factor shows patch effect on x64 if merged compared to current head for main.%0A%0AResults are based on clocktick (CT) event cycles. Change Factor = (Patched_CT - Main_CT) / (Main_CT) %0AA negative change factor means clockticks are expected to be reduced by the patch.%0A%0A|wasm|arch|phase|change_factor|%0A |-|:-:|:-:|:-:|%0A|benchmarks/blake3-scalar|x86_64|Compilation|-4.631%25|%0A|benchmarks/blake3-simd|x86_64|Compilation|2.186%25|%0A|benchmarks/bz2|x86_64|Compilation|-0.093%25|%0A|benchmarks/intgemm-simd|x86_64|Compilation|-1.441%25|%0A|benchmarks/meshoptimizer|x86_64|Compilation|-0.102%25|%0A|benchmarks/noop|x86_64|Compilation|-1.682%25|%0A|benchmarks/pulldown-cmark|x86_64|Compilation|2.070%25|%0A|benchmarks/shootout-ackermann|x86_64|Compilation|-4.602%25|%0A|benchmarks/shootout-base64|x86_64|Compilation|-1.885%25|%0A|benchmarks/shootout-ctype|x86_64|Compilation|-2.564%25|%0A|benchmarks/shootout-ed25519|x86_64|Compilation|-3.418%25|%0A|benchmarks/shootout-fib2|x86_64|Compilation|-1.847%25|%0A|benchmarks/shootout-gimli|x86_64|Compilation|-3.495%25|%0A|benchmarks/shootout-heapsort|x86_64|Compilation|6.073%25|%0A|benchmarks/shootout-keccak|x86_64|Compilation|0.739%25|%0A|benchmarks/shootout-matrix|x86_64|Compilation|-8.418%25|%0A|benchmarks/shootout-memmove|x86_64|Compilation|-4.909%25|%0A|benchmarks/shootout-minicsv|x86_64|Compilation|0.607%25|%0A|benchmarks/shootout-nestedloop|x86_64|Compilation|-2.425%25|%0A|benchmarks/shootout-random|x86_64|Compilation|-2.287%25|%0A|benchmarks/shootout-ratelimit|x86_64|Compilation|3.886%25|%0A|benchmarks/shootout-seqhash|x86_64|Compilation|-2.022%25|%0A|benchmarks/shootout-sieve|x86_64|Compilation|-1.459%25|%0A|benchmarks/shootout-switch|x86_64|Compilation|-4.815%25|%0A|benchmarks/shootout-xblabla20|x86_64|Compilation|3.422%25|%0A|benchmarks/shootout-xchacha20|x86_64|Compilation|-3.053%25|%0A|benchmarks/spidermonkey|x86_64|Compilation|-0.316%25|%0A%0A|wasm|arch|phase|change_factor|%0A |-|:-:|:-:|:-:|%0A|benchmarks/blake3-scalar|x86_64|Instantiation|-30.403%25|%0A|benchmarks/blake3-simd|x86_64|Instantiation|-3.762%25|%0A|benchmarks/bz2|x86_64|Instantiation|7.500%25|%0A|benchmarks/intgemm-simd|x86_64|Instantiation|-1.067%25|%0A|benchmarks/meshoptimizer|x86_64|Instantiation|-2.640%25|%0A|benchmarks/noop|x86_64|Instantiation|-7.303%25|%0A|benchmarks/pulldown-cmark|x86_64|Instantiation|7.822%25|%0A|benchmarks/shootout-ackermann|x86_64|Instantiation|1.992%25|%0A|benchmarks/shootout-base64|x86_64|Instantiation|7.792%25|%0A|benchmarks/shootout-ctype|x86_64|Instantiation|2.504%25|%0A|benchmarks/shootout-ed25519|x86_64|Instantiation|-4.106%25|%0A|benchmarks/shootout-fib2|x86_64|Instantiation|0.998%25|%0A|benchmarks/shootout-gimli|x86_64|Instantiation|-0.532%25|%0A|benchmarks/shootout-heapsort|x86_64|Instantiation|2.495%25|%0A|benchmarks/shootout-keccak|x86_64|Instantiation|-0.245%25|%0A|benchmarks/shootout-matrix|x86_64|Instantiation|3.993%25|%0A|benchmarks/shootout-memmove|x86_64|Instantiation|-10.591%25|%0A|benchmarks/shootout-minicsv|x86_64|Instantiation|-7.414%25|%0A|benchmarks/shootout-nestedloop|x86_64|Instantiation|2.388%25|%0A|benchmarks/shootout-random|x86_64|Instantiation|-2.975%25|%0A|benchmarks/shootout-ratelimit|x86_64|Instantiation|4.045%25|%0A|benchmarks/shootout-seqhash|x86_64|Instantiation|6.400%25|%0A|benchmarks/shootout-sieve|x86_64|Instantiation|-0.312%25|%0A|benchmarks/shootout-switch|x86_64|Instantiation|-0.480%25|%0A|benchmarks/shootout-xblabla20|x86_64|Instantiation|-2.197%25|%0A|benchmarks/shootout-xchacha20|x86_64|Instantiation|-12.450%25|%0A|benchmarks/spidermonkey|x86_64|Instantiation|1.493%25|%0A%0A|wasm|arch|phase|change_factor|%0A |-|:-:|:-:|:-:|%0A|benchmarks/blake3-scalar|x86_64|Execution|0.093%25|%0A|benchmarks/blake3-simd|x86_64|Execution|-0.428%25|%0A|benchmarks/bz2|x86_64|Execution|1.562%25|%0A|benchmarks/intgemm-simd|x86_64|Execution|0.053%25|%0A|benchmarks/meshoptimizer|x86_64|Execution|0.030%25|%0A|benchmarks/noop|x86_64|Execution|4.042%25|%0A|benchmarks/pulldown-cmark|x86_64|Execution|0.612%25|%0A|benchmarks/shootout-ackermann|x86_64|Execution|18.860%25|%0A|benchmarks/shootout-base64|x86_64|Execution|0.292%25|%0A|benchmarks/shootout-ctype|x86_64|Execution|-0.073%25|%0A|benchmarks/shootout-ed25519|x86_64|Execution|0.082%25|%0A|benchmarks/shootout-fib2|x86_64|Execution|-0.094%25|%0A|benchmarks/shootout-gimli|x86_64|Execution|2.252%25|%0A|benchmarks/shootout-heapsort|x86_64|Execution|-0.083%25|%0A|benchmarks/shootout-keccak|x86_64|Execution|-1.394%25|%0A|benchmarks/shootout-matrix|x86_64|Execution|0.033%25|%0A|benchmarks/shootout-memmove|x86_64|Execution|-0.033%25|%0A|benchmarks/shootout-minicsv|x86_64|Execution|-0.293%25|%0A|benchmarks/shootout-nestedloop|x86_64|Execution|0.112%25|%0A|benchmarks/shootout-random|x86_64|Execution|-0.454%25|%0A|benchmarks/shootout-ratelimit|x86_64|Execution|-0.319%25|%0A|benchmarks/shootout-seqhash|x86_64|Execution|-5.423%25|%0A|benchmarks/shootout-sieve|x86_64|Execution|-0.227%25|%0A|benchmarks/shootout-switch|x86_64|Execution|-0.083%25|%0A|benchmarks/shootout-xblabla20|x86_64|Execution|2.013%25|%0A|benchmarks/shootout-xchacha20|x86_64|Execution|-3.499%25|%0A|benchmarks/spidermonkey|x86_64|Execution|0.748%25|%0A%0AAverages (x64):%0A|phase|change_factor|%0A |-|:-:|%0A|Compilation|-1.351%25|%0A|Execution|0.681%25|%0A|Instantiation|-1.372%25|

/bench_x64

Change factor shows patch effect on x64 if merged compared to current head for main.%0A%0AResults are based on clocktick (CT) event cycles. Change Factor = (Patched_CT - Main_CT) / (Main_CT) %0AA negative change factor means clockticks are expected to be reduced by the patch.%0A%0A|wasm|arch|phase|change_factor|%0A |-|:-:|:-:|:-:|%0A|benchmarks/blake3-scalar|x86_64|Compilation|-2.264%25|%0A|benchmarks/blake3-simd|x86_64|Compilation|-0.952%25|%0A|benchmarks/bz2|x86_64|Compilation|-1.169%25|%0A|benchmarks/intgemm-simd|x86_64|Compilation|-0.073%25|%0A|benchmarks/meshoptimizer|x86_64|Compilation|-0.470%25|%0A|benchmarks/noop|x86_64|Compilation|1.484%25|%0A|benchmarks/pulldown-cmark|x86_64|Compilation|2.920%25|%0A|benchmarks/shootout-ackermann|x86_64|Compilation|-1.525%25|%0A|benchmarks/shootout-base64|x86_64|Compilation|3.301%25|%0A|benchmarks/shootout-ctype|x86_64|Compilation|-2.706%25|%0A|benchmarks/shootout-ed25519|x86_64|Compilation|1.641%25|%0A|benchmarks/shootout-fib2|x86_64|Compilation|-0.268%25|%0A|benchmarks/shootout-gimli|x86_64|Compilation|6.551%25|%0A|benchmarks/shootout-heapsort|x86_64|Compilation|1.015%25|%0A|benchmarks/shootout-keccak|x86_64|Compilation|-1.059%25|%0A|benchmarks/shootout-matrix|x86_64|Compilation|1.295%25|%0A|benchmarks/shootout-memmove|x86_64|Compilation|-5.877%25|%0A|benchmarks/shootout-minicsv|x86_64|Compilation|1.779%25|%0A|benchmarks/shootout-nestedloop|x86_64|Compilation|0.122%25|%0A|benchmarks/shootout-random|x86_64|Compilation|-0.916%25|%0A|benchmarks/shootout-ratelimit|x86_64|Compilation|2.141%25|%0A|benchmarks/shootout-seqhash|x86_64|Compilation|1.004%25|%0A|benchmarks/shootout-sieve|x86_64|Compilation|0.260%25|%0A|benchmarks/shootout-switch|x86_64|Compilation|3.673%25|%0A|benchmarks/shootout-xblabla20|x86_64|Compilation|-2.125%25|%0A|benchmarks/shootout-xchacha20|x86_64|Compilation|0.693%25|%0A|benchmarks/spidermonkey|x86_64|Compilation|-0.094%25|%0A%0A|wasm|arch|phase|change_factor|%0A |-|:-:|:-:|:-:|%0A|benchmarks/blake3-scalar|x86_64|Instantiation|-8.503%25|%0A|benchmarks/blake3-simd|x86_64|Instantiation|11.889%25|%0A|benchmarks/bz2|x86_64|Instantiation|10.633%25|%0A|benchmarks/intgemm-simd|x86_64|Instantiation|-20.765%25|%0A|benchmarks/meshoptimizer|x86_64|Instantiation|15.852%25|%0A|benchmarks/noop|x86_64|Instantiation|3.321%25|%0A|benchmarks/pulldown-cmark|x86_64|Instantiation|-3.284%25|%0A|benchmarks/shootout-ackermann|x86_64|Instantiation|-0.097%25|%0A|benchmarks/shootout-base64|x86_64|Instantiation|-1.808%25|%0A|benchmarks/shootout-ctype|x86_64|Instantiation|-15.002%25|%0A|benchmarks/shootout-ed25519|x86_64|Instantiation|0.630%25|%0A|benchmarks/shootout-fib2|x86_64|Instantiation|-0.610%25|%0A|benchmarks/shootout-gimli|x86_64|Instantiation|15.031%25|%0A|benchmarks/shootout-heapsort|x86_64|Instantiation|25.119%25|%0A|benchmarks/shootout-keccak|x86_64|Instantiation|5.948%25|%0A|benchmarks/shootout-matrix|x86_64|Instantiation|5.849%25|%0A|benchmarks/shootout-memmove|x86_64|Instantiation|2.700%25|%0A|benchmarks/shootout-minicsv|x86_64|Instantiation|-25.233%25|%0A|benchmarks/shootout-nestedloop|x86_64|Instantiation|3.077%25|%0A|benchmarks/shootout-random|x86_64|Instantiation|1.315%25|%0A|benchmarks/shootout-ratelimit|x86_64|Instantiation|0.327%25|%0A|benchmarks/shootout-seqhash|x86_64|Instantiation|-4.867%25|%0A|benchmarks/shootout-sieve|x86_64|Instantiation|3.642%25|%0A|benchmarks/shootout-switch|x86_64|Instantiation|-0.317%25|%0A|benchmarks/shootout-xblabla20|x86_64|Instantiation|3.272%25|%0A|benchmarks/shootout-xchacha20|x86_64|Instantiation|11.555%25|%0A|benchmarks/spidermonkey|x86_64|Instantiation|-2.845%25|%0A%0A|wasm|arch|phase|change_factor|%0A |-|:-:|:-:|:-:|%0A|benchmarks/blake3-scalar|x86_64|Execution|-1.544%25|%0A|benchmarks/blake3-simd|x86_64|Execution|-3.132%25|%0A|benchmarks/bz2|x86_64|Execution|2.717%25|%0A|benchmarks/intgemm-simd|x86_64|Execution|0.179%25|%0A|benchmarks/meshoptimizer|x86_64|Execution|0.007%25|%0A|benchmarks/noop|x86_64|Execution|-4.482%25|%0A|benchmarks/pulldown-cmark|x86_64|Execution|-0.157%25|%0A|benchmarks/shootout-ackermann|x86_64|Execution|-19.695%25|%0A|benchmarks/shootout-base64|x86_64|Execution|-0.069%25|%0A|benchmarks/shootout-ctype|x86_64|Execution|0.295%25|%0A|benchmarks/shootout-ed25519|x86_64|Execution|0.082%25|%0A|benchmarks/shootout-fib2|x86_64|Execution|0.060%25|%0A|benchmarks/shootout-gimli|x86_64|Execution|-0.897%25|%0A|benchmarks/shootout-heapsort|x86_64|Execution|0.105%25|%0A|benchmarks/shootout-keccak|x86_64|Execution|-0.574%25|%0A|benchmarks/shootout-matrix|x86_64|Execution|-0.213%25|%0A|benchmarks/shootout-memmove|x86_64|Execution|0.211%25|%0A|benchmarks/shootout-minicsv|x86_64|Execution|0.063%25|%0A|benchmarks/shootout-nestedloop|x86_64|Execution|-0.075%25|%0A|benchmarks/shootout-random|x86_64|Execution|0.101%25|%0A|benchmarks/shootout-ratelimit|x86_64|Execution|0.270%25|%0A|benchmarks/shootout-seqhash|x86_64|Execution|0.039%25|%0A|benchmarks/shootout-sieve|x86_64|Execution|0.001%25|%0A|benchmarks/shootout-switch|x86_64|Execution|0.447%25|%0A|benchmarks/shootout-xblabla20|x86_64|Execution|1.642%25|%0A|benchmarks/shootout-xchacha20|x86_64|Execution|1.066%25|%0A|benchmarks/spidermonkey|x86_64|Execution|0.598%25|%0A%0AAverages (x64):%0A|phase|change_factor|%0A |-|:-:|%0A|Compilation|0.310%25|%0A|Execution|-0.850%25|%0A|Instantiation|1.364%25|

/bench_x64

%0Aexecution :: cycles :: benchmarks/bz2/benchmark.wasm%0A%0A  Δ = 1513143.28 ± 1231561.44 (confidence = 99%25)%0A%0A  main.so is 1.00x to 1.02x faster than commit.so!%0A%0A  [129798904 131817054.80 138038694] commit.so%0A  [127515208 130303911.52 132506288] main.so%0A%0Ainstantiation :: cycles :: benchmarks/pulldown-cmark/benchmark.wasm%0A%0A  No difference in performance.%0A%0A  [170034 196676.08 218436] commit.so%0A  [173046 202642.40 373914] main.so%0A%0Ainstantiation :: cycles :: benchmarks/bz2/benchmark.wasm%0A%0A  No difference in performance.%0A%0A  [101652 121869.28 137242] commit.so%0A  [106258 118855.28 133740] main.so%0A%0Acompilation :: cycles :: benchmarks/pulldown-cmark/benchmark.wasm%0A%0A  No difference in performance.%0A%0A  [309698748 346607655.52 374942674] commit.so%0A  [301942394 349979492.32 394267312] main.so%0A%0Acompilation :: cycles :: benchmarks/bz2/benchmark.wasm%0A%0A  No difference in performance.%0A%0A  [215154062 234460165.44 267407768] commit.so%0A  [217859454 236701668.96 272852560] main.so%0A%0Aexecution :: cycles :: benchmarks/pulldown-cmark/benchmark.wasm%0A%0A  No difference in performance.%0A%0A  [9344088 9469022.72 9651890] commit.so%0A  [9343350 9504960.00 9678308] main.so%0A%0Aexecution :: cycles :: benchmarks/spidermonkey/benchmark.wasm%0A%0A  No difference in performance.%0A%0A  [1090353462<PHONE_NUMBER>.84<PHONE_NUMBER>] commit.so%0A  [1091742374<PHONE_NUMBER>.72<PHONE_NUMBER>] main.so%0A%0Acompilation :: cycles :: benchmarks/spidermonkey/benchmark.wasm%0A%0A  No difference in performance.%0A%0A  [7228229446<PHONE_NUMBER>.80<PHONE_NUMBER>] commit.so%0A  [7210593826<PHONE_NUMBER>.52<PHONE_NUMBER>] main.so%0A%0Ainstantiation :: cycles :: benchmarks/spidermonkey/benchmark.wasm%0A%0A  No difference in performance.%0A%0A  [543920 582452.72 736118] commit.so%0A  [548450 582405.60 752954] main.so

/bench_x64

instantiation :: cycles :: benchmarks/bz2/benchmark.wasm
No difference in performance.
[103568 119207.92 135522] commit.so
[106822 126276.88 272912] main.so
instantiation :: cycles :: benchmarks/pulldown-cmark/benchmark.wasm
No difference in performance.
[170928 190962.88 212534] commit.so
[173412 200371.76 304700] main.so
instantiation :: cycles :: benchmarks/spidermonkey/benchmark.wasm
No difference in performance.
[542924 569039.60 605244] commit.so
[539128 581279.04 757404] main.so
compilation :: cycles :: benchmarks/pulldown-cmark/benchmark.wasm
No difference in performance.
[318068526 344151444.88 407384632] commit.so
[306264764 350683370.00 383642122] main.so
compilation :: cycles :: benchmarks/bz2/benchmark.wasm
No difference in performance.
[215556738 235741942.72 275455752] commit.so
[217886770 233020488.80 280170694] main.so
execution :: cycles :: benchmarks/bz2/benchmark.wasm
No difference in performance.
[127738454 131527589.52 137189426] commit.so
[127496598 130751974.40 133060306] main.so
execution :: cycles :: benchmarks/spidermonkey/benchmark.wasm
No difference in performance.
[1091080444<PHONE_NUMBER>.76<PHONE_NUMBER>] commit.so
[1089452668<PHONE_NUMBER>.04<PHONE_NUMBER>] main.so
compilation :: cycles :: benchmarks/spidermonkey/benchmark.wasm
No difference in performance.
[7177863870<PHONE_NUMBER>.20<PHONE_NUMBER>] commit.so
[7180327178<PHONE_NUMBER>.88<PHONE_NUMBER>] main.so
execution :: cycles :: benchmarks/pulldown-cmark/benchmark.wasm
No difference in performance.
[9359830 9498456.32 9801272] commit.so
[9336598 9483072.80 9601184] main.so

Hi @cfallin @fitzgen, Instead of having the current table, how about we just highlight a few of the default benchmarks and print the default message? I think, as has already been suggested, we should be doing any formatting of the output printed in the message in sightglass itself so can work on a github markdown formatting there. Also, this patch increases the number of iterations and parallel processes to help stabilize results allowing us to close https://github.com/bytecodealliance/wasmtime/pull/5064

Instead of having the current table, how about we just highlight a few of the default benchmarks and print the default message?

Happy with using the default output (and separately from the github action growing a "markdown" output format in the sightglass tool).
Not sure what you mean about "just highlight a few of the default benchmarks". Do you mean just run the default.suite set of benchmarks? If so, fine by me.

Not sure what you mean about "just highlight a few of the default benchmarks". Do you mean just run the default.suite set of benchmarks? If so, fine by me.

Yes, that is what I meant and what is running now. Will wait for @cfallin approval but happy to make any other changes if needed here. Will also turn attention to sightglass updates.

Will wait for @cfallin approval

Ah, sorry, didn't realize you were waiting for me here too. Yes, it seems fine to me.
One thing that I just realized is that the results come as a comment via your personal GitHub account. I think that we should change that -- we shouldn't have a dependence on one person's account (it's liable to break if you change or delete your account, it's problematic if one day you aren't working on Wasmtime/Cranelift any more, etc). We don't have to do it in this PR but would you be able to create a dedicated bot account for posting these comments, and give the infra a token for that instead (and somehow share the appropriate details with various folks across BA so we always have access)?

@cfallin Says it is still waiting for the +1. Will use bot account to send results back. May need you to create that account here though, not sure I have permission.


Issue with Redirects

So I have SSL Enforcer configured in my application like so:
config.middleware.use Rack::SslEnforcer, :only_hosts => 'photos.example.com'

When I check the URL redirects in the browser when going to http://photos.example.com, I get the following redirect chain:
1) http://photos.example.com
2) Redirects to https://photos.example.com
3) Redirects to http://photos.example.com/account_sessions
4) Redirects to https://photos.example.com/account_sessions

Is there a way to eliminate step 3, as in going from:
2) Redirects to https://photos.example.com
3) Redirects to https://photos.example.com/account_sessions

My initial thought was that once a host is specified in the configurations, then it only enforces SSL/HTTPS protocol for that domain, and doesn't allow redirects to an HTTP protocol.

The third redirect is initiated by your application and out of scope of rack-ssl-enforcer, so the only chance i see is to modify your authentication's redirect by passing the protocol option, for example:
# application_controller.rb

before_filter :require_login

private

  def require_login
    unless current_user
      redirect_to controller: "sessions_controller", action: "new", protocol: "https://"
    end
  end

Ah, got it. I wasn't sure if this was the intended behavior or not. This probably won't work, because I need one domain specifically to enforce SSL, and the others to just use the standard HTTP protocol. It would be counter-intuitive to force the HTTPS protocol on all URLs within my app.

I see. Maybe something like
def domain_specific_protocol
  request.host_with_port =~ /example.org/ ? "https://" : "http://"
end

def require_login
  unless current_user
    redirect_to controller: "sessions_controller", action: "new", protocol: domain_specific_protocol
  end
end

Probably not the most elegant solution :) Anyway - i'm closing here...


Custom label/field wrapper

How to build such template

Regions

<select name="region" id="region" class="boxed elem mb-15">
<option value="">Select region</option>
</select>

VFG doesn't support passing custom templates ... but if you require custom markup, you can always create your own VFG field components.
You can however assign custom CSS classes to certain DOM elements created by VFG.  For example styleClasses, fieldClasses, labelClasses and tag.
You can pass tag directly into <vue-form-generator tag="div" />, and styleClasses  and labelClasses are passed into the various field schemas ...
{
  type: "select",
  styleClasses: "rows",
  labelClasses: "label",
  fieldClasses: "boxed elem mb-15"
}

This will produce a markup "similar" to what you have ... but won't be exact.

@zoul0813 it seems that this doc is outdated: https://icebob.gitbooks.io/vueformgenerator/fields/field_properties.html
Nothing mention fieldClasses and labelClasses there :(

I would love to help. Not sure how, as I can't find where the docs for gitbook are. I think it should be added to gitbook instead of README.md.


fix: use timestamp as default value

Summary of PR
Set the default value in name field as the timestamp (instead of placeholder) and when focused it will select all the text
Preview
https://shabad-os-theme-tool-git-saihaj-issue42.saihaj.now.sh/
Time spent on PR
15mins
Linked issues
Fixes #42
Reviewers
@bhajneet @Harjot1Singh

You can only click to select all? I can't seem to be able to click again to highlight only a few of the words or edit just the ending

I can't seem to be able to click again to highlight only a few of the words or edit just the ending

I think this is what was expected

I expect it to work like any other input box in macOS / Windows / majority
of internet
On Tue, Jun 9, 2020 at 12:46 PM ਸਹਜਪ੍ਰੀਤ ਸਿੰਘ<EMAIL_ADDRESS>wrote:

I can't seem to be able to click again to highlight only a few of the
words or edit just the ending
I think this is what was expected
[image: Kapture 2020-06-09 at 11 44 07]
https://user-images.githubusercontent.com/44710980/84176153-9b68f100-aa46-11ea-88e6-6c86f38508e3.gif
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ShabadOS/theme-tool/pull/43#issuecomment-641431104,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADLZ3B7DXGXWSHESX4IWX4DRVZRNBANCNFSM4NY6TTZA
.

Yeah you are able to select as you can in other input boxes it is just that Safari has some sort of glitchy thing that I can't fix. Take a look below, in safari version you will see that I select it, it does auto select but it glitches but you can drag and select the complete thing. It does what was mentioned in #42

I expect it to work like any other input box in macOS / Windows / majority of internet
…
On Tue, Jun 9, 2020 at 12:46 PM ਸਹਜਪ੍ਰੀਤ ਸਿੰਘ @.***> wrote: I can't seem to be able to click again to highlight only a few of the words or edit just the ending I think this is what was expected [image: Kapture 2020-06-09 at 11 44 07] <user-images.githubusercontent.com/44710980/84176153-9b68f100-aa46-11ea-88e6-6c86f38508e3.gif> — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#43 (comment)>, or unsubscribe <github.com/notifications/unsubscribe-auth/ADLZ3B7DXGXWSHESX4IWX4DRVZRNBANCNFSM4NY6TTZA> .

Confirmed that it does behave as expected. For me, click once to highlight all, click and drag or double click to highlight words.

I need to remember to hard refresh these vercels lol


Example fixture/test scripts

PR agains handler-subprocess branch.

I"m going to close this since it depends on a stale branch and is preventing me from removing it. If you want to rebase this onto master and re-open it with the demo label that would be great


mvn clean package fails for Jenkins plugin. Dependancy not hosted on Jenkins.CI

Failure to find com.capitalone.dashboard:core:jar:2.0.5-SNAPSHOT when compiling the Jenkins module
mvn 3.5.4 + java 1.8 + Centos 7
Have done git clone of the repo, cd hygieia-jenkins. Trying to build the Jenkins module independently.
mvn test fails...
[ERROR] Failed to execute goal on project hygieia-publisher: Could not resolve dependencies for project org.jenkins-ci.plugins:hygieia-publisher:hpi:2.0.5-SNAPSHOT: Failure to find com.capitalone.dashboard:core:jar:2.0.5-SNAPSHOT in http://repo.jenkins-ci.org/public/ was cached in the local repository, resolution will not be reattempted until the update interval of repo.jenkins-ci.org has elapsed or updates are forced -> [Help 1]
The pom.xml file requires 2.0.5-SNAPSHOT for core and hpi elements. mvn test -X shows that the 2.0.5 version of the artefact doesn't seem to exist on jenkins-ci.
Changing 2.0.5-SNAPSHOT to 2.0.4 allows the build to complete, but not sure if it is responsible for the subsequent error.
i.e. It successfully pulls down from https://repo.jenkins-ci.org/webapp/#/artifacts/browse/tree/General/public/com/capitalone/dashboard/core/2.0.4
HOWEVER...we have a new error, which may or may not be related.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile) on project hygieia-publisher: Compilation failure: Compilation failure:
[ERROR] /home/ec2-user/Hygieia/hygieia-jenkins-plugin/src/main/java/jenkins/plugins/hygieia/utils/CodeQualityMetricsConverter.java:[7,1] package com.capitalone.dashboard.model.quality does not exist
[ERROR] /home/ec2-user/Hygieia/hygieia-jenkins-plugin/src/main/java/jenkins/plugins/hygieia/utils/CodeQualityMetricsConverter.java:[16,53] cannot find symbol
[ERROR]   symbol: class CodeQualityVisitor
[ERROR] /home/ec2-user/Hygieia/hygieia-jenkins-plugin/src/main/java/jenkins/plugins/hygieia/utils/CodeQualityMetricsConverter.java:[41,23] cannot find symbol
[ERROR]   symbol:   class JunitXmlReport
[ERROR]   location: class jenkins.plugins.hygieia.utils.CodeQualityMetricsConverter
[ERROR] /home/ec2-user/Hygieia/hygieia-jenkins-plugin/src/main/java/jenkins/plugins/hygieia/utils/CodeQualityMetricsConverter.java:[63,23] cannot find symbol
[ERROR]   symbol:   class FindBugsXmlReport
[ERROR]   location: class jenkins.plugins.hygieia.utils.CodeQualityMetricsConverter
[ERROR] /home/ec2-user/Hygieia/hygieia-jenkins-plugin/src/main/java/jenkins/plugins/hygieia/utils/CodeQualityMetricsConverter.java:[146,23] cannot find symbol
[ERROR]   symbol:   class JacocoXmlReport
[ERROR]   location: class jenkins.plugins.hygieia.utils.CodeQualityMetricsConverter
[ERROR] /home/ec2-user/Hygieia/hygieia-jenkins-plugin/src/main/java/jenkins/plugins/hygieia/utils/CodeQualityMetricsConverter.java:[207,23] cannot find symbol
[ERROR]   symbol:   class PmdReport
[ERROR]   location: class jenkins.plugins.hygieia.utils.CodeQualityMetricsConverter
[ERROR] /home/ec2-user/Hygieia/hygieia-jenkins-plugin/src/main/java/jenkins/plugins/hygieia/utils/CodeQualityMetricsConverter.java:[252,23] cannot find symbol
[ERROR]   symbol:   class CheckstyleReport
[ERROR]   location: class jenkins.plugins.hygieia.utils.CodeQualityMetricsConverter
[ERROR] /home/ec2-user/Hygieia/hygieia-jenkins-plugin/src/main/java/jenkins/plugins/hygieia/workflow/HygieiaCodeQualityPublishStep.java:[8,1] package com.capitalone.dashboard.model.quality does not exist
[ERROR] -> [Help 1]
I tried to do an mvn clean package within "core" first, which compiled successfully, but when I returned to try and build Jenkins...same error :(
Was going thru corp proxy, so also tried tethering to my phone for direct web access on another machine with diff o/s (MAC OSX) as follows. Looks like the same error?
05:10:08 {master} ~/git/personal/Hygieia/hygieia-jenkins-plugin$ mvn --version
Apache Maven 3.3.3<PHONE_NUMBER>791599e205a5524ec3e0dfe41d4a06; 2015-04-22T21:57:37+10:00)
Maven home: /opt/local/share/java/maven3
Java version: 1.8.0_144, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre
Default locale: en_AU, platform encoding: UTF-8
OS name: "mac os x", version: "10.13.4", arch: "x86_64", family: "mac"
05:10:14 {master} ~/git/personal/Hygieia/hygieia-jenkins-plugin$
...
ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile) on project hygieia-publisher: Compilation failure: Compilation failure:
[ERROR] /Users/stephenwallace/git/personal/Hygieia/hygieia-jenkins-plugin/src/main/java/jenkins/plugins/hygieia/utils/CodeQualityMetricsConverter.java:[136,90] incompatible types: java.lang.Object cannot be converted to java.lang.String
[ERROR] /Users/stephenwallace/git/personal/Hygieia/hygieia-jenkins-plugin/src/main/java/jenkins/plugins/hygieia/utils/CodeQualityMetricsConverter.java:[137,97] incompatible types: java.lang.Object cannot be converted to java.lang.String
[ERROR] /Users/stephenwallace/git/personal/Hygieia/hygieia-jenkins-plugin/src/main/java/jenkins/plugins/hygieia/utils/CodeQualityMetricsConverter.java:[194,48] incompatible types: java.lang.Object cannot be converted to java.lang.String
[ERROR] /Users/stephenwallace/git/personal/Hygieia/hygieia-jenkins-plugin/src/main/java/jenkins/plugins/hygieia/utils/CodeQualityMetricsConverter.java:[194,86] incompatible types: java.lang.Object cannot be converted to java.lang.String
[ERROR] /Users/stephenwallace/git/personal/Hygieia/hygieia-jenkins-plugin/src/main/java/jenkins/plugins/hygieia/utils/CodeQualityMetricsConverter.java:[196,50] incompatible types: java.lang.Object cannot be converted to java.lang.String
[ERROR] /Users/stephenwallace/git/personal/Hygieia/hygieia-jenkins-plugin/src/main/java/jenkins/plugins/hygieia/utils/CodeQualityMetricsConverter.java:[196,100] incompatible types: java.lang.Object cannot be converted to java.lang.String
[ERROR] /Users/stephenwallace/git/personal/Hygieia/hygieia-jenkins-plugin/src/main/java/jenkins/plugins/hygieia/utils/CodeQualityMetricsConverter.java:[196,140] incompatible types: java.lang.Object cannot be converted to java.lang.String
Would love to help, but I'm an automation dude, not a Java genius :(

@stphnwallace : Please do the following again:

Remove the existing repository.
Do a fresh git clone of the hygieia repository again to get the latest copy.
Then cd into "core" and do "mvn clean install". This will install the core jar into your local repository.
And then cd into "hygieia-jenkins-plugin", and do "mvn clean install" or "mvn clean package". Thanks !

@stphnwallace: Any updates on this at all from your end? thanks.

@stphnwallace: Just following up again, do you have any updates at all on this? Thanks.

@stphnwallace: Since I didn't hear back from you, I am assuming this issue is resolved at your end, and so closing this issue. Thanks !

This is a valid issue and will be fixed with PR #2507


Xp Progress Bars

Is your feature request related to a problem? Please describe.
I'm always frustrated when I want to see an overview of all my skills progression on my screen at all times.
Describe the solution you'd like
I would like to see something similar to an MMO xp bar (see wow) where I can constantly see progression in all my skills. The overlay would include multiple, differently colored bars stacked, showing the percentage of progress for that skills current level.
Describe alternatives you've considered
The Jagex Xp widget and the Xp globes. However, the Xp Globes disappear and only show currently utilized skills. The Jagex Xp widget does not allow for all the skills to be shown at once.

Doesn't the current XP Tracker offer basically the same feature? Or is there something I'm misunderstanding.

You have XP tracker, so you can see it on your screen if you open sidebar. Otherwise there is vanilla interface where you can hover on skills


Add 'Origami Studio' App

If there’s a checkbox you can’t complete for any reason, that's okay, just explain in detail why you weren’t able to do so.
After making all changes to the cask:

[ ] brew cask audit --download {{cask_file}} is error-free.
[ ] brew cask style --fix {{cask_file}} reports no offenses.
[ ] The commit message includes the cask’s name and version.

Additionally, if adding a new cask:

[ ] Named the cask according to the token reference.
[ ] brew cask install {{cask_file}} worked successfully.
[ ] brew cask uninstall {{cask_file}} worked successfully.
[ ] Checked there are no open pull requests for the same cask.
[ ] Checked that the cask was not already refused in closed issues.

added the latest and officially first release of Origami Studio to the homebrew cask list

You need to adda comment above the url stanza.

Thank you for the contribution. It needed some fixes, so they were made in ec8e47baf775fe383fa64df5e2e3bae24312cf9c. Your contribution is still included (and still credited to you), with the appropriate modifications. Please feel free to ask about any of the changes.


Benchmark multi batch indexing

Hey @irevoire, could you please add the new benchmarks into influx?

Look like the action failed because the benchmark took too much time...

The job running on runner benchmark has exceeded the maximum execution time of 360 minutes.

I thought our limitation was 48h @curquiza ? :thinking:
I guess we'll have to split the re-indexation to another file :pensive:

@irevoire @Kerollmops here are the expected limits: https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners#usage-limits


Update libp2p to 0.41.0

Motivation
We want upstream fixes and other goodies. Current version
https://github.com/ChainSafe/lodestar/blob/7d662d7951db27edcee15fd7266bed322f0a3882/packages/beacon-node/package.json#L142
Description
Minimal edits to update to latest libp2p and networking dependencies

It seems there's a memory leak.
Screenshot shows high process memory (the spike back down is process being restarted)

This leak may also be present in the unstable branch. Current theory is its related to the rate of inbound peer connections.

This leak may also be present in the unstable branch. Current theory is its related to the rate of inbound peer connections.

yes, specifically it's due to https://github.com/ChainSafe/node-snappy-stream/issues/16


hop-node: read existing DB entry before getting timestamped key

@miguelmota Changes are what was discussed. I verified it works on the first write when dbTransferRoot will be null.

Fee free to merge after the comment fixes


Ask about version range when using canary upgrade

Hi everybody,
In the official upgrade guide (https://istio.io/latest/docs/setup/upgrade/), it said that :

Upgrading across more than two minor versions (e.g., 1.6.x to 1.9.x) in one step is not officially tested or recommended.

But I would clarify if this is only true for In-place Upgrade or this is true for both In-place Upgrade Canary?
The reason I would ask this is my Istio version is far away from the latest version. So It would helpful for us if we could do 1 time upgrade for greater than 2 versions.
Thank you so much.
Best Regards,

I think the limition for the canary upgrade will be more lenient in real world, but it also depend on how you use istio.

@zirain thank you for your reply, could you please describe more? Because, I assume that detailed upgrade steps will be depend on how I use Istio, but my question is just about "Is it ok to use canary upgrade mechanism to upgrade more than 2 versions gap (eg from 1.11 to 1.15) ?"

In most of case, it's OK to do that upgrading.
In case you have some special case of usage, e.g. some EnvoyFilter may not working on a newer version.

@zirain Oh, I got it, yes I am assuming that I will need to handle any breaking changes like the normal upgrade process. Thank you so much for your confirmation.

for in place, anything more than 1 by 1 will break. With canary 2 is officially supported and tested but in practice more tends to work. We have done 10+ versions skipped


Caused by: org.threeten.bp.zone.ZoneRulesException: Unknown time-zone ID: America/Ciudad_Juarez

Caused by: org.threeten.bp.zone.ZoneRulesException: Unknown time-zone ID: America/Ciudad_Juarez

I'm guessing you're on Android? See my comment in #175 . The America/Ciudad_Juarez timezone was introduced in tzdb 2022g.
TL;DR Update your TTBP version to 1.6.5 or use the native java.time.* APIs instead (API 26+).


Cannot read property 'body' of undefined ?

			<textarea ui-tinymce ng-model="tinymceModel"></textarea>

Idk this error how to fix this error.

Hi @RobinCodeX, how did you resolve the above error? I just got the error too when I upgraded to the latest version

@andela-smartins use version 4.3.12, see https://github.com/angular-ui/ui-tinymce/issues/264

Had this issue before. i solved it by commenting out toggleDisable(scope.$eval(attrs.ngDisabled)); in lie 142


In Both Platform share image with extension crash my app every time

I am getting empty response in type and value only once after that my app keep stoping
Crash app while share image to my app

"react": "16.8.3",
"react-native": "0.59.5",
"react-native-share-extension": "^1.2.1"

I have followed same steps for android and ios both multiple times but i still got crashed.

i same you

Facing same issue, anybody found a solution?

use react-native-file-share-intent


add example for shopware

Describe your changes
Support shopware
https://github.com/shopware/shopware
Issue ticket number and link

if it has issues, add them

Checklist before requesting a review

[ ] I have performed a self-review of my code
[ ] If it is a core feature, I have added thorough tests.
[ ] Do we need to implement analytics?
[ ] Will this be part of a product update? If yes, please write one phrase about this update.

LGTM


Search button

I look for this issue for solve this issue https://github.com/TryGhost/Ghost/issues/5321


[SPARK-32437][CORE] Improve MapStatus deserialization speed with RoaringBitmap 0.9.0

What changes were proposed in this pull request?
This PR aims to speed up MapStatus deserialization by 5~15% with the latest RoaringBitmap 0.9.0. Note that we focus on deserialization time.
Why are the changes needed?
To improve the performance.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Pass the Jenkins or GitHub Action.

Test build #126538 has started for PR 29233 at commit f784f2c.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/31157/
Test PASSed.

cc FYI, @HyukjinKwon since GitHub Action is not triggered here.

Test build #126538 has finished for PR 29233 at commit f784f2c.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/126538/
Test PASSed.

Thank you, @srowen ! Merged to master.

Oops.. I missed the dependency update and Jenkins passed without a dependency test. :(
I'll make a hotfix commit.

LGTM except ^.


Compressing tarball on Windows

When compressing a entire folder with
archiver.TarGz.Make("myfolder.tar.gz", []string{"./myfolder"})
If i open that arhive in Windows it will look great i can go through the directory structure... However when i extract this on linux it wil create filenames like this:
"picons\picons\france\1_0_1_EB2_AAFF_7EB6_0_0_0_0.png"
and empty folders named this:
"picons\picons\france"
That is not paths that is the actual name of the file....

https://github.com/mholt/archiver/blob/master/tar.go#L149
Maybe need another pr like https://github.com/mholt/archiver/pull/37 to handle this for tar format.

@addelovein I have a quick implementation at #64 , could you test on windows?

@halfcrazy Sorry for delay but thanks for the attempt... However still result when extracting on NIX is:
drwxrwxrwx    2 root     root            40 May  1 17:00 picons\picons\united_states
-rw-rw-rw-    1 root     root          5724 May  1 16:59 picons\picons\united_states\1_0_1_2331_AAFF_7EB6_0_0_0_0.png
-rw-rw-rw-    1 root     root          3601 May  1 16:59 picons\picons\united_states\1_0_1_2332_AAFF_7EB6_0_0_0_0.png
-rw-rw-rw-    1 root     root          3174 May  1 16:59 picons\picons\united_states\1_0_1_2334_AAFF_7EB6_0_0_0_0.png
-rw-rw-rw-    1 root     root          6451 May  1 16:59 picons\picons\united_states\1_0_1_2338_AAFF_7EB6_0_0_0_0.png

@addelovein can you re-test? With pr #77 merged, this should be fixed now.

Closing since no activity.


#1347 Enable application process to be configured

What's included?
Enables an application process to be configured for an exercise so that, for example, minimal information can be requested during initial registration and the remaining information requested when candidates have successfully passed a qualifying test.
See corresponding functionality in Apply https://github.com/jac-uk/apply/pull/799
To facilitate this functionality a number of fixes and improvements have been made:

Code is more concise and easier to navigate
Improved router config
Improved navigation

Less bugs
Better UX
Applications show in correct status (draft, applied, withdrawn)

Create exercise 'journey' works as expected
Exercise overview. Show correct counts of 'draft' and 'applied' applications

Risk - how likely is this to impact other areas?
🔴 High risk - this includes a lot of changes to shared code
Who should test?
✅ Developers
✅ Product owner
✅ User testing Group
How to test?
Below are tests for the expected behavior of Admin.
There are corresponding tests for Apply - see https://github.com/jac-uk/apply/pull/799
1. Configure an exercise to have a staged application process

Find or configure a draft exercise. (if an existing exercise make a change so that this new functionality is activated)
Navigate to the new 'Application process' page.
Click to 'Update application process'.
Drag and drop application 'parts' to the desired stages of the application process.
Click 'Continue' and notice that the changes have been saved.

Expected: the above steps can be carried out successfully
https://user-images.githubusercontent.com/8524401/121855469-4744bc80-cceb-11eb-927f-36b2939dc95e.mov
2. Make changes to an exercise and update the application process

Edit the exercise configuration so that the relevant application 'parts' change. For example make changes to the 'Assessment options'.
Navigate to 'Application process' and notice that the new 'parts' have been added to 'Registration'
Try 'Update application process' again (as above).

Expected: the above steps can be carried out successfully
https://user-images.githubusercontent.com/8524401/121855724-968aed00-cceb-11eb-92b3-f13b458acf96.mov
3. Progress to the next stage of an application process

Find an approved exercise which has been configured to have a staged application process
Navigate to 'Application process' page
Notice that the current/next stage in the process is indicated
Click the 'Edit' link to change the current/next stage.
Fill in the stage, dates and click save
Notice that the configured stage and dates are updated

Expected: the above steps can be carried out successfully
https://user-images.githubusercontent.com/8524401/123976768-53e93600-d9b6-11eb-9150-9248085fe611.mov

PREVIEW:DEVELOP
can be OFF, DEVELOP or STAGING

do
* `src/views/Exercises/Reports/StatutoryConsultationTable.vue`

* `src/views/Exercises/Reports/ReasonableAdjustments.vue `

* `src/views/Exercises/Reports/JOHandoverReport.vue`

* `src/views/Exercises/Reports/EducationAndCareerHistory.vue `

need deleting ?

I think they have been deleted


It would be nice to see this in awesome-go

As the title states, it would be nice to see this listen on awesome-go to make it more discoverable.

https://github.com/avelino/awesome-go/pull/1966
Now redis-lock is listen on  awesome-go


Delayed start up due to not being a plugin

It looks like rustyvxcan delays docker start up (boot) as docker cannot locate it as a plugin (my best guess)? Looks something like this:
feb 06 10:00:02 bert systemd[1]: Starting Docker Application Container Engine...
feb 06 10:00:03 bert dockerd[2612]: time="2024-02-06T10:00:03.052065525+01:00" level=info msg="Starting up"
...
feb 06 10:00:05 bert dockerd[2612]: time="2024-02-06T10:00:05.002532913+01:00" level=warning msg="Unable to locate plugin: rustyvxcan, retrying in 2s"
feb 06 10:00:05 bert dockerd[2612]: time="2024-02-06T10:00:05.325039582+01:00" level=warning msg="Unable to locate plugin: rustyvxcan, retrying in 2s"
feb 06 10:00:05 bert dockerd[2612]: time="2024-02-06T10:00:05.815916339+01:00" level=info msg="ignoring event" container=e2dd635054498655dd705917fb9e12d93d402ac46d00b5db1936c3f52f951493 mod>
feb 06 10:00:05 bert dockerd[2612]: time="2024-02-06T10:00:05.823567163+01:00" level=info msg="ignoring event" container=ede246cd16006170d16d544428d60ac165aa31f88367a8a6668dd88edb1591fb mod>
feb 06 10:00:07 bert dockerd[2612]: time="2024-02-06T10:00:07.003658851+01:00" level=warning msg="Unable to locate plugin: rustyvxcan, retrying in 4s"
feb 06 10:00:07 bert dockerd[2612]: time="2024-02-06T10:00:07.325370561+01:00" level=warning msg="Unable to locate plugin: rustyvxcan, retrying in 4s"
feb 06 10:00:11 bert dockerd[2612]: time="2024-02-06T10:00:11.004043839+01:00" level=warning msg="Unable to locate plugin: rustyvxcan, retrying in 8s"
feb 06 10:00:11 bert dockerd[2612]: time="2024-02-06T10:00:11.326119944+01:00" level=warning msg="Unable to locate plugin: rustyvxcan, retrying in 8s"
feb 06 10:00:31 bert dockerd[2612]: time="2024-02-06T10:00:31.393127737+01:00" level=warning msg="Unable to locate plugin: rustyvxcan, retrying in 1s"

It's not a major problem as docker gives up after a while, but it delays initial start up of my system after boot (all docker commands hangs). Would it be possible to convert the project into a proper plugin? Or might there be any other solutions to this?

So, to my understanding, this is already a normal docker plugin. However, you do have to have the plugin running before docker will be able to find it. Docker is using an HTTP API to communicate with it over Unix sockets.
I provide a systemd service definition file you can use to have it start on boot. You just need to install and enable it.
Here are a few links of what how I set this up:

https://docs.docker.com/engine/extend/plugins_network/#write-a-network-plugin
https://docs.docker.com/engine/extend/plugin_api/
https://github.com/moby/moby/blob/master/libnetwork/docs/remote.md

That said, is there a better way? Or is this using an outdated Docker plugin API? I honestly don't think so, but would review a PR if you (or anyone else) wants to take a look at it.

Closing due to inactivity.


contains faces option re enable

please re enable contains faces option for prior preservation
it is good for faces on my trainings

you can change code by youself

ok

it doesn't improve faces, it reduces overfitting, but if you set the text_encoder at a low value, there won't be overfitting


Released Tern for CudaText

Plugin - in AddonManager (in Cudatext);
code is also at https://github.com/pohmelie/cuda_tern/
It works not worse than Sublime plugin
( @kvichans @pohmelie )

Cool, but how is this an issue with Tern?

this is to add link to list of editors.


How to install?

It's working?
There are any guide about how to install?
There are binaries compiled?
Thanks in advance and great work!

@jcabello7 this app is workings just fine in any Samsung Legacy TV model, running Orsay (pre-2015), aka non Tizen.  You can see a list of Samsung TV models here
As for the installation guide, you can use a usb stick(should be connected to the tv at all times) or take a look here

To install via USB, all you need to do is download the zip, move it to the usb, connect it to the TV and it will only install? or do we have to do some more steps?

I did try both USB and web server, it doesn't get installed, what am I doing wrong?

@kudumi you need to change size value  to the exact size of your jellyfin.zip

@vaxevanis Are the instruction on unpacking and repacking the download from Github perhaps not quite right? I ask because:

the size of the resulting file is 983633 bytes, and setting that in the widgetlist.xml results in a failed install (the only clue from the TV is a hint to navigate to some non-existent Samsung TVAppSecurity URL).
the size of the Emby_2.2.9_Europe_20210518.zip is 962226, and the size in widgetlist.xml is only 919000, but it results in a clean download (it then fails to run for unknown reasons against the Jellyfin server).

Is there any way to get more useful diagnostics from the TV?

OK, the key to getting the download to work is to ensure that when the zip file is repacked, the files must be in the top level of the zip (i.e. not under the directory jellyfin-samsungtv-master). At this point, I can install and launch the app, but it results in a black screen.

I am blocked in the installation process.

by USB it works, but it's reset each time the TV is powered again (need to indicate the server IP each time...), so not useful.
by IP, I come to the point when the TV says "The following new service will be installed automatically", but the file is never downloaded.
The issue looks very similar to the previous mentions, but the given solutions don't work for me. I have no idea what to try.

Did you follow the linked instructions in terms of setting up your Web server, and in terms of editing the script I provided tocontain the address of your webserver? If you did, then try using a browser to fetch your file? If not, use that to debug your setup

Hey now it works!
I'm so happy :-)
@ShaheedHaque
I looked to the script but I was not able to use it, I'm not advanced enough for that. I strictly follow your recommendations of naming (but I already did yesterday...). I'm on windows 10, I noticed that the jellyfin server was not able to transfer the file, but I had no clue why. So I maintained a server with XAMPP (Apache) until the TV took the file.
Regarding the solution, I don't really see what I did different of yesterday, but I'll try to mention what I can in case it can help someone:

I used this file of the 2.2.9 using the link you post some comments before, so pehaps the issue was from the file itself. It's not the one which come by default on this GitHub.
I zipped it after deleting readme.md and package.sh
I indicated the exact size in the xml.
and I tried 3 / 4 times on the TV...

Good surprise to see that you prepared the 2.2.9 with jellyfin logos 👍
Thanks for all the efforts!

Hi friends.
I'm also interested on install this. Where can i find the 2.2.9 app? I don't find it anywhere.
Thanks in advance :-)

For anyone still commenting and trying to install the Jellyfin app on a Samsung Smart TV with the Orsay arch (pre 2015)
Login with developer account and set the "IP SETTING" to <IP_ADDRESS> then click "Start User App Sync"
After a few seconds the Jellyfin widget will install, it's the one from this repository. Please note that this app is very outdated and unsupported but as off today still works decently. I also still have friends with (old) samsung tv's watching movies like this ;)
For usb install just download the zip file and place it in a subdirectory to sideload offline
http://<IP_ADDRESS>/Widgets/Jellyfin_2.2.5b_Europe_20210518.zip

Doesn't work with server version > 10.9.x. (latest is 10.10.3)
Version comparison in serverversion.js is unluckily implemented


Discussion: Figure out a proper syntax proposal

The current syntax we have is good, but there are some alternatives that may be better for the language to consider.
The current candidates seem to be:

try [expr] catch [expr]
[expr] !? [expr]
[expr] ?! [expr]
try [expr] default [expr]

What would work best?
@andreubotella @im-beast @lilnasy

What happens to the error that the failable expression throws? How would it be accessed?

What happens to the error that the failable expression throws? How would it be accessed?

I think it's a separate issue, but it may impact the syntax. Opened up #2 to discuss.

I think catch necessarily has to be a function.
const result = try throw 5 catch five => five + 1

In this case, the catch function recovers from the thrown number and resolves by incrementing it, result becomes 6. Presumably, this isn't too controversial.
But what if the catch function throws? How would a try-catch expression compose.
const result = try throw 5 catch five => five + throw 6


README has wrong link to generate an API key

The correct link to the API key site is https://platform.openai.com/account/api-keys

Thanks!


Reactivity with different behaviour in Pages vs Components

Environment
It is happening in two environments of mine

Operating System: Linux
Node Version:     v18.20.3
Nuxt Version:     3.13.2
CLI Version:      3.14.0
Nitro Version:    2.9.7
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      -
Runtime Modules:  -
Build Modules:    -

Operating System: Windows_NT
Node Version:     v22.3.0
Nuxt Version:     3.13.2
CLI Version:      3.14.0
Nitro Version:    2.9.7
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      -
Runtime Modules:  -
Build Modules:    -

Reproduction
https://stackblitz.com/edit/nuxt-starter-ltkw9t?file=app%2Fpages%2Findex.vue&file=app%2Fcomponents%2Fsidebar.vue
Describe the bug
I have a page and a component pointing to some data on a composable, and they point to it in the exact same way. But in one place, it is reactive, and in another place it is not. On component it works fine, but not on page. There it is not reactive.
Additional context
No response
Logs
No response

This bug is probably not related to the differences between "Pages" and "Components". I'd think that both of these components should behave like normal Vue components when it comes to reactivity.
The reason this happens, is because state it not shared between different calls of a composable function. The value of settings.columns is going to be different in each component, so updating it in one component does not update it for the other. This is outlined at the end of the Mouse tracker example section:

You can read more about state management in Vue here or even better, learn how to use it in Nuxt!
For the example you provided you are probably fine going with Nuxt's built in useState composable, but for more complex shared states you might want to take a look at Pinia, which has great integration with Nuxt.

great explanation! thank you ❤

Sorry for taking so long to reply!
Indeed, great explanation! Thank you very much!


Feature/lazy loading dynamic import

Looks good, thanks @garyvh2 ! I'll merge this for now, and tets it properly later on. From a cursory look, things look OK!


Crashed when launch at macOS 10.14

Process:               TySimulator [5934]
Path:                  /Applications/TySimulator.app/Contents/MacOS/TySimulator
Identifier:            com.tianyiyan.TySimulator
Version:               ???
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           TySimulator [5934]
User ID:               502

Date/Time:             2018-10-13 17:59:23.398 +0800
OS Version:            Mac OS X 10.14 (18A391)
Report Version:        12
Anonymous UUID:        B441F26A-E33D-9B65-5799-8CE51A08AEB3

Sleep/Wake UUID:       06F8ADC6-2852-4F91-BCD3-0B79F1669496

Time Awake Since Boot: 4400 seconds
Time Since Wake:       2000 seconds

System Integrity Protection: enabled

Crashed Thread:        0

Exception Type:        EXC_CRASH (Code Signature Invalid)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    Namespace CODESIGNING, Code 0x1

kernel messages:

VM Regions Near 0 (cr2):
-->
    __TEXT<PHONE_NUMBER>23d000-00000001002e5000 [  672K] r-x/rwx SM=COW

Thread 0 Crashed:
0                                 	0x000000010e305000 _dyld_start + 0

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x0000000000000000  rbx: 0x0000000000000000  rcx: 0x0000000000000000  rdx: 0x0000000000000000
  rdi: 0x0000000000000000  rsi: 0x0000000000000000  rbp: 0x0000000000000000  rsp: 0x00007ffeef9c2b98
   r8: 0x0000000000000000   r9: 0x0000000000000000  r10: 0x0000000000000000  r11: 0x0000000000000000
  r12: 0x0000000000000000  r13: 0x0000000000000000  r14: 0x0000000000000000  r15: 0x0000000000000000
  rip: 0x000000010e305000  rfl: 0x0000000000000200  cr2: 0x0000000000000000

Logical CPU:     0
Error Code:      0x00000000
Trap Number:     0

Binary Images:
       0x10023d000 -        0x1002e4ff7 + (0) <885107B1-2E03-34F0-ACA1-C238674C5C33>
       0x10e304000 -        0x10e3826a7 + (625.13) <D6387150-2FB8-3066-868D-72E1B1C43982>

External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 91277
    thread_create: 0
    thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=1448K resident=0K(0%) swapped_out_or_unallocated=1448K(100%)
Writable regions: Total=8400K written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=8400K(100%)

                                VIRTUAL   REGION
REGION TYPE                        SIZE    COUNT (non-coalesced)
===========                     =======  =======
STACK GUARD                       56.0M        2
Stack                             8192K        2
__DATA                             396K        4
__LINKEDIT                         268K        3
__TEXT                            1180K        3
shared memory                        8K        3
===========                     =======  =======
TOTAL                             65.8M       11

Model: MacBookPro11,1, BootROM MBP111.0146.B00, 2 processors, Intel Core i5, 2.4 GHz, 8 GB, SMC 2.16f68
Graphics: Intel Iris, Intel Iris, Built-In
Memory Module: BANK 0/DIMM0, 4 GB, DDR3, 1600 MHz, 0x802C, 0x384B54463531323634485A2D314736453120
Memory Module: BANK 1/DIMM0, 4 GB, DDR3, 1600 MHz, 0x802C, 0x384B54463531323634485A2D314736453120
AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x112), Broadcom BCM43xx 1.0 (<IP_ADDRESS> AirPortDriverBrcmNIC-1305.2)
Bluetooth: Version 6.0.8f6, 3 services, 27 devices, 1 incoming serial ports
Network Service: Wi-Fi, AirPort, en0
Serial ATA Device: APPLE SSD SD0256F, 251 GB
USB Device: USB 3.0 Bus
USB Device: Apple Internal Keyboard / Trackpad
USB Device: BRCM20702 Hub
USB Device: Bluetooth USB Host Controller
Thunderbolt Bus: MacBook Pro, Apple Inc., 17.2

@zhongdom  It's fixed. Please use the latest version of TySimulator. 😊
https://github.com/luckytianyiyan/TySimulator/releases/latest


COO-225: fix: Add support for ConsolePlugin v1

This PR adds support for ConsolePlugin CR v1 for OCP 4.17. For older versions the v1alpha1 support was kept

Verified the bug COO-225 with this PR, the issue is gone on OCP4.17

/lgtm

/lgtm
Thanks!


BoxDDP capabilities under v1.2.1

A few weeks ago I created a shooting problem under v1.1.0 based on your bipedal_walking_ubound.py and solved it successfully with the BoxDDP for our robot.
After updating to the latest version the solution does not converge anymore after the fourth footstep.
Have there been any changes in the solver structure or similar that could account for this? If not, do you see other possible explanations?

Changes to BoxQP were between v1.0.0 and v1.1.0 - and there are numerical differences in the behaviour (cf. #743). It mostly relates to the old BoxQP working better with BoxDDP, and the new BoxQP working better with BoxFDDP.
The release notes do not indicate related changes between v1.1.0 and v1.2.1 - apart from adding the virtual keywords. There were previously bugs due to the omission of the virtual keyword, so I wonder if that could be related?
Do you have logs of the verbose output from before / after? This can help by looking at the change of costs over iterations.

Thanks for your response.
The current log looks like this: logNewBoxDDP.txt. Previously it has been solved within ~30-40 iterations.
Apparently, I can't reproduce the previous solution with my current setup.

Changes to BoxQP were between v1.0.0 and v1.1.0 - and there are numerical differences in the behaviour (cf. #743). It mostly relates to the old BoxQP working better with BoxDDP, and the new BoxQP working better with BoxFDDP.

@wxmerkt -- @julesser reported to develop his problem under v1.1.0, not v1.0.0.
In v1.0.0, we have an experimental code for the BoxQP and the BoxDDP. Both were buggy and fixed in v1.1.0. The latest version of BoxQP` uses Cholesky decomposition, we are investigating if this affects the numerical behavior.

Have there been any changes in the solver structure or similar that could account for this? If not, do you see other possible explanations?

I have introduced a quadratic penalization of the friction cone. I suspect this might be the reason of the difference in your behavior. You might want to check the behavior of your application by turning off this cost.
Additionally, could you share with us the log of the solver?

The bipedal.py (or any example related file) might change in future. I suggest you to use them as "example code" for developing your own application.

You might want to check the behavior of your application by turning off this cost.

Thank you for pointing that out. Unfortunately, excluding these costs has not resolved the issue.

Additionally, could you share with us the log of the solver?

Just posted it in the previous comment.

It is weird because we have not modified any solver / algorithm between v1.1.0 - v1.2.0. It would be helpful if you could share the exact commit you were using.
I personally checked that the examples have the same behavior. However, we have observed that sometimes happen differences between different PCs. Are you using the same PC?

The current log looks like this: logNewBoxDDP.txt. Previously the problem could be solved within ~30-40 iterations.

The bipedal formulation needs to be improved. When you move from to the next problem, it assumes that the relative CoM position w.r.t. the feet is the same. Therefore, the previous solution needs to reach the final CoM.
It seems for some reason, the final CoM position is not reaching the desired position as before. You could quickly try to do:

increase the stopping threshold, and / or
use the BoxFDDP solver.

Let me know if this fixes your issue.

I used the binary versions, i.e. robotpkg-py36-crocoddyl, both on the same PC.

use the BoxFDDP solver.

Using BoxFDDP works! In contrast to BoxDDP, the solution converges after  ~20 iterations: logBoxFDDP.txt

increase the stopping threshold

You mean the maxIter parameter? Increasing it to 1e3 brought no success.

The bipedal formulation needs to be improved. When you move from to the next problem, it assumes that the relative CoM position w.r.t. the feet is the same. Therefore, the previous solution needs to reach the final CoM.

How would your preferred solution look like?
Maybe I could contribute to the bipedal formulation under your guidance. We are actually just starting to prepare my master's thesis in this field, where one part is to generate optimal walking trajectories for a new humanoid robot, e.g. with your Crocoddyl library.

Using BoxFDDP works! In contrast to BoxDDP, the solution converges after ~20 iterations: logBoxFDDP.txt

Box-FDDP always outperforms Box-DDP. It is a novel method that I have submitted few weeks ago. As soon the paper get accepted, I will share it.

You mean the maxIter parameter? Increasing it to 1e3 brought no success.

No, I meant th_stop. Try something like 1e-9, it seems you're using a value around 1e-6.

Maybe I could contribute to the bipedal formulation under your guidance. We are actually just starting to prepare my master's thesis in this field, where one part is to generate optimal walking trajectories for a new humanoid robot, e.g. with your Crocoddyl library.

It would be great! Probably, you should described (in private via email) your project. With this, I will have a better idea how you could contribute.

No, I meant th_stop. Try something like 1e-9, it seems you're using a value around 1e-6.

Thanks for pointing this out.
1e-9 does not seem to be feasible. th_stop = 1e-8  again fails after the second shooting problem:
logBoxDDP_th_stop_e-8.txt.

1e-9 does not seem to be feasible. th_stop = 1e-8  again fails after the second shooting problem:
logBoxDDP_th_stop_e-8.txt.

Thank you for sharing these results. It would be useful if you can share your script (or give me access to your code).

Thanks for your quick following up. The working version (adapted from bipedal_walk_ubound.py) is located here:
https://github.com/julesser/crocoddyl/blob/devel/examples/RH5/walk.py

@julesser I reviewed the code twice. It is hard to give you an answer if you do not provide the commits (and replicate the conditions) in which your script was working.
I have strong doubts that the BoxDDP explains your problem. I believe you started to write your script (because it is based on our examples) after the BoxDDP was working (integrated in January 5 and release February 13 (under v1.1.0), 3d3b9470563e6b7c860679d72ee220642658cc68). BoxQP and BoxDDP have not being changed since that release. I just improved the efficiency in c50482471d635f6cf072ab3b3fcfda31e83d8a2b, 4a638a3404b084b2b928831a439af5b1019c0be9, cebc12d3eaa8a2feb7e99b5aaf3240ef233, and fixed an issue regarding infeasible initial state (but it does not seem to be your case) here a504b13424517ea56ed2fb83f5efed. All the tiny changes were tested against each example.
On the other hand, the bipedal formulation has also changed a little in time. Some of the changes are

included the friction cone c1a2a44afaa9ccfe073768483ff02d5c924448bf .
modified the weights of few cost functions 48c4bf441d9ba1c67f12b35f03caa668ebd1b3a6.

Point 2 was done before your modification (before January 5), so it might not be the reason. Instead point 1 was introduced January 2. Both were release in v1.1.0 (February 13). Therefore, this invalidates also the point 1.
The only explanation that I see if you exchanged the biped.py between different versions. It could happen with dirty installation from source. If that happens, then point 1 and 2 could be the explanation.
As far as I am concerned, if you cannot reproduce both cases again then I will have to close this issue (because there is no evidence that the BoxDDP has an issue).

Note that @wxmerkt reported a difference numerical behavior of the BoxQP (used in BoxDDP). I changed completely the BoxQP solver when I integrated in January 5. Previously, BoxQP and BoxDDP were experimental code that there were not working, and at that moment, I did not integrate the bipedal example that you are using.  For sure, this is not an explanation of this issue. Indeed, the @wxmerkt's report is not a real bug, it is a need to improve the numerical behavior of this solver.

I will close this issue since there is no activity or evidence to have an issue in the BoxDDP.
Feel free to re-open it if things change.