already observed experimental data

Thank you for the wonderful tool！ I have a question about the architecture. Is there a way to add already observed experimental data to a campaign in experiments? Also, is there a way to check the average and variance of the recommended experimental points and exploration space, as well as the evaluation values of the acquisition function in a dataframe？

Hi @tatsuya-takakuwa

Is there a way to add already observed experimental data to a campaign in experiments?

So I'm assuming you know the very basic example here: https://emdgroup.github.io/baybe/examples/Basics/campaign.html
After you've created your mycampaign = Campaign(...) object, theres nothing that forces you to request recommendations. You might as well simply add your already existing measurements (assuming they match the search space you've created) via mycampaign.add_measurements(your_data_as_pandas_dataframe) and then continue with requesting recommendations. Does that answer your question or are there more subtleties to it?

Also, is there a way to check the average and variance of the recommended experimental points and exploration space,

The result of the recommend call, e.g. rec = mycampaign.recommend(20), is a pandas data frame. You can simply obtain the variances and means via pandas built in functions, for instance like rec['Parameter42'].var() or rec['Parameter1337'].mean().
In a similar fashion, you can acccess the discrete part of the search space in experimental representation via mycampaign.searchspace.discrete.exp_rep, which is also a pandas data frame so the above applies. Note that we do not recommend to meddle with the internal objects of a campaign object, treat them as read-only. If your search space has continuous parts the mean and var arise somewhat trivially from the parameter definition.

as well as the evaluation values of the acquisition function in a dataframe?

The values of the acquisition function are not persistent at the moment in our code. So at this stage that is not possible. We will add this request to the list of properties we are currently considering enabling to return upon request.

@Scienfitz
Thank you for your prompt response.
I apologize for any misunderstanding caused by my question.
What I meant was the following:
The average and variance of recommended experimental points and exploration space
→ How to output the predicted values (average and variance) of the surrogate model for the entire recommended experimental points and exploration space.
I understand that if it's difficult to output the evaluation of the acquisition function, then probably these are also impossible.
In actual use cases, when there is only a small amount of experimental data, these indicators are necessary to explain the purpose of the experiment to the experimenters. I am looking forward to being able to output these in future updates.

@tatsuya-takakuwa
ah I see, sorry for my confusion.
But in that case indeed its the same problem as for the acq function values, they are not stored persistently at the moment
@AdrianSosic do you see a hacky way of extracting whats been requested here? Otherwise I think it might be time for us to look into these extractables as a new feature. I think one potentially elegant way could be that the recommend function has optional arguments that serve as sort of callbacks or variables in which the requested additional info is stored, after all mean and covar are already calcualted.

Hi @tatsuya-takakuwa :wave:. Fully agree with what @Scienfitz wrote. Currently, the surrogate model and acquisition function are thrown away after the computation, so I think there is no straightforward way to access this information at the moment. However, making this type of diagnostic information available is definitely on the roadmap! Currently, we are focusing on improving the docs (the package went public just a months ago) but I guess we can tackle your request after that 👍🏼

@Scienfitz @AdrianSosic
Thank you for your response. I appreciate your consideration regarding the addition of diagnostic features. I'm looking forward to it.

Hey @tatsuya-takakuwa just as a quick update here: Starting Mid April, we plan to include ways of "making information that is obtained during calculation available". I am staying vague here on purpose since we still need to discuss how exactly this will be included and when it is available, but the current plan is to include this in the way @Scienfitz described it on Jan 7. So your issue has not been forgotten and is on the roadmap 😄

Hi, registering my interest in this feature as well (original thread #184).
With respect to injecting our own code into acquisition.py as a temporary workaround, would you mind pointing me in the right direction?
I suspect the information I'm looking for is somewhere in the posterior method of the AdapterModel class, but I'm not sure exactly where to go from there (if that even is the right starting point haha).

Registering my interest too on this topic. We also need surrogate model and acquisition function with recommended candidates.

I renamed this Issue to reflect the open part of the original Issue.
Old name already observed experimental data
Thank you @zhensongds and @brandon-holt for following the suggestion and registering your interest here. We will let you know asap when there are news on this topic which is now actively starting to get implemented.
@AVHopp @RimRihana for your reference I intend this open issue as collection for everyone expressing interest in whats the supposed outcome of Rims project

@Scienfitz Hey! Just curious if there's an updated ETA on the release of this feature?

Hi @brandon-holt, the feature is already in sight: once #220 is merged, the infrastructure that will allow us to expose the model/acqf to the users is in place. From there on, it's only one PR to flesh out the interface. Normally, I'd say two weeks from now, but currently it's bank holiday season here in Germany which will slow us down quite a bit. So perhaps end of the month, if no unexpected problems arise. But you can follow the progress in the mentioned PR 👌
There is also already a second workstream that will allow users to lurk into baybe code flow via custom hooks, but that is a little further down the road.

@AdrianSosic now that it looks like #220 has been merged, does this mean the feature is now accessible? Would it be possible to have a quick example of how to expose the model and generate predictions of target variables, assess accuracy, etc?

😄 seems someone was watching me merge the PR 😄
We are one step closer but unfortunately not yet there. There is one last refactoring needed, namely the one that let's us use our surrogates with the experimental (instead of computational) representation of the data. However, I can try to draft the mechanism using an intermediate solution on a separate branch, which could also serve as a test to verify that the intended final layout actually works. Give me a moment to think about it, will contact you again here ...

@brandon-holt 👋🏼 I've quickly drafted a demo for the surrogate model access (based on a temporary solution) that you'll find in the demo/model_access branch. While this is already fully function in that it gives you access to the posterior mean and covariance of the surrogate model, please note that this is really only a draft and many things still to be fleshed out and will be changed in the later version. For instance:

You don't get the actual surrogate but currently just a callable that mimics the posterior function of the surrogate
There is no access to the callable on the recommender protocol level but only for Bayesian recommenders, hence the rather cumbersome access via campaign.recommender.recommender.get_surrogate()
You need to explicitly call recommend first in order to trigger model training
No error handling whatsoever
...

But let me know if this already helps. Similarly, we can provide access to the acquisition function.
Also @Scienfitz, please have look and let me know what you think. I guess you can imagine what the final solution would look like once fully integrated with the refactored surrogates ...

@AdrianSosic amazing thank you!!! sorry would you mind pointing me to a link with the demo?
Is it somewhere near here?
https://github.com/emdgroup/baybe/tree/demo/model_access/examples

No, I just placed it directly into the package root, that is, baybe/demo.py (this branch is just for demo purposes)

@brandon-holt @zhensongds @tatsuya-takakuwa
I just wanted to inform you that the principal functionality that enables the requested access to internal/non-persistent info requested in this thread is now on main. It was merged in #275 and #276
Keep in mind this is not released yet

It's not documented yet, there is however one simple example here illustrating the concept
We plan to provide examples and a userguide for it

We can enable some exciting new features with that. Work in Progress

Auto-stopping unpromising campaigns
Access to the model and feature importance
Outlier detection

@AdrianSosic How would I install the branch that includes the model access feature?

Hi @brandon-holt, which one exactly are we talking about? The temporary demo/model_access branch that I created as a preview for you here? You should be able to that via
pip install git+https://github.com/emdgroup/baybe.git@demo/model_access

@AdrianSosic So for this example here, there is a line
# Recommend to train surrogate
campaign.recommend(3)

Can you explain the idea here in more detail? Isn't the step where the measurements are added what actually fits the model? How does just the process of calling the acquisition function do anything to the underlying model/GP? Especially without adding measurements for those recommended experiments? That step seems unecessary to me, so I must be missing an important concept.
Also, does the number of recommended experiments matter? Can you do 1, 100, 1000?
Thanks in advance!

Hi @brandon-holt. Just upfront, to make sure we're on the same page: Everything on that branch was just a quick hacky workaround to give you access to the posterior mean/variance within the current code layout. Nothing you see here is set in stone and, in fact, the implementation of the final solution will look completely different, giving you much more flexibility in terms of model access, which will also work for future extension that are already on the way (e.g. non-Gaussian models, etc). There is already an entire dev branch (dev/surrogates) on which I am very actively working at the moment. So please ignore the internal details completely and the ugly workaround of the recommend call.
That said, to answer your questions:

Yes, in the hacky demo, the recommend call is currently needed since it triggers the creation of the surrogate model in the first place. The reason is that, in contrast to your conjecture, the model is not trained upon adding new data but lazily when requesting recommendations. (<- this will be adjusted in the new version) But for now: it doesn't really matter how many recommendations you request when your only goal is to access the surrogate – just use any number. However, if you are interested in the recommendations themselves, you should definitely put exactly the number you desire (see note on "batch optimization" in our campaign userguide)
The GP is a particular kind of a surrogate model, which we use as default (it is the de facto standard working horse for Bayesian optimization for several reasons). But you can switch to other model types if needed. The emphasis here is on "if needed" though, i.e. I would not switch unless I have a very specific reason to do so.

Hope that helps! If you have further questions, let me know. My hope is that I can finish the surrogate refactoring (whose scope became much larger than initially anticipated) within the next two weeks. Once done, it'll give you very easy access to all sorts of posterior distributions of any model kind (Bandit model, which are currently also in the pipeline)

@AdrianSosic This all makes sense, thank you for explaining! On the topic of the next release, do you have an expected timeline for when feature importance analysis will be available?
Also, do you have any idea why the mean values produced by the surrogate are all negative? The absolute values are in the correct range for the dataset (~1.8-2.6), but are all negative. Here is a scatter plot

When I multiply the predicted values by -1, the r2 score is ~0.4, suggesting a relatively decent prediction on the test dataset. Do you know why this is happening?

@brandon-holt No clear timeline for that, unfortunately, but once the surrogate refactoring is completed, it will be very easy to extract the importances at least for GP models without any additional machinery. So even if unclear when a clean API for that will be made available, I could very quickly hack a temporary solution for you similar to the one above. In fact, you could even do it yourself based on the above hack if you feel confident to dig down into the gpytorch models. All you need to do is to access the kernel of the trained GP inside the surrogate model and extract its lengthscales. This will already provide you the raw importance score. Bringing this into a production ready state is then more about putting the necessary bits and pieces around, i.e. aggregating these score from the computational level back onto the experimental level and properly normalizing them. Unfortunately, I'm too packed to do it for you right now, because we urgently need to get the next release out before the Acceleration Conference in August. But after that, I could look into it 👍🏼
Regarding the "negative" issue: Yes, I think I know quite exactly what is the problem. Let me guess: you used a "MIN" mode for your target variable, right? In my hack, I simply didn't not properly take into account that the surrogate values need to be inverted again for that case. So you can simply do the inversion yourself in this case. In the final solution, none of these problems will remain of course (hopefully :D)

@AdrianSosic wokderful, this clears everything up! Thanks for the detailed explanation :)

@AdrianSosic Heyo, hope you have all been doing well! Just checking in on what's the latest on an official release for this feature, as well as the feature importance analysis component?
On the feature analysis side, would there be any way this would be compatible with a package like or similar to shap?

Hi @brandon-holt, thanks for maintaining your interest, despite the long-lasting changes happening 👏🏼 I can image it may feel like not much is happening at the moment because most of the changes are still behind the scenes. But trust me: a lot of things are currently in progress 🙃
To give a brief update with a rough roadmap:

Tomorrow, we'll release version 0.10.0 (if nothing unexpected happens). As you can see here, this already contains a very long list of changes, but the most important ones (surrogate refactoring, hook mechanism, polars extension) are not even in there yet since the merges of the dev branches still needs to happen (today/tomorrow)
Once this is done, we'll have a complete new interface available for the surrogates and their posterior, which will enable all the new fancy features, including those requested in this issue.
All that is missing (and I'll start working on it next week) is the public layer to access these features.

This brings me to an important point: Since I haven't fleshed out the details on how the interface for the requested features will look like, it would be great if you could share your precise wishlist. That is, how exactly would you ideally want to access/evaluate the model internals, such as the posterior predictions, acquisition values, feature importances. Could you share some function/method calls how you envision them?
Of course, I cannot guarantee that the final layout will exactly match with your expectation, but it'll definitely be helpful to get some user feedback on the API.

@brandon-holt since the new version is released now, did you have a chance to have a look?

Hey @AVHopp, the new version has nothing to do with the features requested in this issue, but we're close.
@brandon-holt: The dev-branch will be merged next week (waiting for @Scienfitz to come back from vacation and doing a final review). After that, the surrogate predictions and acquisition values are generally available. Also, the problem with the "inverted" predictions you mentioned here is already addressed in #340, which I'll also merge next week. After that, you basically have access to the model internals and can already start working with it, by manually accessing the posterior method of the surrogate object sitting in your recommender.
Will now think about what is a reasonable high-level interface to provide convenient user access to it. Wishes/ideas still welcome 🙃

@nipunupta0092 @brandon-holt @tatsuya-takakuwa @zhensongds doing a round of tagging

short term
Once #355 is merged you can follow the simple recipe outlined here to do feature importance or anything else involving the surrogate model

long term:
This capability will be further consolidated into a new diagnostics sub-package for easier access, discussed in #357

Closing this Issue as #355 has made the surrogate available
Further development on using this for diagnostics to be done in #357


Add softwaremill/sttp

Hi @ghostbuster91, I've seen that you are not a maintainer or contributor of the added repo. Have you checked with them if they are OK with adding it here. I'd like to avoid flooding projects with pull requests without their consent.

Hi @fthomas, indeed my PR to sttp is still in progress, however sttp is our's company project (softwaremill) and I already spoke with the main maintainer.

👍


Use 'type' (enum parameter) instead of 'standalone' (bool parameter)

Replace standalone with type being an enumeration of three values:

static: a static challenge can be solved offline once resources have been downloaded from the challenge platform.
simple: a simple challenge requires a server but the intended exploit does not result in server-side command/code execution.
sandboxed: a sandboxed challenge requires a server and the exploit results in partial/full compromission of the server (RCE/ACE/...).

Each 'type' will have a configurable directory layout defined within :

the global configuration (default base of repo config)
and in the repo configuration file (layout to be used within this repo)

mkCTF 6.0.0 implements this feature.


#1936 - Fix for excluding command and arguments as field values

This PR fixes an issue where the short names of arguments are passed for field validation when uploading a file. As _ underscore is not allowed to be used, SharePoint returns a 400 status error. Check more on #1936.

Merged manually. Thank you! 👏


fix: spelling of cafeteria

The commit history doesn't make sense to me - there are 23 commits to merge in the PR, but the description is perfunctory and suggests a change which should only require one very minimal commit ("fix: spelling of cafeteria").
Assuming the dev branch is the correct branch to target, I think you should ensure your local repo's commit history is closer to dev before creating the PR...

I have rebased on dev. Should be fine now.

Looks good to me


Add docs-clean command to Tox

Summary
See https://github.com/Qiskit/qiskit/pull/1690 for the motivation and details.
Details and comments

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
4 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.02%) to 85.337%

Files with Coverage Reduction
New Missed Lines
%

qiskit/circuit/tools/pi_check.py
1
91.23%

qiskit/pulse/library/waveform.py
3
91.67%

Totals

Change from base Build<PHONE_NUMBER>:
-0.02%

Covered Lines:
67895

Relevant Lines:
79561

💛  - Coveralls

Bump


assign layer-view

A layer-view element will be created at the beginning of the layer view method. The layer drawer will be rendered into the layer-view element.

Works well from inside a plugin using the layer object.

The methods for the layer.drawer header should be inside the block for the layer.drawer. It would not make sense to create the header if it is not rendered with the drawer.
The meta method has been moved to the panel. The only reason this was not done before was the need to have the meta being drawn first.
The layer.panelOrder is now assigned as a default if not in the layer config. The content array will be sorted according to the data-id of the content element.


scaffolding api for custom theme presets

resolves #196
Summary
This PR proposes a solution by exposing an API endpoint. The idea is to have the user choose a theme based on the front-end. Once the user has selected a theme, this API can be called to dynamically generate the proposed theme based on the name, directly to the .mirrorful folder.
Notes
The functionality is based on already implemented utility functions. I scaffolded everything together into an API endpoint for testing purposes. The API is set up in a way that can be consumed through a get request but can be expanded to be more dynamic later on. The themes have been hardcoded into the API as well with the current structure -
const themes = [
  {
    name: 'supabase',
    primary: '#3bae7a',
  },
  {
    name: 'linear',
    primary: '#5E6AD2',
  },
  {
    name: 'facebook',
    primary: '#4267B2',
  },
  {
    name: 'doordash',
    primary: '#FF3008',
  },
  {
    name: 'spotify',
    primary: '#1BD760',
  },
  {
    name: 'notion',
    primary: '#FFFDF9',
  },
]

Loom - https://www.loom.com/share/506e01de849a45c1a8396e3ea5f350b5

Talked to Kenny offline. Going to hold this one for now as we're likely going to use OpenAI's API to allow users to pass in any theme name. Great work Kenny! 🚀 🇸🇪


🍱 Add icon for OpenResume

What has been added

.svg logo for OpenResume (open-resume.svg)
512x512 .png logo for OpenResume (open-resume.png)

Notes

OpenResume didn't actually have a .svg small logo, so I downloaded their big (with the OpenResume label) .svg logo and copied the logo-only layer to a new file, then raised a PR in their repository.

Great work!


Issue with Permission for Instant Skip

Please tick all applicable boxes.

[/ ] I am using Python 3.5 or higher (run python --version on the command line)
[/ ] I have followed the official guides to install the bot for my system
[ /] I have updated my dependencies to the latest version using the appropriate update script

Which version are you using?

[/ ] The latest master version (1.9.7)
[ ] The latest review version

What type of issue are you creating?

/[ ] Bug
[ ] Feature request
[ ] Question

Description of issue
I have added my ID under Music Master but I still can't seem to have the permission to instant
skip. I still have to wait for multiple people to type .skip before i am able to skip the song.
config.zip
musicbot.log
Steps to reproduce

Log file
Please attach your MusicBot log file (located at logs/musicbot.log) to this issue. You can do so by dragging and dropping the file here. If you do not include your log file, you WILL be asked to provide one.

you should try !skip f. it was added in the latest notes please make sure to read them

Yes, force skip has been changed to !skip f. Please check documentation before submitting and issue in the future


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target/pull/933 is merged into live branch.
Auto archive content to https://github.com/opstest2/docs-archive-test-target.git

Docs Build status updates of commit 7fd74b7:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error-GitBranchDeletedOrForcePushed] Cannot sync git repo to specified commit because branch Release_Archive_master_2021-06-25-07-57-16 has been deleted or has been force pushed

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


CB2-3846: Update repo to working state

Update repo to working state
After the spike, update the repo to a working state by managing packages and tests.
link to ticket number
Checklist

[x] Code has been tested manually
[x] PR title includes the JIRA ticket number
[x] Branch is rebased against the latest develop
[x] Squashed commit contains the JIRA ticket number

@Ian-Hodges Hi, yes I can confirm this is still working. The test package is still fully functional and I have manually tested the end points :)


designed for single person?

Why is this designed with the idea that only one person will ever use it?
For example upon installation you can create an account...BUT only one and then no other accounts can be created you can only log in.....

I dont know why its not, just it keeps breaking and doesn't let me change any more settings.
it probably only does this for me,
also i reccomend making a Symlink t oyour homeDir, like for example, running, (as normal user)
$ mkdir ~/WebServer && sudo ln -s /var/www/html/dev /home//WebServer
then move Codiad into ~/WebServer, helps fixes write permissions for me


Revert all Hero select at animation and skins classic to OW1

Example here,
https://www.youtube.com/watch?v=MKC-yXYbAMI
Because Blizzard won't let you choose a hero select and skins classic as OW1

My primary goal is to make a game functionally equivalent to OW1, so UI and cosmetics stuff is very very low priority.
Besides, this is something I cannot do through workshop.


Removed bitcode

Bitcode has been a bit hard to maintain because:

the Reader uses self_cell because it uses an internal buffer, and has a cursor that refers to that buffer
it doesn't work with Write/Read directly, i.e. you have to create an overarching struct to serialize

This PR refactors serialization by removing bitcode and using bincode instead.
For the actual replication of messages/components, we can make it configurable so that users can keep using bitcode if they want to.

We use Bytes internally instead of Vec, for several reasons:

on the Send side, we can clone the bytes for free (for example when we need to send the same data to multiple clients)
on the Receive side, we can allocate one Bytes for the received packet, and then we create new sub-Bytes from that one allocation to put the bytes for a message into the channel receiver. This enables zero-copy receives.

The benchmarks don't show much improvement though... don't really know why. I guess the main cost is allocating the various HashMaps?
On the send side, we now allocate a new Writer everytime, but we could instead reuse our current writer and clear.

We are using ToBytes in the various wrappers

Codecov Report
Attention: Patch coverage is 66.66667% with 141 lines in your changes missing coverage. Please review.

Project coverage is 64.81%. Comparing base (2b2f618) to head (87e31aa).
Report is 2 commits behind head on main.

Files
Patch %
Lines

lightyear/src/shared/replication/network_target.rs
31.57%
26 Missing :warning:

lightyear/src/connection/id.rs
0.00%
20 Missing :warning:

lightyear/src/serialize/mod.rs
60.41%
19 Missing :warning:

lightyear/src/shared/replication/mod.rs
79.16%
15 Missing :warning:

lightyear/src/client/replication.rs
0.00%
12 Missing :warning:

lightyear/src/shared/replication/receive.rs
33.33%
8 Missing :warning:

lightyear/src/serialize/writer.rs
57.14%
6 Missing :warning:

lightyear/src/protocol/component.rs
50.00%
5 Missing :warning:

lightyear/src/server/message.rs
0.00%
5 Missing :warning:

lightyear/src/client/message.rs
66.66%
3 Missing :warning:

... and 12 more

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #452      +/-   ##
==========================================
- Coverage   66.66%   64.81%   -1.86%
==========================================
  Files         160      159       -1
  Lines       10600    10411     -189
==========================================
- Hits         7067     6748     -319
- Misses       3533     3663     +130

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Potential security issue when using "Authorization Code" flow

Hi there,
I think I have found a security problem.
In views.py in _get_access_token_jwt() it allows embedding the username in  the JWT payload:
if request.POST.get('username'):
    extra_data['username'] = request.POST.get('username')

This username is then used in authentication.py to figure out who the user is.
But, when using the "Authorization Code" flow, I can't see how the username is verified in views.py to check that it actually is the same as the user who is requesting the access code.
I experimented and I found that I was able to get an access code with user A, but then enter a different user in the POST request to get the token and it just accepted this.
Here is a test case to prove this issue. Add the following code to test_views.py:
    def test_get_token_authorization_code_wrong_user(self):
        """
        Request an access token using Authorization Code Flow
        """
        Application.objects.create(
            client_id='user_app_id',
            client_secret='user_app_secret',
            client_type=Application.CLIENT_CONFIDENTIAL,
            authorization_grant_type=Application.GRANT_AUTHORIZATION_CODE,
            name='user app',
            skip_authorization=True,
            redirect_uris='http://localhost:8002/callback',
        )

        self.client.force_login(self.test_user)

        response = self.client.get(reverse("oauth2_provider_jwt:authorize") +
                                   '?response_type=code&client_id=user_app_id')

        self.assertEqual(302, response.status_code)
        match = re.match(r'http://localhost:8002/callback\?code=(\w+)',
                         response.url)
        self.assertIsNotNone(match)
        code = match.group(1)

         # To simulate that the token call is normally made unauthenticated
        self.client.logout()
        data = {
            'client_id': 'user_app_id',
            'client_secret': 'user_app_secret',
            'code': code,
            'grant_type': 'authorization_code',
            'redirect_uri': 'http://localhost:8002/callback',
            'username': 'some_fake_user',  # Pass in wrong user
        }
        response = self.client.post(reverse("oauth2_provider_jwt:token"), data)
        self.assertNotEqual(200, response.status_code)

Near the end, we pass in the wrong username. This is bad because this username is baked into the JWT payload.

See https://github.com/Humanitec/django-oauth-toolkit-jwt/pull/15

Hi John. Thanks a lot for the reporting. I will be looking to it this week as soon as I can.


Displaying results after route is calculated

After the route is calculated, we could show to the user the Distance, Duration, and Battery Consumption of the trip.
Firstly we can work with a mock version with hardcoded values, so later we can really calculate this information.

Generally a good idea, but in my opinion a hardcoded gui mock does not make sense.. For now we don't know if we ever get this data from our backend (currently not in the planning).. so this gui feature is not needed for now. sry for the delay in my response.

I was thinking that as a first version the front-end could calculate the distance through the route by using the haversine formula between the coordinates. Or maybe adding this feature in the rt-library (the problem is that the final solution wouldn't use it anyway)
The duration could then be roughly estimated  by the use of the speed limit of the coordinates found. In OMS we have http://wiki.openstreetmap.org/wiki/Key:maxspeed and http://wiki.openstreetmap.org/wiki/Speed_limits.
Regarding the battery consumption there is still no purpose for implementation for now.


Lion 8 bit

per advice from Tim, the plan will be to closely follow the 1-state logic of RMSProp and conditionally branch out for the lion logic
status - Lion8bit is successfully training a small autoregressive transformer for character level enwik8 on my machine
some remaining todos before merging

[ ] beta2 is used to exponentially smooth the momentum, and 1state optimizer logic doesn't always have beta2, so using eps to store the lion beta2 instead as workaround. need to figure out if there's a cleaner solution
[ ] the other 1state optimizers exponentially smooth the momentum or square of gradient before the update, but in lion, it is smoothed once by beta1 for the update, and then beta2 for momentum of next time step. pseudocode in the picture above for clarity. in the kernel, it is hard coded so that the state is updated first before the parameters, but here it needs to be the other way around. or perhaps update state, update parameters, update state again, if somehow the first state update is necessary (for blockwise version)
[ ] unsure about this commit
[ ] see if CUDA has some fast way of doing torch.sign logic, which goes < 0 is -1, > 0 is 1, and == 0 is 0. currently using a solution i found on stackoverflow
[ ] figure out if this repository is using decoupled weight decay and add it if it does not. lion requires this

autoregressive enwik8 with lion8bit converged successfully, even though there's some inaccuracies in kernel.cu

weight decay looks good

resolves https://github.com/TimDettmers/bitsandbytes/issues/150

@christallire welcome you to build from source and import the Lion8bit and give it a try
seems to be working great, thanks to Tim's surrounding scaffold

ok, will let this PR sit for a while to gather feedback. probably will revisit it at end of this month and see if we can get it merged

i think there may still be an issue with the blockwise version, where the momentum update with beta2 is occuring before the actual parameter updates

@TimDettmers thank you Tim for the feedback! :pray: will address everything you brought up and poke you when it is ready later this week

Thank you, this looks good to me. The issue with the test is expected. The error from Lion is expected to be higher at times due to its noisy update. I will merge and will have a look at the test. This is an excellent PR, thank you for all the work. I think it will be invaluable to the community!

@TimDettmers oh hey Tim! glad to see this merged
thank you for reviewing it and getting it out there!


Building on a Directory with Symlinks on Windows failing with TypeError

🐛 Bug Report
Prerequisites

[x] I'm using the latest version of Docusaurus.
[x] I have tried the npm run clear or yarn clear command.
[x] I have tried rm -rf node_modules yarn.lock package-lock.json and re-installing packages.
[x] I have tried creating a repro with https://new.docusaurus.io
[x] I have read the console error message carefully (if applicable)

Description
It seems that https://github.com/facebook/docusaurus/issues/3272 is occurring again on symlink directories in Windows, but with a more cryptic error.
For context, I have symlink ~/dev which links to /c/Users/tavomaciel/Documents/Visual Studio 2017/Projects/  (don't ask me why, historical reasons lol) where I create and manage my projects.
To my surprise building when my bash session is at any subdir below the symlink breaks completely. The devserver runs, and even serves the main page, but can't serve any of the subdocs: permaloading and no results. The console and the build all show the same error you can see below on the "Actual Behavior" section.
i.e. building at ~/dev/my-website breaks, but /c/Users/tavomaciel/Documents/Visual Studio 2017/Projects/my-website works just fine.
Have you read the Contributing Guidelines on issues?
Yes.
Steps to reproduce

Enter in a symlinked dir, run npm init docusaurus@latest my-website classic
cd my-website
Run npm run build, it should fail.
Run cd -P .. so you leave the directory my-website but follow the symlink to the physical location
cd my-website
Run npm run clear; npm run build, it should succeed.

Expected behavior
Running npm run build from a symlink should act exact the same as running the command from the actual directory.
Actual behavior
npm run build fails if you're in a symlink in any level of your current pwd.
The errors read as following:
Docusaurus Node/SSR could not render static page with path "/docs/tutorial-extras/translate-your-site" because of following error:

TypeError: Cannot destructure property 'description' of 'metadata' as it is undefined.
    at DocItem (main:4915:219)
    at d (main:52023:498)
    at bb (main:52026:16)
    at a.b.render (main:52032:43)
    at a.b.read (main:52031:83)
    at Object.exports.renderToString (main:52042:138)
    at doRender (main:4462:356)
    at async serverEntry_render (main:4461:294)

With the same error message emitted at every markdown file.
Your environment

Bash environment: Git Bash/Cygwin
Docusaurus version used: 2.0.0-beta.6
Environment name and version (e.g. Chrome 78.0.3904.108, Node.js 10.17.0): NPM 6.14.15, Node.js v14.18.0
Operating system and version (e.g. Ubuntu 20.04.2 LTS): Windows 10 Pro Version 1903

I'm having the same issue on Mac. How did you Resolved it?

@softmarshmallow The new version after the fix worked fine for me.
But while that wasn't out, I just avoided working from the symlinked location.


Bugfix: Distorted Window on Startup

Description
There was a small issue with the Windows version (maybe in Linux too) where, when we initially started the application, it showed a broken window. This has now been fixed by setting the window's show property to false during initialization, so it gets directly loaded.
It fixes: #2712
Contribution Checklist:

[x] The pull request only addresses one issue or adds one feature.
[x] The pull request does not introduce any breaking changes
[x] I have added screenshots or gifs to help explain the change if applicable.
[x] I have read the contribution guidelines.
[x] Create an issue and link to the pull request.

Before:
https://github.com/user-attachments/assets/85225ab6-a132-469a-8ec9-6c9a8465162e
After:
https://github.com/user-attachments/assets/e9c63e1f-4a8a-48b3-91cc-6f3ceca28086

Merged! Thanks @Pragadesh-45 !


Adding Support for Radial Gradient with starting point same as the en…

…ding point. Also both drawing options are supported.
fixes #2196

Temp file being removed 😭

Ping!

@rajsesh-msft @MSFTFox ping!

please remove :)

In reply to: 287695855 [](ancestors = 287695855)

@rajsesh-msft  ping


Node doesn't start, even though there is sufficient xDAI

commit: 0703c82c02cd21e19e0f8248bdec40977564acdb
@agazso attempted to deploy a light client bee node, but was not able to deploy even though the Ethereum address of the node holds 0.01xDAI.
I suspect that this error is related to a wrong gas-estimation on the xDAI network.
You should be able to validate this by overriding the gas estimation via passing the --swap-deployment-gas-price string flag upon node startup. However, upon inspection of the code, it seems that this flag is not correctly used.  The flag is read at InitCheckBookService, settlement/swap/chequebook/init.go (ln 177), but in the function checkBalance, settlement/swap/chequebook/init.go, we estimate the gas price even though the user passed in the gas price (ln 51 and 56). This should be reconciled by validating if the gas price was already set and if this is the case, don't read the gas price anymore.
Another way to validate if the gas price is indeed wrongly estimated is by looking up the used gas price from the deployment transaction. Is this much more than the recommended gas price (see: https://www.xdaichain.com/for-developers/developer-resources/gas-price-oracle)? Is the gas price in line with the recommendations, but significantly less used than 0.01xDAI? If any of these is yes, then indeed the gas estimation is incorrect. I mean to remember that the gas price estimation on the xDAI network does not work the same as on the Ethereum main network, so the function estimateGas should then not be used if the user is connection to xDAI. Additionally, in line 56 from checkBalance, settlement/swap/chequebook/init.go, we multiply the gas price with 250000, this was probably done once as a quick fix for a too-low gas price or to get around the very busy Goerli network (during Rise of Bee), but it is probably not anymore needed now (you should validate this).

Related fix: https://github.com/ethersphere/bee/pull/2861

Closing this, because the description of the issue describes two issues and the issue mentioned in the title is fixed by #2861.
Opened another issue for the incorrect calculation when overriding gas estimation here: #2991


Semantic View

Something like :

it is invaluable when looking at a new source code :rose:

Released with 0.0.61 :rose:

Docs : https://basarat.gitbooks.io/alm/content/features/semantic-view.html


using TLS for microstask

using TLS for microstack as cloud, it could not be disabled 1

i've never deployed a microstack cloud before. I'm not sure who to touch base with on this PR

@addyess  here you can see an example of how it works. The functional tests are not working, but environment is successfully created.

@neoaggelos do you see anything here?

@rgildein Would you still like this merged?  Seems like it is pretty out of date but maybe it'd still be useful somewhere?

@rgildein Would you still like this merged? Seems like it is pretty out of date but maybe it'd still be useful somewhere?

Hi, yes and in the end we used Charmed OpenStack instead. I'll take a look at this later and let you know.

This is not needed anymore and I think it would be better to wait for Sunbeam.


How to run your code?

Brief the steps please

Refer this article<EMAIL_ADDRESS>

Brother, bada complex project h


[BUG] Mint UI logo missing

Describe the bug
Mint UI on the Vue Libraries is missing a logo: https://vue.framework.dev/categories/libraries

Use the logo from their website: https://mint-ui.github.io/#!/en

@dustinsgoodman I would like to work on this issue.

@dustinsgoodman done!


Issue in the footer

It has multiple github icon rendering on github.
also it has extra space below footer
assign me this

/assign


Not working on iOS

Description
The latest code is not working on iOS. Tested on the following devices:

iPhone 8 - iOS 15.2
iPhone Xs Max - iOS 15.2

Steps to check or reproduce

Open the site https://naver.github.io/egjs-view360/examples/panoviewer/etc/videojs.html on an iPhone running the latest version of iOS (v15)
Accept the motion and control request
The video player is stuck with the 360 icon and the video does not start

Hello @juancarlosjr97!
I've tested it on my iPadOS 15.2 & some other environments(Windows, Android) and looks like it works fine.
Can you tell me which browser did you tested? I want to know whether this is an iOS-specific issue :)

Sure :)
I have tested on:

iPhone 8 - iOS 15.2 - Safari, Chrome and Firefox
iPhone Xs Max - iOS 15.2 - Safari (I do not have access to it right now)

Also managed to reproduce the error using my mac

Macbook Air - macOS Monterrey - Google Chrome (Dev Tools - Selecting iOS Device emulator) - Version 96.0.4664.110 (Official Build) (arm64) - iPhone 6/7/8 Plus DevTools Emulator with Device Mode

Macbook Air - macOS Monterrey - Google Chrome (Dev Tools - Selecting iOS Device emulator) - Version 96.0.4664.110 (Official Build) (arm64) - iPad Pro DevTools Emulator with Device Mode

Xcode Emulator - iOS 15.1 - iPhone X - Safari

I have tested on the browser selecting other devices such as Android - Pixel 2 XL and Moto G4 and appears to be working fine, and mainly is an iOS issue.
Thank you for checking @WoodNeck!

@juancarlosjr97
Thanks for the detailed response!
Fortunately, I can test some of them myself. I'll check the cause asap :)

Well, the fix was super simple.

https://github.com/naver/egjs-view360/pull/379

Looks like videojs manipulates the video element on initialization, and that was the cause.

YEAH! Awesome @WoodNeck :)


[CHALLENGE SUBMISSION] 19

Please provide the following information for your submission:
What is your name? (First, Last)
Marcus Turewicz
Where is your GitHub Repo ?(With your challenge solution)
https://github.com/marcusturewicz/25-days-of-serverless-challenge/tree/master/Day-19
What Challenge is this for? (Challenge number between 1 and 25)
19
(Optional) Anything else we should know? e.g., language used, location, blog post?
C# Azure Functions with Durable Entities

From all of us on the Cloud Advocacy team at Microsoft, thank you for creating this issue!
Have a Happy Holiday season!
Feel free to share your solution on Twitter with the tag #25DaysOfServerless


Napari crashes when add_image() called with negative z-axis translation and nD data

🐛 Bug Report
I am working with nD microscopy data which I use Napari to display. Often my data has up to 9-dimensions for e.g. z-stacking, xy-positions, illumination patterns, time-series, etc. When I want to display data acquired using different z-positions, I need use the translate argument to align these in napari. I recently created a Python 3.12 environment and upgraded to Napari 0.5.3, and my previous display code is no longer working. I created a minimal example to reproduce the problem I am seeing.
💡 Steps to Reproduce
import numpy as np
import napari

m = np.random.rand(1, 3, 10, 512, 512)

v = napari.Viewer()
v.add_image(m,
            translate=(-1.0, 0., 0.),
            )
v.show(block=True)

Traceback (most recent call last):
  File "/home/ptbrown/.config/JetBrains/PyCharmCE2024.1/scratches/scratch_14.py", line 7, in <module>
    v.add_image(m,
  File "/home/ptbrown/mambaforge/envs/mcsim312/lib/python3.12/site-packages/napari/utils/migrations.py", line 101, in _update_from_dict
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/ptbrown/mambaforge/envs/mcsim312/lib/python3.12/site-packages/napari/components/viewer_model.py", line 990, in add_image
    self.layers.append(layer)
  File "<frozen _collections_abc>", line 1130, in append
  File "/home/ptbrown/mambaforge/envs/mcsim312/lib/python3.12/site-packages/napari/components/layerlist.py", line 188, in insert
    super().insert(index, new_layer)
  File "/home/ptbrown/mambaforge/envs/mcsim312/lib/python3.12/site-packages/napari/utils/events/containers/_selectable_list.py", line 68, in insert
    super().insert(index, value)
  File "/home/ptbrown/mambaforge/envs/mcsim312/lib/python3.12/site-packages/napari/utils/events/containers/_evented_list.py", line 202, in insert
    self.events.inserted(index=index, value=value)
  File "/home/ptbrown/mambaforge/envs/mcsim312/lib/python3.12/site-packages/napari/utils/events/event.py", line 764, in __call__
    self._invoke_callback(cb, event if pass_event else None)
  File "/home/ptbrown/mambaforge/envs/mcsim312/lib/python3.12/site-packages/napari/utils/events/event.py", line 802, in _invoke_callback
    _handle_exception(
  File "/home/ptbrown/mambaforge/envs/mcsim312/lib/python3.12/site-packages/napari/utils/events/event.py", line 789, in _invoke_callback
    cb(event)
  File "/home/ptbrown/mambaforge/envs/mcsim312/lib/python3.12/site-packages/napari/components/viewer_model.py", line 655, in _on_add_layer
    self._on_layers_change()
  File "/home/ptbrown/mambaforge/envs/mcsim312/lib/python3.12/site-packages/napari/components/viewer_model.py", line 517, in _on_layers_change
    self.dims.range = ranges
    ^^^^^^^^^^^^^^^
  File "/home/ptbrown/mambaforge/envs/mcsim312/lib/python3.12/site-packages/napari/utils/events/evented_model.py", line 307, in __setattr__
    with ComparisonDelayer(self):
  File "/home/ptbrown/mambaforge/envs/mcsim312/lib/python3.12/site-packages/napari/utils/events/evented_model.py", line 520, in __exit__
    self._target._check_if_values_changed_and_emit_if_needed()
  File "/home/ptbrown/mambaforge/envs/mcsim312/lib/python3.12/site-packages/napari/utils/events/evented_model.py", line 345, in _check_if_values_changed_and_emit_if_needed
    getattr(self.events, name)(value=new_value)
  File "/home/ptbrown/mambaforge/envs/mcsim312/lib/python3.12/site-packages/napari/utils/events/event.py", line 764, in __call__
    self._invoke_callback(cb, event if pass_event else None)
  File "/home/ptbrown/mambaforge/envs/mcsim312/lib/python3.12/site-packages/napari/utils/events/event.py", line 802, in _invoke_callback
    _handle_exception(
  File "/home/ptbrown/mambaforge/envs/mcsim312/lib/python3.12/site-packages/napari/utils/events/event.py", line 791, in _invoke_callback
    cb()
  File "/home/ptbrown/mambaforge/envs/mcsim312/lib/python3.12/site-packages/napari/components/viewer_model.py", line 475, in _update_layers
    position[ind] = self.dims.point[ind]
    ~~~~~~~~^^^^^
IndexError: list assignment index out of range
WARNING: QThread: Destroyed while thread is still running

Process finished with exit code 134 (interrupted by signal 6:SIGABRT)

💡 Expected Behavior
Napari should display the nD image without crashing
🌎 Environment
napari: 0.5.3
Platform: Linux-5.15.0-113-generic-x86_64-with-glibc2.31
System: Ubuntu 20.04.6 LTS
Python: 3.12.5 | packaged by conda-forge | (main, Aug 8 2024, 18:36:51) [GCC 12.4.0]
Qt: 5.15.8
PyQt5: 5.15.9
NumPy: 2.0.2
SciPy: 1.14.1
Dask: 2024.8.1
VisPy: 0.14.3
magicgui: 0.8.3
superqt: 0.6.7
in-n-out: 0.2.1
app-model: 0.2.8
npe2: 0.7.7
OpenGL:

GL version: 4.6.0 NVIDIA 535.183.01
MAX_TEXTURE_SIZE: 32768
GL_MAX_3D_TEXTURE_SIZE: 16384

Screens:

screen 1: resolution 1600x900, scale 1.0

Optional:

numba: 0.60.0
triangle not installed
napari-plugin-manager: 0.1.0

💡 Additional Context
The crash occurs in viewer_model.py in the function _update_layers(). The problem seems to be that self.cursor_position is a 2D array, but it should not be. I was stepping through with my debugger, and it looks like what happens is _on_layers_changed gets called and should update the dimensionality of self.cursor_position, but after it resets the ranges using self.dims.range = ranges in line 517 this emits an event, and _update_layers() gets called before _on_layers_changed() is finished

Thanks for the report @ptbrown1729! It looks like this is a regression in (at least) v0.5.0, because I still get the error in 0.5.0.

Culprit from git bisect is #5522. Which ironically should have made things like arbitrary positions better. That is unfortunately a really big PR so it's not really going to be a great clue in terms of a fix — your own investigation will be more useful @ptbrown1729! 😂 🙏 But I don't a-priori know how to make the fix. But we'll make it a priority for 0.5.4.


compilation fix

Codecov Report

:exclamation: No coverage uploaded for pull request base (release-2.5.0@e8607dd). Click here to learn what that means.
The diff coverage is n/a.

@@               Coverage Diff                @@
##             release-2.5.0     #768   +/-   ##
================================================
  Coverage                 ?   32.21%
  Complexity               ?     1234
================================================
  Files                    ?      169
  Lines                    ?    15075
  Branches                 ?     2389
================================================
  Hits                     ?     4856
  Misses                   ?     9488
  Partials                 ?      731

Continue to review full report at Codecov.

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


doc: fix some nits in code examples from api.md

Replace let with const when appropriate.
Unify spacing.
Fix possible copy-paste artifacts.
Eliminate one unhandled promise rejection ('Target closed').

Thanks!


typing does not display well after DieParameters class

After #67 the typing in the docs does not display well for functions that have a DieParameters in its arguments.


Only tracking traffic, blocking on reporting of traffic, summarizing …

…traffic on the fly, fixed race condition in test
cc: @uaalto @myleshorton

I took out latency reporting because we weren't actually measuring latency in here.
I took out error reporting since we'll be doing that with borda anyway and this simplified things
I'm now summarizing data on the fly to save memory.  That did require me to drop the 95th percentile stat, but we aren't using that right now anyway.  In addition to saving memory, this simplified the code I think.
There was a race condition in the test related to printing the TrafficTracker.  I fixed that by just taking out the String() method, which seemed unnecessary.
I added a maxBufferDepth setting to limit how many device ID's we're willing to buffer before they get reported.

In terms of what we're tracking, the only thing that functionally changed is that if our reporters start taking longer than 1 minute to report, our run loop will block.  That should address the issue of piling up reporters when Redis is timing out, for example.  It does also mean that our aggregated statistics will include more than 1 minute of data, but for what we're tracking right (just totals over time) that doesn't matter.

It looks really good to me. Good catch @oxtoacart ! I didn't even recall that measured spawn go routine each time.

@fffw Thanks for the review!


Update redame

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

Thanks @go-dima, I'll review the changes right away.


creating keys for client is unnecessarily tied to copy_admin_key

In roles/ceph-client/tasks/create_users_keys.yml,  import_key parameter for ceph_key is determined by copy_admin_key. So, if copy_admin_key is false, the generated keys will not actually be registered to the ceph cluster, and vice versa. But that is odd since there is no relation between copying an admin key to hosts in the cluster and to registering client keys to the cluster. import_key should be always true, or a new variable should be introduced for import_key.
- name: create cephx key(s)
  ceph_key:
    state: present
    name: "{{ item.name }}"
    caps: "{{ item.caps }}"
    secret: "{{ item.key | default('') }}"
    containerized: "{{ docker_exec_cmd | default('') }}"
    cluster: "{{ cluster }}"
    dest: "{{ ceph_conf_key_directory }}"
    import_key: "{{ copy_admin_key }}"    # <== THIS
    mode: "{{ item.mode|default(omit) }}"
  with_items: "{{ keys }}"
  delegate_to: "{{ delegated_node }}"
  when:
    - cephx
    - keys | length > 0
    - inventory_hostname == groups.get(client_group_name) | first

@no2a since you need the admin key on the node from which you are supposed to import your created keys, linking import_key to copy_admin_key is a way to ensure you will be able to do it.
(delegated_node is not always a mon node.)

In my case, delegated_node is a mon node and I don't want to expose an admin key to client nodes (I believe it is a not-so-uncommon situation). But ceph-ansible cannot import client keys without unnecessarily storing the admin key on client hosts.
Although I can set copy_admin_key to false and import the generated keys by hand of cource, it would be nice if I could do it by just running ceph-ansible.

So, is there something wrong with setting import_keys to true always? If a deployer sets copy_admin_key to false and delegated_node has no admin key, then the task fails. It is a natural behavior. The deployer can recognize that he should have copied the admin key in his deployment.

@no2a I get what you are reporting here.
I don't see why it should be wrong with always setting import_keys to true since it's already its default value.
In any case I think it's worth to have a dedicated variable for this, I'll send a patch.
Thanks

@no2a Actually I think there is already a variable for this, it looks more like something I've missed when I've written this part of the code:
https://github.com/ceph/ceph-ansible/blob/master/roles/ceph-client/tasks/create_users_keys.yml#L36
if there is at least 1 mon we set this fact to True, otherwise, we default to copy_admin_key


refactor: Assert

@shubham-cmyk i'm not convinced by the approach, maybe we should let handlers decide if the want to override the last errors or not 🤔

okay

Closing, needs significant work


Sunburst Chart - Size makes no difference

Hi,
I'm using a Sunburst chart however find that size is not making any difference.
To help describe this I've made this plunkr:
https://plnkr.co/edit/MdKPwDRr7UWESk46dTzH?p=preview
So if you look at the chart's last ring all are of equal even though I have different values in the size
"name": "Cluster1",
     "children": [
          {"name": "AgglomerativeCluster", "size": 10},
          {"name": "CommunityStructure", "size": 3},
          {"name": "HierarchicalCluster", "size": 1},
          {"name": "MergeEdge", "size": 1}
     ]

I want that size to effect to make a partiucalr segment bigger or smaller.

add mode: 'size' option.

Awesome! Thank you.

And for my future knowledge where can i see what attributes exists and what each do as i couldnt find this option?

There is nvd3-community docs, and also you can look through an option tree on Live Edit page in extended mode.


Documentation: Best practice on how to set component variables like showReadingTime

This borders on a question, but I'm still leaving it here for others to find, because I could imagine it is something more people bump into when trying to setup quartz for the first time:
What is the recommended way to override variables like:
BreadcrumbOptions
spacerSymbol: "›"

or
ContentMetaOptions
showReadingTime: false,

There is a quite extensive documentation on how to create own components, but it isn't obvious to me what the best way/hook to override the variables of core components is.

Short answer: in quartz.config.ts.
Long answer:
You can pass options to plugins in quartz.config.ts. See below for the default options:
  plugins: {
    transformers: [
      Plugin.FrontMatter(),
      Plugin.CreatedModifiedDate({
        priority: ["frontmatter", "filesystem"],
      }),
      Plugin.SyntaxHighlighting({
        theme: {
          light: "github-light",
          dark: "github-dark",
        },
        keepBackground: false,
      }),
      Plugin.ObsidianFlavoredMarkdown({ enableInHtmlEmbed: false }),
      Plugin.GitHubFlavoredMarkdown(),
      Plugin.TableOfContents(),
      Plugin.CrawlLinks({ markdownLinkResolution: "shortest" }),
      Plugin.Description(),
      Plugin.Latex({ renderEngine: "katex" }),
    ],
    filters: [Plugin.RemoveDrafts()],
    emitters: [
      Plugin.AliasRedirects(),
      Plugin.ComponentResources(),
      Plugin.ContentPage(),
      Plugin.FolderPage(),
      Plugin.TagPage(),
      Plugin.ContentIndex({
        enableSiteMap: true,
        enableRSS: true,
      }),
      Plugin.Assets(),
      Plugin.Static(),
      Plugin.NotFoundPage(),
    ],
  },

Let's zoom in on the Obsidian Flavored Markdown plugin. (ofm.ts)
Plugin.ObsidianFlavoredMarkdown({ enableInHtmlEmbed: false }),

The plugin has the following options near the top of the file.
export interface Options {
  comments: boolean
  highlight: boolean
  wikilinks: boolean
  callouts: boolean
  mermaid: boolean
  parseTags: boolean
  parseArrows: boolean
  parseBlockReferences: boolean
  enableInHtmlEmbed: boolean
  enableYouTubeEmbed: boolean
  enableVideoEmbed: boolean
  enableCheckbox: boolean
}

As well as the default options.
const defaultOptions: Options = {
  comments: true,
  highlight: true,
  wikilinks: true,
  callouts: true,
  mermaid: true,
  parseTags: true,
  parseArrows: true,
  parseBlockReferences: true,
  enableInHtmlEmbed: false,
  enableYouTubeEmbed: true,
  enableVideoEmbed: true,
  enableCheckbox: false,
}

You can pass options to the specific plugin by adding it to the quartz.config.ts file.

As for Components, it works very similar, but instead are placed in the quartz.layout.ts file.
For example, the Footer component accepts options for the links in the footer.
  footer: Component.Footer({
    links: {
      GitHub: "https://github.com/jackyzha0/quartz",
      "Discord Community": "https://discord.gg/cRFFHYye7t",
    },
  }),

Which are passed to the Footer.tsx:
interface Options {
  links: Record<string, string>
}

I hope that helps.

Thank you, yes. For anyone finding this:
Before
    Component.Breadcrumbs(),

After
    Component.Breadcrumbs({
      spacerSymbol: "x",
    }),


app: no shadows while switching scenes

While switching scenes, Object shadows don't get loaded in any of the scenes. Reloading the scene loads the shadows and they appear fine.
Steps to reproduce:
Go to street scene
Switch to any of the scenes with shadows(prototype,grid,shadows)
reload the scene by refreshing the page.
https://user-images.githubusercontent.com/35926530/145690752-a1579742-4eb8-45f1-9b92-14e1359c2bf1.mp4
no object shadows After switching scene from street to shadows:

Shadows appear after reloading the page:

I don't think this is a bug. Shadows are part of the scene config. While the scene is changing there is no defined shadows because nothing is loaded.
I think this can be cleaned up by having a better transition between scenes, and adding our zone loading interstitials.


Uncorrect docs

Library

[ ]<EMAIL_ADDRESS>or<EMAIL_ADDRESS>[ x]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>
Documentation location

[ ] docs.microsoft.com
[ ] MSAL.js Github Wiki
[ x] README file
[ ] Other (please fill in)
[ ] Documentation does not exist

Description
The steps to provide the authentication are not completed, once I make a loginRedirect and come back to my app I've no logged users with getAllAccounts, but I'm still in_progress/pending action, I have to send acces_token to have logged my account.

@marcosilvestroni Can you please clarify which specific doc you are looking at?

@marcosilvestroni Can you please clarify which specific doc you are looking at?


Add snap to installed packages

I am interested in including snap in cflinuxfs4 because I want to install the chromium-browser package in my app.
With cflinuxfs3 I currently do this with the apt_buildpack.
But for Ubuntu 22 there is no PPA that I can use.
If I use the apt_buildpack as before the chromium-browser is not installed correctly.
If I want to run it I get an error message that snap is required.
Is there anything against including snap as a package?

What's the error message you encounter when you try to use the apt buildpack?

Hi,
at the time of installation we do not receive an error message.
When we want to start the application we get the following message.

./chromium-browser
Command './chromium-browser' requires the chromium snap to be installed.
Please install it with:
snap install chromium

Ah I see. In this case I don't think it makes sense to install snap onto the stack because even if it's installed, you'll still need a way to run snap install chromium which doesn't exist as far as I know. In general I think I'm against adding it to the stack because it leads to a confusing use case for users who then don't have a clear way to leverage snap

You could maybe consider making a custom stack - or looking at a different PPA (https://launchpad.net/~phd/+archive/ubuntu/chromium-browser mentions https://freeshell.de/phd/chromium).

Thanks for your tip and your answer.
I think the ticket can be closed.
Merry Christmas :christmas_tree:

You too! ⭐


[PE-D][Tester B] AnUdder details varies from  image shown in the User Guide

As can be seen from above, there is no uniformity in the spacing that is given and there are random spaces given between the : and the details of the person.
This contrasts with the image that is shown in the User Guide below:

Hence, I think the best modification for this is either to update the images in the User Guide such that they match your current application. (Or hopefully you can modify the UI to have uniform spacing)

Labels: type.DocumentationBug severity.VeryLow
original: LinkesV/ped#1

add this to planned enhancement to accommodate for Mac styling issues


Getting a list of everyone in a room?

I'm wondering if there is a common solution to list people in a room when using multi-instance setup?
I have the impression redis only knows how many servers are subscribed to a channel but not how many users?
thank you

just realised there is a pull request for that
https://github.com/Automattic/socket.io-redis/pull/15


where do I get values for ida:AadInstance and

I am new to this, can you tell me how to set values for ida:AadInstance and api:ApiIdentifier in web.config?

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

ID: 906907ec-cbe2-59b1-a84e-ce1b1343756f
Version Independent ID: f498962c-f738-ccd8-a619-de854fac37da
Content: Tutorial - Enable authentication in a web application - Azure Active Directory B2C
Content Source: articles/active-directory-b2c/active-directory-b2c-tutorials-web-app.md
Service: active-directory
Sub-service: b2c
GitHub Login: @mmacy
Microsoft Alias: marsma

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

ida:AADInstance: This is the base URL of the authorization server. This should be https://.b2clogin.com/{0}/{1}/v2.0/.well-known/openid-configuration
ApiIdentifier should be https://.onmicrosoft.com/api/
Source: https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-tutorials-web-api?tabs=app-reg-preview

We will now proceed to close this thread. If you have further questions feel free to tag me or @mmacy in the comments and we will gladly continue the discussion.


Start without forking

Hi, is it possible to start pigpiod without forking a child process? That makes it difficult to run inside a Docker container because the parent process exits right away so the container stops.

I don't know.
This is not an area I know anything about.  I just copied what appeared to be standard daemon launching code at the time I wrote the daemon.
Does anyone know what current best practice is?

@jdiamond I wonder if https://github.com/Yelp/dumb-init (or something like it) would help with pigpio as-is?

+1 on dumb-init

dumb-init would be great, but it won't work with pigpiod because it forks. As soon as the parent pigpiod process exits, dumb-init exits. The child process is left running.
I have pigpiod running in a container using systemd. It has a Type=forking option for dealing with daemons like this, but having systemd running in a container feels so "heavy". I'd much rather use something lightweight like dumb-init. Especially on a Pi.
I think this is a great list of best practices for writing daemons:
https://web.archive.org/web/20160304120912/http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/unix-daemon-design-mistakes-to-avoid.html
It's not specific to Docker, but it explains why forking is problematic.
If I'm feeling adventurous, I may try to add an option for this.

Frankly the unix daemon design mistakes to avoid article went over my head.
pigpiod my have many socket connections in use.  I'm not sure how that relates to using a helper process and just using stdin and stdout.  That sounds like only one connection is allowed.

A useful Q&A: Why do daemons fork is on Stack Exchange.
it is so that the daemon IS completely independent of the parent that started it (otherwise it perhaps  isn't a daemon?) and it ought to do it twice so it isn't a "process leader" :confused: - though I think I need to read a bit more deeply on the significance of that...

I only meant to reference the first section in that link. I don't believe the section on TCP/IP is relevant to pigpiod.
I submitted a PR for an option to do this. It's not much more than an if statement around the code that does the forking in main().
Current users shouldn't be affected and shouldn't have to learn anything new because the default usage doesn't change. Run pigpiod and it forks so you get your shell back, but you have to use kill to terminate it.
Run pigpiod -g and it stays in the foreground so you can just use Ctrl+C to terminate it, but you lose the usage of your shell while it's running.
When run in a container with -g, it will be PID 1 and will be the only process Docker has to monitor. Tiny init systems like dumb-init should also be able to monitor it.
The Raspbian package could also use this to avoid needing to set Type=forking. The default behavior of systemd is to assume services don't fork and it's how the systemd man pages recommend writing service files, if possible.


Various improvements in CLA Link admin

Support scrolling for suggestions #4
Add "Loading..." indicator for repositories #5
Remove bootstrap-tokenfield #3

Awesome! Thanks for the contributions!


[Bug report] Duplicate node modules getting bundled

✅ Checklist

[X] I am using the latest version
[X] I have searched FAQ

📄 System Info
System:
  OS: Windows 10 10.0.22621
  CPU: (12) x64 AMD Ryzen 5 3600 6-Core Processor
  Memory: 17.64 GB / 31.93 GB
Binaries:
  Node: 18.14.0 - ~\AppData\Local\Volta\tools\image\node\18.14.0\node.EXE
  Yarn: 1.22.18 - ~\AppData\Local\Volta\tools\image\yarn\1.22.18\bin\yarn.CMD
  npm: 9.3.1 - ~\AppData\Local\Volta\tools\image\node\18.14.0\npm.CMD
npmPackages:
  cz-git: workspace:* => 1.6.0
  czg: workspace:* => 1.6.0

🔎 Description
Concise Description
There are duplicate node modules in the monorepo, which get bundled twice on build.
Expected behavior
Each module should be bundled once.
Steps to reproduce

Clone and install the monorepo.

git clone https://github.com/Zhengqbbb/cz-git.git
cd cz-git
pnpm install

Tsup can generate a metafile for bundle analysis by adding --metafile as flag.

Open packages/cli/package.json and add --metafile to the build script.

"build": "pnpm clean && tsup --metafile"

Run pnpm build.
Goto Bundle Buddy, choose esbuild, click the button Upload assets ESBUILD.JSON and upload the metafile from packages/cli/lib/metafile-cjs.json.
Scroll down and click GO TO ANALYSIS.
You should see the duplicate modules in health check section.

Screenshots or Screen Recording

Possible solution
Use pnpm overrides in package.json to get rid of the duplicate modules:
"pnpm": {
  "overrides": {
    "chalk": "^5.2.0",
    "color-convert": "^2.0.1",
    "supports-color": "^9.3.1"
  },
}

I have tested this and the bundle-size is about 1kb less after and the duplicate modules are gone:

I was hoping this helps, but after build all tests fail, cause chalk and supports-color dropped cjs support.
I will test again with the last versions with cjs support. If I find another solution I will let you know.
UPDATE:
I tested again and with the following versions, the tests run successful (added to root package.json):
"pnpm": {
  "overrides": {
    "chalk": "4.1.2",
    "color-convert": "2.01",
    "supports-color": "8.1.1"
  },
}

🔗 Reproduction link / repo:
No response

I will create the PR, but before releasing we should test in detail if it doesn't break anything.

That's for sure
I will close If the 1KB brings uncertainty

I have released the next version 1.6.2-beta.1
Feel free to use it and let me know if there are any problems with it!

Awesome, thank you!


Bash lexer doesn't handle fine $(foo })

(Original issue 386 created by delroth on 2009-01-30T17:04:37+00:00)
The bash lexer sometimes colorates the closing bracket of a $( ... ) block as an operator instead of a keyword.
Easily reproduced with something like this :
{{{
$(awk {'print $1'})
}}}
Patch is attached.

(Original issue was assigned to thatch)
(Original issue 386 last updated on 2009-02-06T15:46:25+00:00)
(Issue automaticaly closed due to status in Bitbucket: resolved)

(Original comment by gbrandl on 2009-02-06T15:46:25+00:00)
And merged.

(Original comment by thatch on 2009-02-05T06:51:34+00:00)
Thanks, committed in [dddfcca5918f]


Added ipaas initial samples

Purpose

Added ipaas initial samples

Shall we include readme documents for these samples (using a separate PR is fine)?

Shall we include readme documents for these samples (using a separate PR is fine)?

Yes, that is the plan


feat: show a list of accounts and their balances before selecting an account

Description
closes #4757.
closes #4756.
This PR adds balance query capabilities to forc-deploy so that users can select the desired account to use before signing their transaction. Current output looks like:
Please provide the password of your encrypted wallet vault at "/Users/kayagokalp/.fuel/wallets/.wallet":

Account 0 -- fuel1x6pc0g9gwp2c2hzhejlw7l4guqd99732zt2wd68j2ukrdu59kv9qqz9h3k:
  Asset ID                                                           Amount
<PHONE_NUMBER>000000000000000000000000000000000000000000000000000000<PHONE_NUMBER>

Please provide the index of account to use for signing:0
Do you accept to sign this transaction with fuel1x6pc0g9gwp2c2hzhejlw7l4guqd99732zt2wd68j2ukrdu59kv9qqz9h3k? [y/N]: y

Contract deploy_test_integration Deployed!

Network: http://<IP_ADDRESS>:4000
Contract ID: 0x73ea64a310b6fc2c9e6674a49f5515f01950d97cc845cb4149ececea6cbf4060
Deployed in block 0x45ee78fed1083c7734246cb93258dcdc865fc9bc13667b89088aeb43037

Also now forc-deploy throws an error for empty accounts:
Please provide the password of your encrypted wallet vault at "/Users/kayagokalp/.fuel/wallets/.wallet":
Error: Your wallet does not have any funds to pay for the deployment transaction.
If you are deploying to a testnet consider using the faucet.
If you are deploying to a local node, consider providing a chainConfig which funds your account.

Once we integrate a nice TUI selection library the output could be more interactive with up and down keys etc.
Checklist

[ ] I have linked to any relevant issues.
[ ] I have commented my code, particularly in hard-to-understand areas.
[ ] I have updated the documentation where relevant (API docs, the reference, and the Sway book).
[ ] I have added tests that prove my fix is effective or that my feature works.
[ ] I have added (or requested a maintainer to add) the necessary Breaking* or New Feature labels where relevant.
[ ] I have done my best to ensure that my PR adheres to the Fuel Labs Code Review Standards.
[ ] I have requested a review from the relevant team or maintainers.

Blocked by #4718

I am not sure what is causing it but mdbook documentor starting throwing issues while compiling with these changes and changes here is totally independent from each other but to make the compiler happy i am fixing it with this PR as well.

Looks good, just left a comment to open an issue for the todo if one hasn't been opened already.

Forgot to reply! sorry for that. These two are already open:

#4862
#4861

Again this is not something I can do here with this PR as this is how forc-wallet prints it. If you feel like we should change let's change it there.

It would be cleaner to have the alignment as Sophie mentioned. Would you mind opening an issue for this in forc-wallet so we can add this in a future PR?

Opened this one 🙌 will tackle it right away once we clear urgent stuff cc @sdankel @JoshuaBatty


Remove dependency on the mongo cli

We have a hard-coded list of about 10 commands that the user can run without the cli installed (because we use the mongo npm package). There's no reason we can't extend that to almost all commands

Check out telemetry to see which are most common and requiring the shell.

Need to have a discussion.

This issue has become stale and is at risk of being closed. The community has 60 days to upvote the issue. If it receives 5 upvotes we will keep it open and take another look. If not, we will close it. To learn more about how we handle issues, please see our documentation.
Happy Coding!

:slightly_frowning_face: In the last 60 days, this issue has received less than 5 community upvotes and we closed it. Still a big Thank You to you for taking the time to create it! To learn more about how we handle issues, please see our documentation.
Happy Coding!


Integrate Mediapipe in the repository

Currently our project layout doesn't include the Mediapipe native library which we need to build our own so we probably need to reintegrate this properly later on.

Resolved per #6


fix: cancel mem-reuse of tail buf in ts-store

fix: cancel mem-reuse of tail buf in ts-store

waiting for #774


VIA changes for 7.1.x

This implements the VIA protocol stack support currently in master along with the necessary infrastructure changes. It is split in to 3 commits

Add MemView / StringView.
Change the infrastructure of the protocol stack logic to use StringView.
Changes the VIA header logic and add documentation.

The VIA tests unfortunately were not backported because they depend on significant changes to the testing infrastructure.

[approve ci autest]

[approve ci autest]

[approve ci autest]

As unfortunate as it is, we have to fix this one way or another, because the changes made to 7.0.0 breaks the RFC for the Via header (which fucked us up).


[Feature Request] AI Image Filtering

Prerequisites

[x] Did you read FAQ section in readme.md?
[x] Did you test with the latest releases or commit ?
[x] Did you search for existing issues in Issues?

Description
[Description of the bug or feature]
I'd like to suggest adding filtering function for NovelAI (AI generated Images) just like R-18 Filtering.

AI Image filter on/off
Generate Folder name string just like %R-18%/

You can do this from the website settings.

I can remove AI Photo by Blacklist -> Yes
I'd like to have some features that can categorize AI images by tags or something

There is a flag in the json details for each individual images and search by tags. I think value = 1 (non-AI), and value = 2 (AI Generated)?

Here's some notes about the AI tags, and the "display fewer" toggle, which may be helpful for others confused about what it does. The Pixiv Help Center page for this setting is not helpful at all. From what I have found on some reddit threads, it does seem to aim for blocking all AI pictures, but uses the wording "fewer" as qualifier because it probably won't eliminate 100% of such pictures?
I've also read on reddit that it only blocks AI submissions on "main" pages (searches, recommended works, probably home page)—meaning that places like users' bookmarks will not be filtered. It may also only utilize a selection of the most popular AI tags, but this may be different with the "toggle" tag now (see below). So this may be important to people who download bookmarks a lot
For those making blacklists, or maybe programming such a list into the software somehow, here's the most popular AI-related tags (with current tag population):
#NovelAI (187.1k)
#AI (90.7k) WARNING see below
#NovelAIDiffusion (53.4k)
#AIイラスト (32.1k)
#StableDiffusion (29.3k)
#AI生成 (9.1k)
Note that the tag #AI can also return other unrelated tags which contain these letters...things like #CLIPSTUDIOPAINT, #SAI龍, #haikyuufanart, kaito, etc. It produces problems when trying to use boolean searches with a tag and another tag that is its subset (eg clipstudiopaint -ai), so in some functions pixiv obviously sees these as a single tag, even though #AI is a perfectly valid tag people can enter. I guess it should just be avoided, as it contains potentially thousands of false positives.
Then there is the general AI-generated "toggle" tag, at the beginning of the list on an image page, where R-18 and "Original" usually goe. But R-18 also functions as a normal tag (i.e. can be used in the search bar etc), albeit one with 6.7 million results! But typing AI-generated into the search only yields 1.2k results, which all contain the english tag #AI-generated. Images are sorted into this category if the artist selects the option when uploading, but since this option took a while to appear, I suspect(?) that the big tags above have been auto-sorted into this category, at least to some extent. I'm not sure if this is ongoing, or if marking as AI depends entirely upon the user upload option.

use blacklist tag feature then?


Last PostBuild action doesn't run

I have 2 PostBuild actions set up in my build config.
The first runs, the second does not.
If I duplicate the second action, it runs once per build (not twice)
It seems like it's consistently skipping the last build action. Can't tell why because I don't have the source code. Downloaded via the recommended repository via Unity Package Manager.
EDIT: actually It is not simply the last action that isn't running. I added an empty action and added it to the list, and now only actions 1 and 3 run. This is very strange

Hi @SlimeQ, thanks for the issue report! Does this happen with a fresh project and build config, or is it specific to your Unity project? If it's the latter, it could hint at some bad serialization in your build config which could be fixed by creating a new one and recreating your settings. You can use Assets > Create > SuperUnityBuild Settings to try this.
To check out the source code of an installed UPM package, you can expand the Packages folder (underneath Assets) in the Project browser and look for the directory corresponding to the package you're interested in (e.g. SuperUnityBuild). You can then double click on source files and inspect and debug them in your IDE as with any other script in your project.


Pull-to-refresh new videos

Is "pull to refresh" what you realy want ? I thought that was a mobile behaviour, not desktop...
for me a simple button somewhere would be fine

I'm still not sure on how to do that:

Pull-to-refresh by scrolling (not by clicking as if you were using a mobile device)

I like this
But it doesn't feel like classic desktop usage

A button

Where to place it, and how to name it?

button could go inside the future custom titlebar too, without label, just an icon (mooving while fetching )

One thing to consider is that older videos will be loaded by scrolling (down). So the user should not be disturbed by this behavior depending on how we implement that.


Allow trailing commas on same-line. Enforce await in async.

WISOTT
@MatthewHerbst and I discussed this, the comma-dangle thing we have decided is a matter of taste, I am voting for more leniency as the more common use-case is destructuring objects like
const { a, b, } = myObj;

Rather than needing new-lines to keep the comma-dangle contract in-tact
const {
  a,
  b,
} = myObj;

The async/await change is more nuanced. While both functions when run execute synchronously, as a developer I would expect a function using the async directive to actually be asynchronous, and therefore execute on a different call stack of the event loop. Enforcing this behaviour would make debugging easier for developers to understand, as well as ensure that synchronicity bugs are less prevalent because you cannot accidentally execute synchronous code before other synchronous code. The example is presented below:
Define some set of intentionally asynchronous methods
async function doFirstThing() { console.log('Start first thing') }

// note the await in `doSecondThing`
async function doSecondThing() { await console.log('Start second thing') }

and imagine having a function in which executes them all at the same time, followed by some other synchronous function.
function executeAllThings() {
  const promise1 = doFirstThing();
  const promise2 = doSecondThing();
  console.log('Started all async tasks');
}

Example 1
While there is no guarantees in the JavaScript interpreter to ensure that doFirstThing or doSecondThing execute later, since they are marked with async one would expect that they output in the following order on the call-stack e.g.
Call stack 1:
  - doFirstThing: enqueue an async action (inside it's function block), same as setTimeout(..., 0)
  - doSecondThing: enqueue an async action, same as doFirstThing
  - execute console.log('Started all async tasks');
Call stack 2:
  - execute doFirstThing function block
  - execute doSecondThing function block

Example 2
However, since doFirstThing does not use await the behaviour actually changes implicitly to
Call stack 1:
  - doFirstThing: no await, execute console.log('Start first thing');
  - doSecondThing: *with* await, enqueue function block as previous example
  - execute console.log('Started all async tasks');
Call stack 2:
  - execute doSecondThing

The second example it will not be obvious why the code executes this way when both functions are async. The proposed change will enforce all functions to use await to ensure they implicitly behave the same.
The outputs can be compared too for concrete execution comparison:
Without await enforced:                               With await enforced:
console.log('Start first thing')                    console.log('Started all async tasks')
console.log('Started all async tasks')          console.log('Started first thing')
console.log('Started second thing')             console.log('Started second thing')

The way to way to do it without writing setTimeout everywhere? Use await on any value assignment, as it works for any value type, not just thenable types.
async function doFirstThing() {
  await console.log('Start first thing');
}

or in a variable assignment of a non-async value, for example
async function doFirstThing() {
  const a = await 'a';
}

I also forgot to mention that in the comma-dangle change, we lose protection from accidental sparse array initialization like
const array = [1, ,];  //  [1, undefined]

But I do not think that this as useful as keeping comma-dangle contract for single and multiline.

cc @steverice FYI for the require-await change proposal

As discussed, I don't think this rule would actually prevent developers from making the mistake I am trying to prevent. Although I believe it would help for our internal web repository - I do no think our yield function runtimes behave the same across all of our platforms. I'm going to close this and probably open this change for repos that use the babel environment in which yield statements guarantee next tick semantics.
TL;DR - neither of us think it's a bad rule, but it would be more trouble than it's worth applying it globally. Perhaps to bring up again in the future, for now use in each project override as needed.


fix: update all OTel dependencies

Why

#467 updated just @opentelemetry/instrumentation-document-load leading to duplicated versions of @opentelemetry/instrumentation for all dependents
What

I just update all other @opentelemetry/* packages as well.
I really wish the OTel project would get off 0.x 😅
Links
N/A

Checklist

[ ] Tests added
[x] Changelog updated
[ ] Documentation updated

Hey @SimenB We released a new Faro version today.
Took a bit to release your contribution because we initially planned to add another feature but it takes a few more days to finish the docs. So we did a qol release today to not wait to long to get the deps upgrade out.
Thanks  again and cheers, till next time :)

Thanks!


Question: Clarification of the Request Life-cycle

@tonysurma @MisterJames @stevejgordon @dpaquette @OhMcGoo
Currently, the Request life-cycle has had some changes made to it as a result of the implementation of confirmation messages going out to requestor's, and those requestor's either confirming or canceling the request (the Hangfire jobs run those scheduled sends based on the request status of each request added to an itinerary).
I wanted to sum up a couple current functionality points here as well as lay out what I perceive to be one problem with the current life-cyle that is affected by the source of the request (UI vs. API/CSV)

I want to confirm that ALL requests added to an itinerary, regardless of the source of the request (UI/API/CSV) require the confirmation message to go out to each requestor to either confirm or cancel the request. Currently, this is how the system works, but I'm not too sure if we want to send the sms confirmation messages to requestor's that were added via the UI.

Regarding the request life cycle, this is where I think we have a glitch and need to make a decision:

request created -> Unassigned
assign request to itinerary via UI -> Assigned
when request is Assigned we publish RequestsAssignedToItinerary from AddRequestsToItineraryCommandHandler, which set the status to -> PendingConfirmation and then sends out sms confirmation messages

this is where the problem is:

when requestor confirms the request via sms the request status is set to -> Confirmed
BUT when request is PendingConfirmation on UI, you can move it immediately to Completed, skipping the Confirmed status.

If all requests that are added to an itinerary need to be Confirmed regardless of the source of the request, then the UI needs to be updated to not allow a request that is PendingConfirmation to be moved to Completed.
The UI should be updated to move a Confirmed request to Completed.
The request cannot be Confirmed until the requestor confirms the request via sms.

ping @tonysurma @MisterJames @stevejgordon @dpaquette @OhMcGoo...
can you please get back to me on the questions/problems I outlined above in the Request lifecycle as it pertains to sms messages to requestors as well as status lifecycle of a request?

ping @tonysurma @MisterJames @OhMcGoo...
still waiting to hear back about request life-cycle as it relates to sms confirmation messages being sent to requestors, regardless of the Request source...

@tonysurma please assign to me, and I will need to eventually discuss this with someone. Thanks!

I am working on getting you an answer.  @cecilia-donnelly

@tonysurma, yes to the above.
basically, two things:

I want to confirm (this is existing functionality) that all Requests (regardless or origin) will follow the same "life-cycle" that they do now. This involves a request being assigned to an Itinerary. Once the assignment happens, we send sms confirmation messages to those requestors to confirm or cancel the request (per your comment above "confirm that 12/17 will work for you for an install") regardless if the origin of the Request

I need feedback that my proposed fix for Requests originating from the UI is correct... that we do not allow a UI Request to move from PendingConfirmation to Completed. The Request first needs to move to Confirmed (via the requestor sms messaging us back confirming date of install, please see #1 above). The UI should be updated to only allow moving a Confirmed request to Completed.

For (1) - yes that is true.  Date scheduling is fully within the app and so is the confirmation regardless of source
For (2) I need to walk that through in my head.  But current thinking is that you should as an admin be able to move from pendingconfirm to confirmed if you get confirmation via another means from the requestor.  But not directly to completed

@tonysurma

For (2) I need to walk that through in my head. But current thinking is that you should as an admin be able to move from pendingconfirm to confirmed if you get confirmation via another means from the requestor. But not directly to completed

I believe my code already handles this. For each Hangfire job handler, I query Requests based on the request Id's that were initially added to the Itinerary. If any of those Request Id's do NOT have a status of PendingConfirmation, then they are not included in the outgoing confirmation sms messages...
so, in theory, a requestor could get the first sms confirmation message, never reply confirm/cancel back to us, but the Request on the UI could be moved from PendingConfirmation directly to Completed, and this would disclude them from the rest of the sms confirmation pipeline.
That being said, it sounds like we might be able to close this Issue without any type of impact to the code. As long as we're sure that we want to allow the UI to be able to override/circumvent the requestor needing to respond to AllReady to confirm or cancel their request.

agree @mgmccarthy closing per current codebase


try and ensure 100% success rate even on crappy networks

today while testing duplex http at tivoli gardens in copenhagen we had the follow success/fails when doing a dat pull from an ubuntu server to a client tethered to either a slow t-mobile international roaming connection or a fast danish roaming connection:

http w/ nginx on tmobile: fail
https w/ nginx on tmobile: success
http w/ nginx on 3: success
https w/ nginx on 3: success
http w/o nginx on tmobile: success
https w/o nginx on tmobile: success
http w/o nginx on 3: success
https w/o nginx on 3: success
ssh on tmobile: success
http w/ nginx on tmobile plus calling http request.end - success (because it wasn't duplex http)

so something involving tmobile and nginx causes duplex http to break (major WTF). this wasn't a dat bug, we made a very small test case. the fix is to use https or ssh, and not http
we are thinking if you try and pull over http we should show a warning. we could also do a self signed certificate automatically when you do dat serve and default to https when cloning
we also want to write a simple duplex-http-tester CLI that anyone can run to test connections

I'm not familiar with this project, but I have a (USA domestic) T-Mobile wireless connection.  If you can tell me how to get a server running and (hopefully) reproduce the issue, I can debug traffic and see what the root cause is.

Could be some kind of header "enrichment" or other kind of tracking/modification T-Mobile does as a company, which is only possible over HTTP (AT&T's and Verizon's programs also only worked over HTTP), and the modification is what nginx has a hard time with.


remove input type consistency checks

These codes are invalid as iDeep is now introduced.
Note that type consistency is now checked in FunctionNode level (#4029), so we can safely remove these checks.
Type check code in F.linear will be removed in #4278.

LGTM!

Not to be backported because #4029 has been merged only in master branch.


kubelet: Refactor prober.

Decompose the health check prober from the kubelet.
@yujuhong @dchen1107 @vmarmol

I am fine with it being in kubelet/prober :)


LevelUp mod interferes with Atomic Disassembler's Vein mode

Running Minecraft 1.10.2, Forge <IP_ADDRESS>5, Mekanism <IP_ADDRESS>8

Install LevelUp! mod.
Acquire an Atomic Disassembler.
Level up and assign points to woodcutting skill.
Switch Atomic Disassembler to Vein mode.
Break a wood block in a tree.

All of the connected wood blocks should break, but only the clicked block will break.
Note that another mod, VeinMiner works as expected:

Install VeinMiner.
Acquire any axe.
Level up and assign points to woodcutting skill.
Break a wood block in a tree with VeinMiner active.

This will correctly break all of the wood blocks in the tree (plus, any bonuses from woodcutting skill will be applied).

Not totally sure why this would be occurring, but clearly LevelUp! is interfering with some low-level MC functionality. I'm going to leave things be.


 This
fails because the response writer is not thread safe.

Codecov Report

Merging #648 into master will decrease coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##           master    #648      +/-   ##
=========================================
- Coverage   57.91%   57.9%   -0.01%
=========================================
  Files          37      37
  Lines        9991    9990       -1
=========================================
- Hits         5786    5785       -1
  Misses       3155    3155
  Partials     1050    1050

Impacted Files
Coverage Δ

server.go
58.02% <100%> (-0.12%)
:arrow_down:

Continue to review full report at Codecov.

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

@miekg I don't think this is possible or safe without substantially rewriting serve. It's certainly true there are many more data-races and edge-cases in this PR.

I agree. Also an implicit contract for a reponsewriter is that is will be used to handle the current query; meaning concurrent use of these was never a thing. And note that responseWriters are everywhere. I think in CoreDNS we already have 6 or so...


Go To Bracket shortcut not working

VSCode Version: 1.16.1
OS Version: Windows 8.1

Shortcut go to matched bracket seems doesn't work properly.

Can reproduce this on a German keyboard.
Ctrl + Shift + ^ will result into a ° for me.

I can reproduce as well on 1.17.1. Invoking the command manually (from ctrl+p) works, invoking keyboard shortcut doesn't, and the mapping seems right:

I'm on ENG (US) keyboard:

This is happening to me as well with an English keyboard on Linux Mint 18.2 and vs code 1.18.1.

I have the same problem with atom keymap: ctrl+m. This was working for 2 h and then broke. English and German keyboard on Win 10 and vs code 1.19.0 insider.
Love this shortcut on atom, but I want to stick to vs code. Will there be a fix?

FIxed in the recent update.

@lucbetacode try to update to the latest version.

I still have the problem after the update. Any suggestions?

This is what I have now:  to the keyboard shortcut: ctrl+m  is attached to a command which works like Edit.GotoBrace.
But I need a command  editor.action.jumptoBracket attached toctrl+m, like this:

Problem solved:
There are two different commands in vs code, which I have got confused:

Go to matching Pair: In this case, one can jump from the opening tag to closing tag.
Jump to bracket: In this case, one can jump within a tag between the brackets.