"Add work email address" button doesn't show up and text copy is not the correct one

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Create new gmail account on New Expensify App (Build 1.1.16-1)
Add an "OPEN" Bank Account
Verify the bank account is added with a button to add work email address

Expected Result:
Bank Account added and a button to add work email address. Also the copy of the text reads:

Actual Result:
The Bank Account is added but the button to add work email address doesn't show up. A button with "Chat with Concierge" appears instead. Also copy of the text is not the correct one, it reads:

Workaround:
No workaround to finish the PR steps https://github.com/Expensify/App/pull/6319
Platform:

Where is this issue occurring?

Web
iOS
Android
Desktop App
Mobile Web

Version Number: 1.1.16-2
Reproducible in staging?: Yes
Reproducible in production?: N/A (New Feature)
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

Expensify/Expensify Issue URL:
Issue reported by:
Slack conversation:
View all open jobs on GitHub

Triggered auto assignment to @iwiznia (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

Issue is failing PR https://github.com/Expensify/App/pull/6319

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

Discussing it here https://expensify.slack.com/archives/C03TQ48KC/p1637699458093500

Even though the PR was deployed to staging, looking at the staging branch, the code doesn't seem to be there. We are CP'ing the changes again and we can try QA'ing it once more.

Code is on staging, @isagoico would you mind retesting https://github.com/Expensify/App/pull/6319 please? If all looks good we can check it off the list.

Actually, I just tested it on staging and all looks good! Closing this issue and checking it off the list. Thanks!


Adding Koreatech

Homepage : https://www.koreatech.ac.kr

Domain information

@YounghoLee-Kut Thank you for your patience while waiting for a review and processing your request. Pull request merged. Please start applying for JetBrains educational subscription at https://www.jetbrains.com/shop/eform/students in an hour, to allow the changes to propagate through JetBrains systems.


Fightboard has not been added to CMake for .UF2s

Fightboard (regular and mirrored) needs to be added to CMake for .UF2s on release.

Fixed!


ImportError with Python 3.10

As noted in https://github.com/BCDA-APS/apstools/pull/620#issuecomment-1014746302, the  ImportError: cannot import name 'Iterable' from 'collections' error happens with Py3.10:
conda create -n py310 python=3.10
conda env update -f environment.yml -n py310
conda activate py310
python
import databroker

Expected Behavior
No exception should be raised due to import databroker.
Current Behavior
see the comment referenced above
Possible Solution
Could this be a problem upstream with the intake package?
Steps to Reproduce (for bugs)
see the comment referenced above
Context
Unit tests of apstools fail when using Python 3.10
Your Environment
Linux

This was fixed in pims in https://github.com/soft-matter/pims/pull/383 but I do not think we have done a release over there in a while.

Might be a good idea.  Warnings such as this one have been raised by pims for some time:
2022-01-17T20:51:37.1162836Z /opt/conda/conda-bld/apstools_1642452057613/_test_env_placehold_..._placehold/lib/python3.9/site-packages/pims/image_reader.py:26: RuntimeWarning: PIMS image_reader.py could not find scikit-image. Falling back to matplotlib's imread(), which uses floats instead of integers. This may break your scripts.
2022-01-17T20:51:37.1164164Z (To ignore this warning, include the line "warnings.simplefilter("ignore", RuntimeWarning)" in your script.)
2022-01-17T20:51:37.1164607Z   warnings.warn(RuntimeWarning(ski_preferred))

Not sure how to control that in apstools other than heed the directiions of ignore this warning (apstools does not call pims directly).


Multiple selection of inner elements is not possible when elements are on inside of other

Preflight Checklist

[ x ] I agree to follow the Code of Conduct that this project adheres to.
[ x ] I have searched the issue tracker for a feature request that matches the one I want to file, without success.

Describe the bug
As shown in the below video, group selection of inner elements is not possible when elements are on inside of other
To Reproduce
Steps to reproduce the behavior:

Go to 'https://app.diagrams.net/'
Create 3 rectangles placed one inside of other
Try group selecting the inner rectangles
See error that outer rectangle is selected/moved, but inner rectangle selection didn't work

Expected behavior
Multi-selection of inner rectangles
Video
https://youtu.be/nqPM2HyS6FM
Desktop (please complete the following information):

OS: macOS
Browser : chrome
Version  17

Hi,
Try the following: hold Cmd and click each shape separately. This way you should be able to select inner shapes.
Regards

Thanks, it worked.
Is there any other solution, because I always have a base rectangle at the background & elements on top of it. So I can't make group selection anymore?

Select such that your selection area spills outside the outer rectangle without containing it fully. The inner elements that get enclosed will still get selected.


[Events] Adding the support for Google Calendar

Description
 Adding the support for Google Calendar will result in smoother functioning of various events and provide greater integration with our smartphones with timely notifications.
Screenshots/testimonials
NA

To add Google Calendar support, Google Console has to be set up, preferably by an id that is constant to the society(like houseofgeeks@iiitranchi.ac.in). Details would be required.


[Bug] psycopg2 dependency is not installed correctly

Is this a new bug in dbt-redshift?

[X] I believe this is a new bug in dbt-redshift
[X] I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior
When I install the following Pipfile and run dbt seed afterwards I get an import error.
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
dbt-redshift = "==1.8.0"
sqlfluff = "~=2.2.0"
requests = "2.32.0"
jsonpath-ng="1.5.3"

[dev-packages]

[requires]
python_version = "3.9.9"

Expected Behavior
dbt seed should run successfully.
Steps To Reproduce

Run pipenv install in a directory with the above Pipfile.
Run dbt seed

Relevant log output
06:53:16  Running with dbt=1.8.1
06:53:16  Encountered an error:
No module named 'psycopg2'
06:53:16  Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/dbt/cli/requires.py", line 138, in wrapper
    result, success = func(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/dbt/cli/requires.py", line 101, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/dbt/cli/requires.py", line 215, in wrapper
    profile = load_profile(flags.PROJECT_DIR, flags.VARS, flags.PROFILE, flags.TARGET, threads)
  File "/usr/local/lib/python3.9/site-packages/dbt/config/runtime.py", line 71, in load_profile
    profile = Profile.render(
  File "/usr/local/lib/python3.9/site-packages/dbt/config/profile.py", line 403, in render
    return cls.from_raw_profiles(
  File "/usr/local/lib/python3.9/site-packages/dbt/config/profile.py", line 369, in from_raw_profiles
    return cls.from_raw_profile_info(
  File "/usr/local/lib/python3.9/site-packages/dbt/config/profile.py", line 325, in from_raw_profile_info
    credentials: Credentials = cls._credentials_from_profile(
  File "/usr/local/lib/python3.9/site-packages/dbt/config/profile.py", line 149, in _credentials_from_profile
    cls = load_plugin(typename)
  File "/usr/local/lib/python3.9/site-packages/dbt/adapters/factory.py", line 239, in load_plugin
    return FACTORY.load_plugin(name)
  File "/usr/local/lib/python3.9/site-packages/dbt/adapters/factory.py", line 96, in load_plugin
    self.load_plugin(dep)
  File "/usr/local/lib/python3.9/site-packages/dbt/adapters/factory.py", line 68, in load_plugin
    mod: Any = import_module("." + name, "dbt.adapters")
  File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/usr/local/lib/python3.9/site-packages/dbt/adapters/postgres/__init__.py", line 4, in <module>
    from dbt.adapters.postgres.connections import PostgresConnectionManager, PostgresCredentials
  File "/usr/local/lib/python3.9/site-packages/dbt/adapters/postgres/connections.py", line 13, in <module>
    import psycopg2
ModuleNotFoundError: No module named 'psycopg2'

Environment
- OS: MacOS and also tried on Ubuntu
- Python: 3.9.9
- dbt-core: 1.7.15
- dbt-redshift: 1.8.0

Additional Context
No response

Ah yes, that would explain it! The easiest way to fix this is by adding the psycopg2 build prerequisites to your docker image:

https://www.psycopg.org/docs/install.html#build-prerequisites

Adding psycopg2 didn't work in my case, but reverting to dbt-redshift 1.7.7 does, which is fine for now.
Thanks for your help jtcohen6!


Remove BUS events from GTFS Static Processing

Currently, performance manager processes ALL GTFS static events, loading them into the RDS. Most of these events are BUS related and can be removed from the performance manager pipeline.
This PR modifies the RDS loading pipeline to remove all BUS events for GTFS Static processing.
Asana Task: https://app.asana.com/0/1189492770004753/1204339091106883

Yes, will wait to deploy the RT fix first to avoid any conflicts.


[Doc] Need to modify the documentation regarding sharing applications

In the application sharing feature, the shared user will not be able to modify the application can only see/view the application. Current documentation[1] states "As a result of application sharing, users can view and modify applications and subscriptions belonging to other users in the same group"
Need an update on the documentation.
[1] https://docs.wso2.com/display/AM250/Sharing+Applications

Please fix this in 2.6.0 docs and check other versions as well

@TanyaM , please confirm whether we can use the following new description as the updated introduction to [1].
_"WSO2 API Manager provides the facility for users to share their applications and subscriptions with a specific logical group/groups such as an organization. As a result of application sharing, users in the group can view such shared applications.
WSO2 API Manager considers the organization name you enter when signing up to the API Store as the group ID. All the users specifying the same organization name belong to the same group. Therefore, such users that belong to a single group can view each others' subscriptions and applications provided that you have enabled group sharing.
Only the application owner is capable of editing and deleting the application and not any other users in the shared group. However, if there is a requirement to edit/delete an application using a different user (for example due to a reason such as where the application owner left the organization etc.), you can achieve this by transferring the application ownership to that user who will be the new application owner.
Furthermore, only the application owner is allowed to generate keys for the application. However, the shared users can generate access tokens and therefore,  your user "admin" can see the Regenerate option which is used to regenerate the access tokens, but not the application keys.
WSO2 API Manager also provides the flexibility to change this default authentication implementation."_
[1] https://docs.wso2.com/display/AM250/Sharing+Applications

"However, if there is a requirement to edit/delete an application using a different user (for example due to a reason such as where the application owner left the organization etc.), you can achieve this by transferring the application ownership to that user who will be the new application owner." --> let's add this part as a separate note.
therefore, your user "admin" can see the Regenerate option which is used to regenerate the access tokens, but not the application keys. --> This part is specific to the support query that I have replied. user admin here is not the general admin user but a specific user in the customer's usecase. Hence we don't need this part.

However, if there is a requirement to edit/delete an application using a different user (for example due to a reason such as where the application owner left the organization etc.), you can achieve this by transferring the application ownership to that user who will be the new application owner. --> let's add this part as a separate note.
therefore, your user "admin" can see the Regenerate option which is used to regenerate the access tokens, but not the application keys. --> This part is specific to the support query that I have replied. user admin here is not the general admin user but a specific user in the customer's usecase. Hence we don't need this part.

@TanyaM , based on your feedback plan on adding the following into the documentation.
"WSO2 API Manager provides the facility for users to share their applications and subscriptions with a specific logical group or groups such as an organization. As a result of application sharing, users in the group can view such shared applications.
WSO2 API Manager considers the organization name you enter when signing up to the API Store as the group ID. All the users specifying the same organization name belong to the same group. Therefore, such users that belong to a single group can view each others' subscriptions and applications provided that you have enabled group sharing.
Only the application owner is capable of editing and deleting the application in the shared group.
!!! Note
If there is a requirement to edit or delete an application using a different user (for example due to a reason such as where the application owner has already left the organization etc.), you can achieve this by transferring the ownership of the application to that user who will be the new application owner.
Furthermore, only the application owner is allowed to generate keys for a specific shared application. However, the shared users can generate access tokens and therefore, the shared users will see the Regenerate button which is used to regenerate the access tokens, but not the Application Keys button.
WSO2 API Manager also provides the flexibility to change this default authentication implementation."

Fixed in -
| Fixed in 2.5.0 and 2.6.0
-- | --
https://github.com/wso2/docs-apim/pull/1294 | 3.0.0
https://github.com/wso2/docs-apim/pull/1295 | 3.1.0
https://github.com/wso2/docs-apim/pull/1296 | master


Consider adding sugar for the elect() & return single_result idiom

The idea would be to provide a shorthand for this idiom:
auto lambda = [](auto& self) -> single_result<int>
{
  // each agent computes some result
  int my_result = ...

  // only one agent needs to return a result
  if(self.elect())
  {
    return my_result;
  }

  return ignore;
}

With some sugar we could have something like:
auto lambda = [](auto& self)
{
  // each agent computes some result
  int my_result = ...

  // only one agent needs to return a result
  return elect_value(self, my_result);
}

What's nice about the sugar in this example is that it eliminates the requirement to annotate the return type of the lambda with single_result<int>.

If we do this, we might consider making the current .elect() member function a free function.


Split off intel trace into its own container

Would allow for intel to be done from separate server. Have authentication done by API token.
Should probably be in its own repo so that we can easily deploy from Git.

Maybe we move it back into the livetrace repo?


Problems with listen.moe

https://docs.listen.moe/
It doesn't play anything, but it correctly shows the track's title.
Also it fails to show japanese in the album name.

This is actually a problem that is caused by your radio station.

The error message basically means, that the station is blocking requests from 'discord.com' (aka. your Discord client).
I actually can not do anything to fix this, because this error is out of my reach.
I am sorry, but this station just won't work with the plugin.

This is actually a problem that is caused by your radio station.

The error message basically means, that the station is blocking requests from 'discord.com' (aka. your Discord client).
I actually can not do anything to fix this, because this error is out of my reach.
I am sorry, but this station just won't work with the plugin.

hmm, iirc you can use nodejs to make the request, since nodejs is packed with electron, right?
CORS is enforced by the browser, in this case electron
nodejs is not a browser
ignore me if I am saying nonsense

I do not want to say that this is impossible.
But unfortunately, I don't have enough time for this plugin at the moment.
Maybe in the near future, when I have more time.


Refactor the QuerySetToPandasDataFrames class

@lparsons I will keep your comments and go through them again when making modifications. Just answer your questions in general:
The questions you asked I also debated with myself several times. We should have further discussions about the following issues, though they are not top priorities for beta release.

It's fine to move data frames to a separate module, but it's not my preferred choice to move them into
Models since some of them are shared among Models (e.g. all_anim_msrun_df contains combined data from Study,
Animal, Tissue, Sample, and MSRun, called by several views). I also feel it's better to break models.py, views.py, utils.py into several files in sub-folders in the future.

I like to have get_absolute_url() for every model. I raised this question a few months ago, but seems we decided not to do it, use {% url 'object_detail' pk %} instead. We can discuss it again.

About field names in DataFrames:  to use values_list() (or values() function ) in a queryset to get related data from other models, the fields names are formed based on query path, some of which have long names with multiple double underscores. It's easy to rename columns with Pandas, I tried to make them short, easy to read, and consistent for columns in different DataFrames. Basically, I  attempted to do data manipulation with Pandas DataFrames, and then use them with minimum work when rendering data in templates.

my to-do list:

remove debug code
add test for tissue list and detail.
modify test code for other views (study, animal, sample)
Hopefully I'll find time to do it Friday afternoon (or early next week).

Originally posted by @fkang-pu in https://github.com/Princeton-LSI-ResearchComputing/tracebase/issues/241#issuecomment-964590981

A couple of other areas to note:

https://github.com/Princeton-LSI-ResearchComputing/tracebase/pull/264#discussion_r754563547
https://github.com/Princeton-LSI-ResearchComputing/tracebase/pull/264#discussion_r754566139

I think this is done.


Updates to documentation

No basic description of functionality available here or on previous add-on's page.

Yep, the documentation definitely needs some work. I'll get down to it when I have some more time on my hands.

Closing this as the documentation both here and on Ankiweb has receiver a major overhaul.


[Question] Which browser do I need to use for AR?

Every time I try to load AR I get the invalid AR session id error. Which browser do I need to use?

@Xeltalliv

Every time I try to load AR I get the invalid AR session id error.

I'm not familiar with this error message and couldn't find any information on it either. Can you share a screenshot of it?

Which browser do I need to use?

It worked on Google Chrome and Samsung Internet and didn't work on Firefox (AR haven't been added there yet, so makes sense). (tested on Android 10)
Which browser on which OS have you tried it on?

Opera GX

Opera GX

Opera GX.

The error says Project attempted to start AR even though it's not available. The reason: WebXR exist in the browser you are using, but 'immersive-ar' session type is not supported

Opera GX. Windows.

In general AR only works on mobile devices (phones, tablets) since it requires at least camera, gyroscope and accelerometer.
Currently in-browser AR only works on Android devices which support Google's ARCore.

so how am I gonna enter AR mode if I can't edit on turbowarp on phone?

That is still an unresolved issue. Currently the solution is to develop on the PC and copy project to the phone to test it.
There is also ar emulator extension currently in development, which simulates AR without actual AR by using fullscreen and WASD controls. It has the same extension id and blocks, so TurboWarp treats both of them like the same extension and it's easy to swap between them.

ar emulator extension? That makes things easier. Is it in beta or a closed beta [meaning visitors can't access it, only the team can]

currently only I have access to it

oh it's a closed beta. Well that solves my problem. Right now as I said the emulator is in closed beta meaning you have to wait a month or week to get it.

so where is the extension?

https://extensions.turbowarp.org/

I mean is AR emulator extension in developing yet?

It already exists, https://extensions.turbowarp.org/

I mean is AR emulator extension in developing yet?

It already exists, extensions.turbowarp.org

AR emulator

As in, probably the extension Xeltalliv mentioned in this comment, which I'm pretty sure is not public yet:

There is also ar emulator extension currently in development, which simulates AR without actual AR by using fullscreen and WASD controls. It has the same extension id and blocks, so TurboWarp treats both of them like the same extension and it's easy to swap between them.

I mean is AR emulator extension in developing yet?

It's currently in the same state as it was when I wrote that comment. I got distracted making other (also currently not published) extensions and forgot about it.


Feature request: --reset-then-reuse flag for upgrade

Currently Helm implements two ways of handling values when updating an existing release: reusing the existing user-supplied values if new ones are not supplied, or not reusing them if new ones are supplied.  However, the way these are implemented and the way --reuse-values and --reset-values change that default behavior is sometimes confusing; see, for example:
https://medium.com/@kcatstack/understand-helm-upgrade-flags-reset-values-reuse-values-6e58ac8f127e
(And see one of the commenters pointing out that even after this article-length treatment of the subject, the writer missed an important subtlety!)
What I think would be nice for users is a flag that means "take the existing chart's values, merge these new values I am giving you explicitly, and do not update values from the chart unless they are new to the chart since the version stored in the target release".  (Alternately one can think of this as "--reset-values followed by --reuse-values followed by user-supplied --set*values")
This seems like it would be less confusing in the majority of cases: if I give a value, it is updated; if I don't give it and it exists in the release, it is reused; if I don't give it and it doesn't exist in the release, it is set from the updated chart.  It would eliminate the case of "I did not specify this value as part of my upgrade but it changed anyway" which appears to be where much of the confusion strikes.

Possibly related issue: https://github.com/helm/helm/issues/3957

Here is my big +1 for this. Frequent use case for which --reuse-values works very counter-intuitive is adding new features to the chart.
It is very annoying that when I add new templates and default values into application's chart, --reuse-values uses new templates, but doesn't use new values which leads to templates errors at best and to partial upgrades at worst.
For example, if I add following snippet to some deployment's definition:
+           ports:
+             - containerPort: {{ .Values.metrics.port }}
+               name: metrics

And values for it:
+ monitoring:
+   port: 8001

And then execute helm upgrade ./helm-chart --reuse-values --wait --atomic
Then I get following error:
Error: UPGRADE FAILED: template: cool-app/templates/deployment.whatever.yaml:19:39: executing "cool-app/templates/deployment.whatever.yaml" at <.Values.metrics.port>: nil pointer evaluating interface {}.port

While expected result is to perform upgrade using new default values.
At the same time all testing commands like helm template and helm lint works perfectly and uses values from local values.yaml.

@Envek very well put. That's exactly my biggest problem when developing charts.
This option sounds much friendlier, than getting the values, and then passing them to upgrade.

As mentioned in https://github.com/helm/helm/issues/3957#issuecomment-384685681, an alternative way to accomplish this today without needing to introduce a new feature to Helm would be
helm get values foo > values.yaml && helm upgrade foo ./foochart -f values --set ...
I could see future use cases where users may want to tweak the values from helm get values (e.g. coercing some values to strings and some values to integers to fix an issue from a previous release). I'm concerned about adding "yet another value merge strategy flag" to Helm, and I'm curious why the workflow described earlier cannot handle this use case, or that a plugin cannot handle this case.
      --reset-values                 when upgrading, reset the values to the ones built into the chart
      --reuse-values                 when upgrading, reuse the last release's values and merge in any overrides from the command line via --set and -f. If '--reset-values' is specified, this is ignored
      --set stringArray              set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
      --set-file stringArray         set values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)
      --set-string stringArray       set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
  -f, --values strings               specify values in a YAML file or a URL (can specify multiple)

I can try to explain from my workflow. For my workflow the current implementation of '- - reuse-values' is absolutely pointless.
We deploy using chart that we have developed, and we use the same chart, for our production., staging and feature branch deployment. This means that sometimes we need to change the chart also, and here is where things break with --reuse-values. Becuase when the chart was modified, you need to know whether reuse values makes sense or not. Right now we always use the workaround you've described with get values. But I really can't wrap my head why this is not the default behaviour of reuse values instead of the current one.

Does helm get values foo > values.yaml && helm upgrade foo ./foochart -f values --set ... not work for you?

helm get values foo > values.yaml && helm upgrade foo ./foochart -f values --set ... definitely works but there is always a little chance that someone or something else will do helm upgrade between these steps.

It is still pain in the ass, to be honest and should be kept open, IMO.
helm get values && helm upgrade is just a workaround and doesn't feel right.
Some new flag with non-nonsense behavior for helm end users should be considered, I believe.

No, please keep it open.

I've marked this as "keep open" for the time being. But without anyone stepping up to actually implement said feature, I am going to assume that either
a) a workaround (like the ones suggested earlier) works well enough and solves the use case, or
b) this is a non-issue for most folks
In which case we should close this.
@Envek are you planning on implementing this, or are you waiting for someone to pick up the work? This ticket's been open for nearly a year, and https://github.com/helm/helm/issues/3957 has just celebrated its third birthday. We have documentation available to help you get started.
Let me know how I can help.

I believe that https://github.com/helm/helm/pull/9516 can fix that

sigh.
Once again, we are NOT accommodating changes to --reuse-values's behavior. We have stated our reasons for this decision multiple times. #9516 completely disregards that decision and changes it anyways. So I closed it.
Please stop asking us to change the behavior of a flag. It's not going to happen.

I also wanna jump in the train here and request a new flag with the desired behaviour. It is a super common and important use case for deployments of charts that contain multiple environments or canary releases in one chart.

Hello everyone!
Could some tell why #9653 is still not accepted? It does the job, doesn't it?

Would love to get this feature, as it is really important for us.
Main use-case: We have certain user-supplied values that we want the user to overwrite, but we also maintain internal values in the helm chart. We regularly release a new version of our chart, and when we upgrade the chart using --reuse-values we get in a situation where not all internal values are upgraded/merged.

@bacongobbler it looks like you've been merging some PRs today – I think https://github.com/helm/helm/pull/9653 would solve this issue, would you mind taking a look?
As silly as it seems, this is probably the most significant barrier I've had in introducing Helm to users. Most expect the --reset-then-reuse-values behavior, and are blindsided when the accidentally wipe their existing configuration. Even just having the additional flag would help to make the behavior of --reset-values and --reuse-values more understandable.
Is there anything anyone else can do to move this PR forward?

PING.
This flag --reset-then-reuse-values would make the other (IMHO stupid) flag --reuse-values almost make sense. But still, not, as it's really a silly flag.

For anyone waiting for that https://github.com/helm/helm/pull/9653 being merged, I hit this issue today and https://github.com/helm/helm/issues/8085#issuecomment-674190314 's method works perfectly.

@bacongobbler earlier mentioned:

I'm concerned about adding "yet another value merge strategy flag" to Helm [...]

I stumbled across this nice resource today: https://shipmight.com/blog/understanding-helm-upgrade-reset-reuse-values (thanks @codeclown)
It includes some good infographics, and this summary of Helm's value management is excellent:

But I think this visualization makes it clear that Helm is really only missing one helm upgrade value merging strategy. Reorganized as a binary table:

Binary
Command
Chart defaults
Previous values
--set

0b000
n/a (no values)
-
-
-

0b001
helm upgrade --set foo=bar
-
-
✅

0b010
n/a (no change)
-
✅
-

0b011
helm upgrade --set foo=bar --reuse-values
-
✅
✅

0b100
helm upgrade --reset-values
✅
-
-

0b101
helm upgrade --set foo=bar --reset-values
✅
-
✅

0b110
helm upgrade
✅
✅
-

0b111
helm upgrade --MISSING --set foo=bar
✅
✅
✅

So it seems that this is not just another merging strategy, it is actually the only missing merge strategy.
This also seems to be the expected default for a non-trivial subset of new Helm users. E.g. a web search for helm reuse values turns up dozens of blog posts, help docs, and stackoverflow posts that describe this missing strategy as "surprising":

Understand helm upgrade flags — reset-values & reuse-values
Understanding Helm upgrade flags (with infographics)
Understanding the "Reset Values" option in the Helm Chart step
Upgrade via Helm :: StackGres Documentation Important note: Do not use the --reuse-values option from Helm, this prevent the new operator resources and the new values needed to be set. [...]
How do I upgrade a helm chart with a new values.yaml and keep the previous deployments data?
and many more.

My interest in this feature: I maintain a helm chart used primarily by users who are new to both Kubernetes and Helm.
Having this option available would make my setup/upgrade instructions a lot less confusing/error-prone for new users.

@bacongobbler asked earlier, "I'm curious why the workflow described earlier cannot handle this use case, or that a plugin cannot handle this case." Though he's no longer active in the project I do have an answer.
When running ct install --upgrade 1 the upgrade is run with --reuse-values.
This means if you add a new defaulted value to your chart, the upgrade test will fail. The new chart value will not be included. There is no way in ct to tell it to run some script as part of the upgrade.
It's also been stated that the --reuse-values flag behavior will not be changed, and it's also been stated that he's against adding "yet another value merge strategy flag" to Helm". I disagree.
The default strategy for the reuse-values flag cannot be changed. That's true. If the flag is set without options, the behavior should remain the same. If the flag is reset, that behavior should not change either.
We can, however, change the flag from a Boolean to a String - similar to what kubectl did with the dry-run flag, changing from a boolean to "client" or "server", ie. --reuse-values=merge (or something like that). If the flag is specified without arguments, it would default to (eg.) "replace" which would be the same as "true". This would not break any existing usage, but would extend the flag to accommodate additional behavior.

For an example of another PR taking this approach, see https://github.com/helm/helm/pull/9426#issuecomment-1407259188


Update wiki with nodenv-npm-migrate plugin

Branch with changes is here: https://github.com/jawshooah/nodenv-wiki/tree/nodenv-npm-migrate
I also sorted the plugins alphabetically.

Lgtm
On Jun 30, 2015 12:13 AM, "Josh Hagins"<EMAIL_ADDRESS>wrote:

Branch with changes is here:
https://github.com/jawshooah/nodenv-wiki/tree/nodenv-npm-migrate
I also sorted the plugins alphabetically.
—
Reply to this email directly or view it on GitHub
https://github.com/OiNutter/nodenv/issues/17.

Ah, didn't notice I had edit permissions for the wiki. I'll add it myself, then :smile:

Yeah I think the wiki edits are public
On Jun 30, 2015 12:28 AM, "Josh Hagins"<EMAIL_ADDRESS>wrote:

Closed #17 https://github.com/OiNutter/nodenv/issues/17.
—
Reply to this email directly or view it on GitHub
https://github.com/OiNutter/nodenv/issues/17#event-343749625.


fix: use internal App Store and Google Play images

Overview

Uses checked-in images instead of externally hosted ones because external ones go down sometimes...

...and it's generally good to limit number of unique domain across downloads anyway.
Our end-to-end tests all started timing out this morning. No relevant code changes to blame.
Turns out loading the "Download on the App Store" image hosted on apple's s3 account was giving a 504 bad gateway.
PR Checklist

~[ ] Related to designs:~
[x] Related to JIRA ticket: WEB-1409
[x] I have run this code to verify it works
[x] This PR includes unit tests for the code change

Oh and:

📬Published Alpha Packages:@codecademy/gamut-kit@0.3.18-alpha.631665.0@codecademy/gamut-labs@13.4.10-alpha.631665.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://607720c3c6cde600d8988bea--gamut-preview.netlify.appDeploy Logs


Update cypress to 9.5.2 for dashboards functional tests

Signed-off-by: Peter Zhu<EMAIL_ADDRESS>Description
Update cypress to 9.5.2 for dashboards functional tests
test ci images: https://hub.docker.com/r/opensearchstaging/ci-runner/tags?page=1&name=ci-runner-rockylinux8-opensearch-dashboards-integtest-v2
Issues Resolved
https://github.com/opensearch-project/opensearch-dashboards-functional-test/issues/81
Check List

[x] Commits are signed per the DCO using --signoff

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

I assume this will require redeployment? @peterzhuamazon Is it possible to add GH workflows only for ci runners? So that whenever someone merges in these files it will auto-trigger and push images to dockerhub? GH provides ubuntu OS too (required to build these images)

This is good idea will invest into that.


Allow to add handlers for prompts

Is your feature request related to a problem? Please describe.
Allow users to add hooks to prompts.
Describe the solution you'd like
For example, adding the support of doing the following:
using System.Collections.Generic;
using System.Linq;
using Spectre.Console;

void Update(IReadOnlyList<int> items, PromptAction action)
{
    var bits = items.Aggregate(seed: 0, (a, b) => a | b);

    AnsiConsole.Cursor.SetPosition(20, 1);
    AnsiConsole.WriteLine($"Bits set: {bits:X8}");
}

var prompt = new MultiSelectionPrompt<int>()
    .Handler((list, action) => Update(list));

internal enum PromptAction : byte
{
    ItemSelected,
    ItemDeselected,

    // ..
}

Why is this needed?
I think adding hooks would be helpful to inform the user about what is set.
This would also add the ability to make something like the following:
using System;
using System.Collections.Generic;
using Spectre.Console;

void Update(IReadOnlyList<Item> items, PromptAction action)
{
    if (action is PromptAction.ItemSelected)
    {
        AnsiConsole.Cursor.SetPosition(20, 1);
        AnsiConsole.WriteLine(items[items.Count - 1].Description);
    }
}

var prompt = new SelectionPrompt<int>()
    .Handler((list, action) => Update(list));

internal enum PromptAction : byte
{
    ItemSelected,
    ItemDeselected,

    // ..
}

internal class Item
{
    public Item(string name, string description)
    {
        Name = name ?? throw new ArgumentNullException(nameof(name));
        Description = description ?? throw new ArgumentNullException(nameof(description));
    }

    public string Name { get; }

    public string Description { get; }
}

Describe alternatives you've considered
---
Additional context
I would be able to grab this if this is considered a feature.

@angelobreuer I'm having a difficult time seeing how this would bring any big benefits.
What is the use case of this? Is it to display contextual information about items in the list?

@angelobreuer I'm having a difficult time seeing how this would bring any big benefits.
What is the use case of this? Is it to display contextual information about items in the list?

-- @patriksvensson
Thank you very much for your response.

What is the use case of this? Is it to display contextual information about items in the list?

Yes, in my project, I have some cases where live, interactive prompts could benefit the user experience.
For example, I have a multi-selection prompt, where I allow the user to select bit flags. For instance, I would explain (on the right in the console) what the bit flag is supposed for and what bit mask is currently calculated.
Additionally, I also have another use case: I provide a tui to run examples that demonstrate my library's use. These samples are selectable using the selection prompt. Adding handlers would make me able to give a description based on the sample metadata. (Maybe off-topic: Another idea that came up is to provide the user with information about the sample was to have a table where on the left is a selection prompt and on the right the description of the sample. I suddenly did not find a solution for using spectre. As a) the interactive selection handling is missing and b) tables with a prompt is currently, as far I know, not directly supported).
Generally, I think prompts are a handy "thing," but they do not provide much flexibility as they take something in and out without allowing any attachable interrupts. This would provide developers way more flexibility when working with prompts.
Another use case would be to allow developers to preload things as the user scrolls down (which would expand the issue itself because I think this may require some structural changes). In my "sample runner", I have the user select an environment where to try out that sample, the list of environments may be small, but also large, the data amount is unknown, and the API allows only to request the data in chunks. Hence, the prompt is very limited in this case, as only fixed data is allowed.
Thank you for reading!

-- @patriksvensson
Thank you very much for your response.

What is the use case of this? Is it to display contextual information about items in the list?

Yes, in my project, I have some cases where live, interactive prompts could benefit the user experience.
For example, I have a multi-selection prompt, where I allow the user to select bit flags. For instance, I would explain (on the right in the console) what the bit flag is supposed for and what bit mask is currently calculated.
Additionally, I also have another use case: I provide a tui to run examples that demonstrate my library's use. These samples are selectable using the selection prompt. Adding handlers would make me able to give a description based on the sample metadata. (Maybe off-topic: Another idea that came up is to provide the user with information about the sample was to have a table where on the left is a selection prompt and on the right the description of the sample. I suddenly did not find a solution for using spectre. As a) the interactive selection handling is missing and b) tables with a prompt is currently, as far I know, not directly supported).
Generally, I think prompts are a handy "thing," but they do not provide much flexibility as they take something in and out without allowing any attachable interrupts. This would provide developers way more flexibility when working with prompts.
Another use case would be to allow developers to preload things as the user scrolls down (which would expand the issue itself because I think this may require some structural changes). In my "sample runner", I have the user select an environment where to try out that sample, the list of environments may be small, but also large, the data amount is unknown, and the API allows only to request the data in chunks. Hence, the prompt is very limited in this case, as only fixed data is allowed.
Thank you for reading!

Yesterday, I came up with the same idea as @angelobreuer. I have seen similar TUI approaches in Telescope (https://github.com/nvim-telescope/telescope.nvim) and fzf (https://github.com/junegunn/fzf). These tools can show previews for each selection in a right-hand side panel.
While digging through the code and documentation, I realized that adding hooks for handlers would probably be fairly easy to do. I think the harder part which would require more design work, is the other side of the hook. How would the handler affect rendering of other components? Currently, there is only the Live Display that allows to update widgets.

My view on this requirement-
I have a dependency of items on each other. Say, if I have A, B and C listed, selecting B, should also select A immediately.
This is not possible without a handler, or extending the MultiSelectionPrompt which has been sealed.
I also could not provide my own IListPromptStrategy<T> instance, because the interface is internal. If it was accessible and allowed to be attached to the prompt, I could have handled the input events. If I could receive events, I could toggle the IsSelected property of IMultiSelectionItem<T> interface and possibly have the desired impact.
On the other hand, if I want to make it look like a tree selection in prompt, (not sure if it is supported even), I can't AddChoice of IMultiSelectionItem<T> because it is not supported, even though IMultiSelectionItem<T> can have a child node added!
There are lot of design restrictions that should be reviewed.


Error building with nix-build

nix-build on the project as it is right now produces following error.
> nix-build --show-trace
error: while evaluating the attribute 'src' of the derivation 'haskell-demo-<IP_ADDRESS>' at /nix/store/yvyqcarccbdcp5jvyknlbzvyck0zlxaw-source/pkgs/stdenv/generic/make-derivation.nix:185:11:
string '/nix/store/hmz9aqw86s50fbk9gac0fyvh97hjsdh7-haskell-demo-source-<IP_ADDRESS>/haskell-demo-<IP_ADDRESS>.tar.gz' cannot refer to other paths, at /nix/store/yvyqcarccbdcp5jvyknlbzvyck0zlxaw-source/lib/sources.nix:49:17

I get a different set of errors:
nix-build                                                   (master) pts/0 16:42:40
these derivations will be built:
  /nix/store/77r99pw3r6v8ywzy4mnl7qdx2d41kydi-haskell-demo-source-<IP_ADDRESS>.drv
  /nix/store/sb34fq0vb4w9ycmh8dpllhp7gax30ijj-haskell-demo-<IP_ADDRESS>.drv
building '/nix/store/77r99pw3r6v8ywzy4mnl7qdx2d41kydi-haskell-demo-source-<IP_ADDRESS>.drv'...
setupCompilerEnvironmentPhase
Build with /nix/store/n5i1zdpmk2b1s3z96649xh8f9kr3g96s-ghc-8.4.3.
ignoring (possibly broken) abi-depends field for packages
unpacking sources
unpacking source archive /nix/store/gwc85alp9s7dhlycl0p669g80ikjw0zx-Haskell-Demo
source root is Haskell-Demo
patching sources
compileBuildDriverPhase
setupCompileFlags: -package-db=/build/setup-package.conf.d -j8 -threaded
Loaded package environment from /build/Haskell-Demo/.ghc.environment.x86_64-linux-8.4.3
ghc: can't find a package database at /home/cmcdragonkai/.cabal/store/ghc-8.4.3/package.db
builder for '/nix/store/77r99pw3r6v8ywzy4mnl7qdx2d41kydi-haskell-demo-source-<IP_ADDRESS>.drv' failed with exit code 1
cannot build derivation '/nix/store/sb34fq0vb4w9ycmh8dpllhp7gax30ijj-haskell-demo-<IP_ADDRESS>.drv': 1 dependencies couldn't be built
error: build of '/nix/store/sb34fq0vb4w9ycmh8dpllhp7gax30ijj-haskell-demo-<IP_ADDRESS>.drv' failed

Is this still a concern @nzhang-zh since we are also using this in Emergence? Is this specific to this repo?

I've tested it with the new commit. It works now.


Vfs: Node names may be cut off if the contain spaces

As noted by @Elgcahlxukuth in #75 (link), Vfs nodes names parsed from .vdf-files are cut off at the first space char which breaks nodes with spaces in their names.

Hey @Elgcahlxukuth can you check that this fix also works on your end (7e447c3)?

Hey @Elgcahlxukuth can you check that this fix also works on your end (7e447c3)?

the fix is working 👍  good job!


import os could not resolve

 Environment data

Language Server version: 2022.8.50
OS and version: win32 x64
Python version (and distribution if applicable, e.g. Anaconda):
python.analysis.indexing: null
python.analysis.typeCheckingMode: off

 Code Snippet

XXX

 Repro Steps

XXX

 Expected behavior
XXX
 Actual behavior
XXX
 Logs

XXX

Thanks for the report. Unfortunately, this is not enough information for us to investigate this issue.
If this continues to be a problem, would you please reopen the issue and add the information described in the troubleshooting guide?


Match Netlify.Toml file to current Node version used by Foundation

When forking the latest commit of the gastby starter foundation, the Node version represented in the Netlify.Toml file does not match the current Node version represented in the .node-version file found in the root.
This is a simple update and I would like to be assigned this issue to resolve.

I would like to be assigned this issue please.

Sure, @TimothyBlajsa


Change Robot name in doc after #63 is fixed

Change Robot tool name (from pyluos) in Pyluos page to the new one when #63 is fixed
from pyluos import Robot

[x] #63

Fix by merging new-doc on master


Inheriting usertypes don't inherit children properties and functions

I'm not sure if this is supposed to be standard behavior, but all in my attempts to define a usertype that inherits from another usertype (or multiple) I have been unable to access properties and/or functions defined for the children usertypes when handling the parent one.
See the following example:
class A
{
    int a = 1;
    int GetA() { return a; }
}

class B
{
    int b = 2;
    int GetB() { return b; }
}

state.new_usertype<A>("A",
    "a", sol::property(&A:GetA)
);

state.new_usertype<B>("B",
    sol::base_classes, sol::bases<A>(),
    "b", sol::property(&A:GetB)
);

In lua land, having an object of type B, one would expect to be able to access all inherited properties, ie:
local obj = (... instance of B usertype ...)
do_something_with(obj.a)

However, this seems to result in the following exception:
sol: attempt to index (get) nil value "a" on userdata (bad (misspelled?) key name or does not exist)
Same applies to functions and readonly properties.

Yeah, this is what #157 is all about.

Ah, sorry. Didn't notice it was the same issue.


ansible 2.2 updates to make role work if variables are undefined

we set lustre_packages to [] by default - this task won't do anything if that is empty
skip checking or bringing up interfaces if the registered variable is not defined or the lustre_network_devices is not defined

Testing done:

syntax-check does not complain
one of io's compute nodes can run the role without any undefined errors

Perhaps you'd like to test this on your system before merging?

Thanks, looks good.


There may need a column highlight for any code file.

Hi, thanks for your all, develop the perfect IDE.  I'm a maintainer of helm/charts and daily work is focused on .yaml file.  The template language of helm charts is really difficult to debug and the format tool difficult to told you where was the issue of the charts template. So, Is there may have a  column highlight? Just like the first picture below.

My vscode picture below:

@Aisuko it appears you are already using indent guides. Perhaps your theme does not provide a color for it, but you can configure on your side:
"workbench.colorCustomizations": {
	"editorIndentGuide.activeBackground": "#ff0000"
},

Thanks a lot❤


Luasnip abandons navigation between nodes when cmp.confirm is called.

FAQ

[X] I have checked the FAQ and it didn't resolve my problem.

Announcement

[X] I have checked Breaking change announcement.

Minimal reproducible full config
local cmp = require 'cmp'
local luasnip = require 'luasnip'

local has_words_before = function()
    local line, col = unpack(vim.api.nvim_win_get_cursor(0))
    return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
end

cmp.setup({
    snippet = {
        expand = function(args)
            luasnip.lsp_expand(args.body)
        end,
    },
    mapping = cmp.mapping.preset.insert({
        ['<CR>'] = cmp.mapping.confirm({ select = true }),
        ['<C-Space>'] = cmp.mapping.complete(),

        ["<Tab>"] = cmp.mapping(function(fallback)
            if cmp.visible() then
                cmp.select_next_item()
            elseif luasnip.expand_or_jumpable() then
                luasnip.expand_or_jump()
            elseif has_words_before() then
                cmp.complete()
            else
                fallback()
            end
        end, { "i", "s" }),

        ["<S-Tab>"] = cmp.mapping(function(fallback)
            if cmp.visible() then
                cmp.select_prev_item()
            elseif luasnip.jumpable(-1) then
                luasnip.jump(-1)
            else
                fallback()
            end
        end, { "i", "s" }),

        ['<C-k>'] = cmp.mapping.scroll_docs(-4),
        ['<C-j>'] = cmp.mapping.scroll_docs(4),

        ['<C-n>'] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Select }),
        ['<C-p>'] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Select }),
    }),
}

Description
When I confirm a snippet using cmp, luasnip allows me to navigate between node. For example, when calling a function using snippet, I can navigate between the arguments.

However, I still use lsp completions when editing each arguments, and as soon as I hit <CR> which confirms the selected item, I can no longer navigate between nodes.
Steps to reproduce
Call a function as a snippet and edit one of the argument.
Expected behavior
After editing the so-called argument, I used to be able to hit <TAB> to go to the next argument.
Actual behavior
Not only I can't navigate to the next argument, but my cursor goes to the very beginning of the line.

When I hit <TAB> again, it is interpreted as a tabulation.
Additional context
I suspect that luasnip abandons the snippet as soon as I call cmp.confirm. The issue does only occur when I hit <CR> and I do not use other fancy plugins that could have overriden <CR>.

Ah, Yes., It's cmp's  bug. i'll fix it.


[WFLY-11003] Add documentation describing how to define an SSLContextfor SNI in the WildFly Elytron subsystem.

Thanks for submitting your Pull Request!
Please make sure your PR meets the following requirements:

[x] Pull Request title is properly formatted: [WFLY-XYZ] Subject or WFLY-XYZ Subject
[x] Pull Request contains link to the JIRA issue(s)

https://issues.jboss.org/browse/WFLY-11003

[x] Pull Request contains description of the issue(s)

This pull request is adding documentation for the SNI support added under PR: -
https://github.com/wildfly/wildfly-core/pull/3513

[x] Pull Request does not include fixes for issues other than the main ticket
[x] Attached commits represent units of work and are properly formatted

For bigger changes, major and minor component upgrades make sure your PR also meets following requirements:

[x] Pull Request requires a change to the documentation
[x] Documentation have been updated accordingly
[ ] Tests were added to cover changes

For new features ensure as well:

[x] Analysis was done
[ ] Test Plan has been done
[ ] Tests were verified in advance

If you are not an active contributor of the WildFly project you can request sponsorship by one of the members to help guide you through the process.

@jamezp Can you please remove the 'rebase-this' label - this one is ready to go in.

I killed the CI jobs since it's only a doc change.


add ssh protocol support

This can be quite useful (one launcher handling all common protocols). Thanks for the great work.

This is a good idea. I have thought about it too.


Added 'access' subcommand and associated unit tests

Completes: https://issues.redhat.com/browse/OSD-12757

Adds break-glass and break-glass cleanup subcommands to the osdctl cluster command.

break-glass takes a single cluster-identifier argument, which is used to evaluate the cluster type and execute the appropriate procedure to grant the user emergency access to the cluster. Users must be logged onto the cluster's hive shard for this command to function properly.
For PrivateLink clusters, a temporary pod is spun up in the cluster's namespace on hive. These pods are configured to expire after 8 hours, however they can be terminated immediately using the break-glass cleanup subcommand.
For non-PrivateLink clusters, the Kubeconfig is retrieved from hive, saved to the local tmp filesystem, and the user is prompted as to whether they would like to spawn a new terminal using the Kubeconfig. It is the responsibility of the SRE calling this command to delete the Kubeconfig file when finished.
In all cases, the user is prompted to elevate permissions if they have not impersonated the correct user using the global --as flag.

break-glass cleanup takes a single cluster-identifier argument, which is used to evaluate the type of cluster who's access is being dropped, and execute the appropriate procedure to do so. For PrivateLink clusters, users must be logged into the cluster's hive shard for this command to function properly. For non-PrivateLink clusters, this command acts as a glorified unset KUBECONFIG.

@tnierman - Looks good! Do you mind updating the PR description?

/lgtm
/approve

/honk


[QUESTION] Middleware binding on graphql requests?

[x] I've read the docs of nestjs-pino
[x] I've read the docs of pino
[x] I couldn't find the same question about nestjs-pino
Question
I saw it mentioned in this issue  that the module should work on graphql requests, however, as far as I can tell, middleware applied via MiddlewareConsumer is not executed when using the nestjs/graphql module. While the logger will work, there is no instance bound to the request from asynclocalstorage, and using the assign method result in an error being thrown.
Is my understanding incorrect? Does something special need to be done to get this functional on graphql requests? I'm thinking the bindLoggerMiddleware needs to be exposed so it can be bound by the graphql context.
Please mention other relevant information such as Node.js version and Operating System.
n/a

To work around this I have created the following:
logger.middleware.ts
import { PinoLogger } from 'nestjs-pino';
import { storage, Store } from 'nestjs-pino/storage';
import { pinoHttp } from 'pino-http';

export function loggerMiddleware(pinoHttpConfig) {
  return (req, res, next) => {
    const pinoMw = pinoHttp(pinoHttpConfig as any);
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-ignore
    PinoLogger.root = pinoMw.logger;
    pinoMw(req, res, () => {
      storage.run(new Store(req.log), () => {
        next();
      });
    });
  };
}

Then used in main.ts as app.use(loggerMiddleware(myPinoHttpConfig).
This is working, however, the middleware is now double bound on http controller requests therefore creating duplicate log entries. It would be great if there was a way to disable the middleware registration and expose it instead to main.ts to be bound there for those that use graphql.

Adding exclude: ['/(.*)'] to the module config effectively disabled the middleware and the double logging, however, this feels very hacky. Looking forward to your suggestion on how to better implement nestjs-pino for use in a graphql environment.

Just checked this on my current project. It works, there is request data in logs:
[2022-01-22T19:06:13.270Z] INFO (83538 on ...): foo bar baz
    context: "UserResolver"
    req: {
      "id": 2,
      "method": "POST",
      "url": "/graphql",
      "query": {},
      "params": {
        "0": "graphql"
      },
      "headers": {
        "host": "localhost:5000",
        "cookie": "sid=...",
        "origin": "electron://altair",
        "user-agent": "Mozilla/5.0 ..."
      },
      "session": {
        "user": null
      }
    }

You can try to change the order of your modules. Logger module should stand before graphql module. Closing, but feel free to ask more questions if you have any

My logger module is imported before the graphql module.
@Module({
  imports: [
    HealthModule,
    AuthModule,
    CacheModule,
    CqrsModule,
    TracingModule,
    LoggerModule,
    ConfigModule.forRoot({
      load: [AppConfig],
      cache: true,
    }),
    GraphqlModule,
    ...
    ```
Are you using @nestjs/graphql?

My comment about MiddlewareConsumer not being compatible was based on this conversation  and the behavior I observed.

For reference, this is the contents of LoggerModule:
import { Global, Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { LoggerModule as PinoModule } from 'nestjs-pino';
import LoggerConfig from<EMAIL_ADDRESS>
@Global()
@Module({
  imports: [
    ConfigModule.forFeature(LoggerConfig),
    PinoModule.forRootAsync({
      imports: [ConfigModule],
      useFactory: (config: ConfigService) => config.get('logger').pino,
      inject: [ConfigService],
    }),
  ],
})
export class LoggerModule {}

and GraphqlModule
import { Module } from '@nestjs/common';
import { GraphQLModule } from '@nestjs/graphql';
import { DataloaderModule } from<EMAIL_ADDRESS>import { DataloaderService } from<EMAIL_ADDRESS>import { AuthFieldMiddleware } from '@app/modules/auth';
import { GqlModuleOptions } from<EMAIL_ADDRESS>import { ConfigModule, ConfigService } from '@nestjs/config';
import AppConfig from '../../app.config';

@Module({
  imports: [
    GraphQLModule.forRootAsync({
      imports: [DataloaderModule, ConfigModule.forFeature(AppConfig)],
      inject: [DataloaderService, ConfigService],
      useFactory: (
        dataloaderService: DataloaderService,
        config: ConfigService,
      ): GqlModuleOptions => ({
        autoSchemaFile: true,
        sortSchema: true,
        cors: config.get('app').cors,
        bodyParserConfig: false, //needs to be disabled per Mikro Orm docs: https://mikro-orm.io/docs/usage-with-nestjs/#request-scoping-when-using-graphql
        buildSchemaOptions: {
          fieldMiddleware: [AuthFieldMiddleware],
        },

        context: ({ req, res, payload, connection }) => ({
          req,
          res,
          payload,
          connection,
          loaders: dataloaderService.createLoaders(),
        }),
      }),
    }),
  ],
  providers: [],
  exports: [GraphQLModule],
})
export class GraphqlModule {}

Are you using @nestjs/graphql?

yes
import { Logger } from '@nestjs/common';
import { Context, Query, Resolver } from '@nestjs/graphql';

@Resolver(() => UserDTO)
export class UserResolver {
  private readonly logger = new Logger(UserResolver.name);

maybe as a first step just try to change the js sources in npm of pino-logger and graphql modules to check in which order they are applied. As your root wrapper modules import target modules it's simply could be disordered, as nestjs has no warranty on modules' middleware order. Or you can just try to move the logger's module as the first imported module without any wrappers 🤷♂

Ok thanks for your help. If the MiddlewareConsumer should work with @nestjs/graphql, that gives me something to work with.

@julestruong if you need such info you have to use plugins. Here is the reference from my current project:
import { Logger } from '@nestjs/common';
import { Plugin } from '@nestjs/graphql';
import { GraphQLRequestContext } from 'apollo-server-core';
import {
  ApolloServerPlugin,
  GraphQLRequestListener,
  GraphQLRequestContextDidEncounterErrors,
} from 'apollo-server-plugin-base';

@Plugin()
export class GraphQLLogger implements ApolloServerPlugin {
  private readonly logger = new Logger(GraphQLLogger.name);

  async requestDidStart(
    startCtx: GraphQLRequestContext,
  ): Promise<GraphQLRequestListener> {
    return new Listener(
      {
        query: startCtx.request.query,
        operationName: startCtx.request.operationName,
      },
      this.logger,
      // bad bad bad bad typings in lib
    ) as unknown as GraphQLRequestListener;
  }
}

class Listener<T = unknown>
  // bad bad bad bad typings in lib
  implements
    Pick<GraphQLRequestListener<T>, 'didEncounterErrors' | 'willSendResponse'>
{
  private readonly start: number;

  constructor(
    private readonly logData: Record<string, unknown>,
    private readonly logger: Logger,
  ) {
    this.start = Date.now();
  }

  async didEncounterErrors(
    errorsCtx: GraphQLRequestContextDidEncounterErrors<T>,
  ): Promise<void> {
    this.logData.errors = errorsCtx.errors;
  }

  async willSendResponse(): Promise<void> {
    this.logger.log(
      {
        graphql: this.logData,
        responseTime: Date.now() - this.start,
      },
      this.logData.errors ? 'request errored' : 'request completed',
    );
  }
}

also I recommend add to config:
  autoLogging: {
    ignorePaths: [
      // ...

      '/graphql',
    ],
  },

Thx for the implementation, can you tell me more about why you recommend to ignore autologging for graphql ?

@julestruong current plugin will work pretty the same as autologging, but with your custom data. It's just to prevent log duplication, but it's up to you

Just checked this on my current project. It works, there is request data in logs:
[2022-01-22T19:06:13.270Z] INFO (83538 on ...): foo bar baz
    context: "UserResolver"
    req: {
      "id": 2,
      "method": "POST",
      "url": "/graphql",
      "query": {},
      "params": {
        "0": "graphql"
      },
      "headers": {
        "host": "localhost:5000",
        "cookie": "sid=...",
        "origin": "electron://altair",
        "user-agent": "Mozilla/5.0 ..."
      },
      "session": {
        "user": null
      }
    }

You can try to change the order of your modules. Logger module should stand before graphql module. Closing, but feel free to ask more questions if you have any

Can you add sample code with graphql, it took me a day to solve this problem, i tried some solutions above but its not working as expected.
I got error when trying to use logger.assign and logger middleware solution but req as res wasn't attached to result just {"level":"info","time":1651615898827,"pid":48107,"hostname":"kin","context":"RoleResolver"}

@kerituni12 answered in #936

@iamolegga an example will be very useful

@rubiin sure. I think it's not so hard to add it based on the comment above

pinoHttpConfig

pinoHttpConfig can you share its value as well

Ok thanks for your help. If the MiddlewareConsumer should work with @nestjs/graphql, that gives me something to work with.

Hey, sorry to reply at a question that has been closed for such long time, but I am facing the same issue and ended up here 😅 .
Using the approach you mentioned here worked, but I was wondering if you found a better solution.
Between, thanks @iamolegga for this amazing logger for NestJS!


Plumb through a base_dir everywhere to facilitate composition and testing; add first store test

Not super happy yet with the overall decomp, but I think this goes in the right direction:

all methods that read or write from disk are now relative to a base directory
in the CLI, the base directory is . (ie, yielding the same behavior as before)
in tests, we can set a custom base_dir

Main thing that's still a bit weird is that we create a bunch of PackageStore instances ad hoc in a few places. I would suggest tackling this in a follow-up, because this is already quite large.

I honestly think we should not make the package store object oriented and use snapbox for testing that does IO similar to cargo. Unit tests should never do stateful things / be dependent on the system state (its an antipattern in my personal opinion)
The testing plan for the cli was to mimic cargos testing setup and use unit test only for pure types / areas of the project

Imo testability should not degrade readability / add complexity
Have you had a look at cargos testsuite yet?

I haven't look at the cargo tests, no. snapbox isn't particular approach, the documentation examples are not self-contained and snapbox itself is practically untested... maybe a bit strange for a testing framework?
Ultimately, I think you need to decide how you would like to test buffrs in this repo, I primarily care that we have non-trivial test coverage. Personally, I find code a lot more easy to (re-)use (and test!) when it doesn't make deep assumptions about environment concerns such as env vars or working directory.

I agree with your testability concerns but removing those assumptions does add the complexity im trying to keep as low as possible
I personally would want to add an E2E testsuite which asserts the cli (thus compiled binary) stdout / stderr output and modifications to the filesystem and keep internals as flexible as possible for now as the code base has not stabilized – does that approach sound feasible to you?

Snapbox is not a fixed choice, there are a lot of similar libraries like assert_cmd + predicates
See https://rust-cli.github.io/book/tutorial/testing.html for reference

The guide I referenced basically splits testing into "business logic" and "fs/io" tests, the former are implemented as unit tests and the later as e2e tests

I agree with your testability concerns but removing those assumptions does add the complexity im trying to keep as low as possible
I personally would want to add an E2E testsuite which asserts the cli (thus compiled binary) stdout / stderr output and modifications to the filesystem and keep internals as flexible as possible for now as the code base has not stabilized – does that approach sound feasible to you?
Snapbox is not a fixed choice, there are a lot of similar libraries like assert_cmd + predicates
See https://rust-cli.github.io/book/tutorial/testing.html for reference

If the testing framework is good, then yes, this is of course a feasible setup. As a litmus test, I would hope that simple tests are <10LOC.

Won't do.


CUDA out of memory PROBLEM SOLUTION

Reason of this issue in really big models, which are more than 60GB. So diffusers tries to put all of them to GPU VRAM.
Now there are couple ways to fix it.
First one is to add this line of code to your script:
pipe.enable_sequential_cpu_offload()

You will now be able start your scripts, bit it will be kinda slow.
Second way is to quantize your models. Here I write the examples of code for different ways of using with different models:
# This one is for using with Flux.1-dev for generating images
import torch
from diffusers import FluxTransformer2DModel, FluxPipeline

model_id = "black-forest-labs/FLUX.1-dev"
nf4_id = "sayakpaul/flux.1-dev-nf4-with-bnb-integration"
model_nf4 = FluxTransformer2DModel.from_pretrained(nf4_id, torch_dtype=torch.bfloat16)
print(model_nf4.dtype)
print(model_nf4.config.quantization_config)

pipe = FluxPipeline.from_pretrained(model_id, transformer=model_nf4, torch_dtype=torch.bfloat16)
pipe.enable_model_cpu_offload()

prompt = "A mystic cat with a sign that says hello world!"
image = pipe(prompt, guidance_scale=3.5, num_inference_steps=50, generator=torch.manual_seed(0)).images[0]
image.save("flux-nf4-dev-loaded.png")

# this one for upscaling images with jasperai/Flux.1-dev-Controlnet-Upscaler
import torch
from diffusers.utils import load_image
from diffusers import FluxControlNetModel, BitsAndBytesConfig, FluxTransformer2DModel
from diffusers.pipelines import FluxControlNetPipeline

nf4_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.float16
)

controlnet = FluxControlNetModel.from_pretrained(
    "jasperai/Flux.1-dev-Controlnet-Upscaler",
    quantization_config=nf4_config,
)

model_id = "black-forest-labs/FLUX.1-dev"
nf4_id = "sayakpaul/flux.1-dev-nf4-with-bnb-integration"
model_nf4 = FluxTransformer2DModel.from_pretrained(nf4_id, torch_dtype=torch.float16)

pipe = FluxControlNetPipeline.from_pretrained(
    model_id,
    transformer=model_nf4,
    torch_dtype=torch.float16,
    controlnet=controlnet
)
pipe.enable_model_cpu_offload()

control_image = load_image(
    "image.jpg"
)

image = pipe(
    prompt="",
    control_image=control_image,
    controlnet_conditioning_scale=0.6,
    num_inference_steps=28,
    guidance_scale=3.5,
    height=control_image.size[1],
    width=control_image.size[0]
).images[0]
image.save("upscaled_img_quanted.png")

For this solutions we must to say thank you to @sayakpaul

Hi, @VadimPoliakov I am using A10 GPU 48 VRAM in run pod which is ample for the flux model it is running smoothly in jupyter notebook. But while deployment with fastapi I am getting issue of cuda out of memory issue. This issue is with also for quantized model. Any help would be appreciated. Thanks! cc @sayakpaul

Hi. I`m not sure. But it seems like problem with simultaneously proccessing more than 1 images. Try to use queues for that.

No ,the problem is with when you stage your deployment,  instead of  starting an API gives out cuda memory issue .

No ,the problem is with when you stage your deployment, instead of starting an API gives out cuda memory issue .

If you start on several workers, it means several times diffusers tries to put all models to GPU VRAM. Make the separate service not FastAPI with queues with no workers. And in your FastAPI service just use this service.

Thanks bro! For the help.

not run
on colab t4

import torch
from diffusers import FluxTransformer2DModel, FluxPipeline
model_id = "black-forest-labs/FLUX.1-dev"
nf4_id = "sayakpaul/flux.1-dev-nf4-with-bnb-integration"
model_nf4 = FluxTransformer2DModel.from_pretrained(nf4_id, torch_dtype=torch.bfloat16)
print(model_nf4.dtype)
print(model_nf4.config.quantization_config)
pipe = FluxPipeline.from_pretrained(model_id, transformer=model_nf4, torch_dtype=torch.bfloat16)
#pipe.enable_model_cpu_offload()
#pipe.enable_sequential_cpu_offload()
prompt = "A mystic cat with a sign that says hello world!"
image = pipe(prompt, guidance_scale=3.5, num_inference_steps=3, generator=torch.manual_seed(0)).images[0]
image.save("flux-nf4-dev-loaded.png")
/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_auth.py:94: UserWarning:
The secret HF_TOKEN does not exist in your Colab secrets.
To authenticate with the Hugging Face Hub, create a token in your settings tab (https://huggingface.co/settings/tokens), set it as secret in your Google Colab and restart your session.
You will be able to reuse this secret in all of your notebooks.
Please note that authentication is recommended but still optional to access public models or datasets.
warnings.warn(
Unused kwargs: ['_load_in_4bit', '_load_in_8bit', 'quant_method']. These kwargs are not used in <class 'diffusers.quantizers.quantization_config.BitsAndBytesConfig'>.
torch.uint8
BitsAndBytesConfig {
"_load_in_4bit": true,
"_load_in_8bit": false,
"bnb_4bit_compute_dtype": "bfloat16",
"bnb_4bit_quant_storage": "uint8",
"bnb_4bit_quant_type": "nf4",
"bnb_4bit_use_double_quant": false,
"llm_int8_enable_fp32_cpu_offload": false,
"llm_int8_has_fp16_weight": false,
"llm_int8_skip_modules": null,
"llm_int8_threshold": 6.0,
"load_in_4bit": true,
"load_in_8bit": false,
"quant_method": "bitsandbytes"
}
Loading pipeline components...: 100%
 7/7 [00:02<00:00,  3.02it/s]
Loading checkpoint shards: 100%
 2/2 [00:01<00:00,  1.69it/s]
You set add_prefix_space. The tokenizer needs t
Executing (22m 1s)
Still working

just create your token on Hugginface
how?????

my  Access Tokens
??????

Reason of this issue in really big models, which are more than 60GB. So diffusers tries to put all of them to GPU VRAM. Now there are couple ways to fix it.
First one is to add this line of code to your script:
pipe.enable_sequential_cpu_offload()

You will now be able start your scripts, bit it will be kinda slow.
Second way is to quantize your models. Here I write the examples of code for different ways of using with different models:
# This one is for using with Flux.1-dev for generating images
import torch
from diffusers import FluxTransformer2DModel, FluxPipeline

model_id = "black-forest-labs/FLUX.1-dev"
nf4_id = "sayakpaul/flux.1-dev-nf4-with-bnb-integration"
model_nf4 = FluxTransformer2DModel.from_pretrained(nf4_id, torch_dtype=torch.bfloat16)
print(model_nf4.dtype)
print(model_nf4.config.quantization_config)

pipe = FluxPipeline.from_pretrained(model_id, transformer=model_nf4, torch_dtype=torch.bfloat16)
pipe.enable_model_cpu_offload()

prompt = "A mystic cat with a sign that says hello world!"
image = pipe(prompt, guidance_scale=3.5, num_inference_steps=50, generator=torch.manual_seed(0)).images[0]
image.save("flux-nf4-dev-loaded.png")

# this one for upscaling images with jasperai/Flux.1-dev-Controlnet-Upscaler
import torch
from diffusers.utils import load_image
from diffusers import FluxControlNetModel, BitsAndBytesConfig, FluxTransformer2DModel
from diffusers.pipelines import FluxControlNetPipeline

nf4_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.float16
)

controlnet = FluxControlNetModel.from_pretrained(
    "jasperai/Flux.1-dev-Controlnet-Upscaler",
    quantization_config=nf4_config,
)

model_id = "black-forest-labs/FLUX.1-dev"
nf4_id = "sayakpaul/flux.1-dev-nf4-with-bnb-integration"
model_nf4 = FluxTransformer2DModel.from_pretrained(nf4_id, torch_dtype=torch.float16)

pipe = FluxControlNetPipeline.from_pretrained(
    model_id,
    transformer=model_nf4,
    torch_dtype=torch.float16,
    controlnet=controlnet
)
pipe.enable_model_cpu_offload()

control_image = load_image(
    "image.jpg"
)

image = pipe(
    prompt="",
    control_image=control_image,
    controlnet_conditioning_scale=0.6,
    num_inference_steps=28,
    guidance_scale=3.5,
    height=control_image.size[1],
    width=control_image.size[0]
).images[0]
image.save("upscaled_img_quanted.png")

For this solutions we must to say thank you to @sayakpaul

This solution does not fit 24GB VRAM in my case (controlnet version), what is your hardware for that?

@Oguzhanercan My hardware is nvidia 3090 with 24GB VRAM. When you use controlnet, this model has to be quantized too, how its described in solution.

@VadimPoliakov I could not quantize the controlnet for some reasons that I cannot remember right now, so I  used sequential offload to reduce memory usage. Thanks for reply


[codelab] GitHub 404 Error node-sass v4.9.0

https://github.com/sass/node-sass/releases/download/v4.9.0/darwin-x64-67_binding.node does not exist anymore. I am wondering if there is a way to get that link updated so that I can install things properly to go through the tutorials that you have on the website.

Thank you for working on this so quickly and for being able to find out the issue. What steps do I need to take to update what I have on my local system?

If you cloned the repository, you should be able to run git pull and then re-run npm i in each starter/complete folder. If you downloaded it as a zip, download it again from master.

Thank you again. Made it through all of the modules.
John Holman
On Fri, Feb 1, 2019 at 7:42 AM Kenneth G. Franqueiro <
<EMAIL_ADDRESS>wrote:

If you cloned the repository, you should be able to run git pull and then
re-run npm i in each starter/complete folder. If you downloaded it as a
zip, download it again from master.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/material-components/material-components-web-codelabs/issues/81#issuecomment-459765076,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ArXFXhRXs1b5L5iD0bIZjEhyUEwOIxMuks5vJGB7gaJpZM4adCmQ
.


Remove all localization assemblies from output

FlientValidation make my deploy folder as trash. It not good

So remove the ones that you don't want then.


Add KVO support for array move and exchange

This were added to RLMArray after KVO was finished but before it was merged, and naturally didn't produce any merge conflicts, so they were missed.

:+1:

:+1:


Remove $host fixes

Hello all.
I have a problem. You know - browsers are not so clever. If you write a link with . at the end (ex github.com.) you'll have problems. It can be...anything. Not working cookie, missed link, e.t.c. Nginx (and Tengine) corrects $host and remove bugs from it. So when i try to use return 301 or rewrite it don't works. Because configs don't see '.' at the end.
My please is to do a config value:
correct_uri_path on/off;
Thanks in advance,
Alex.

Can you use the variable $http_host instead? It could be exactly the same host name in the http header. You can rediect the wrong host request like this:
location / {
    if ($http_host ~ "\.(:\d+)?$") {
        return 301 http://$host/;
    }
}

It works like a charm, thanks.
How do you think - it is fine for most workloads to redirect all GET and HEAD requests with dot at the end to request without dot? For example "domain.com/image.jpg." redirect to "domain.com/image.jpg"?
If yes, can you give most correct (from nginx prespective) and performant code to realize that?


torch2 updt with hf fixes

Revert "Revert "Torch2"
Add fixes so HF is happy
re-torch2+
cc @sashaDoubov @dskhudia

All tests pass


chore(login): Remove warning message about new core

is there a way to have this warning as component, and reuse it with different text? Does it make sense? @WikiRik @serge1peshcoff

For this use or just in general for the warning boxes that we have in MyAEGEE?

for uses in general, where we may need to tell user a certain something

:tada: This PR is included in version 1.11.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

also why did the release-bot start only 40 minutes ago if it was merged before?

@linuxbandit chores do not count for semver so are also handled by release-bot until a new version is being made. Then it will include that message on all chores that were also done in the new version (mostly dependencies)


Unsuccessfully creating a component still creates a component

For example, creating a mesh from a file which does not exist creates a half made component, despite throwing an exception. The corrupt component must be deleted before it can be allocated again

This was corrected by adding a try catch inside Create functions in C++, deleting the component on the catch and throwing the exception on.


Reading system status (heating/cooling vs. idle)

System Health details
Let me start by apologizing for using "bug report" in order to ask this question.  The sequences need to be triggered only when the system is actively heating or cooling as opposed to merely being idle. So far, I have not figured out what this condition should look like. Any suggestions please? What HA "entity" is relevant here?
Checklist

[X] I have enabled debug logging for my installation.
[X] I have filled out the issue template to the best of my ability.
[X] This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
[X] This issue is not a duplicate issue of currently previous issues..

Describe the issue
See above.
Reproduction steps

see above

Debug logs
see above

Diagnostics dump
No response

I finally figured it out. This is where it's been hiding:


updates label column validation to account for regression task type

@mturk24 ran into a bug where creating a regression project with a specified label_column would throw an error for valid target columns because they weren't categorical type.
This checks the column's appropriateness correctly.
Relies on this backend PR to work: https://github.com/cleanlab/cleanlab-studio-backend/pull/1317

closing; context is here https://github.com/cleanlab/cleanlab-studio-docs/pull/367


Migrate to AndroidX, upgrade libraries, general cleanup

As per https://github.com/cymcsg/UltimateRecyclerView/issues/496, this PR:

Updates the library to use AndroidX

And in addition:

Does some general clean up
Update Gradle version
Update SDK version to 28
Update various library versions
Update ultimaterecyclerview library version to 0.8.0 (since the API does technically change)
Update sample app version
Update README with new library version number

Although it looks like an intimidating PR with many changes, most of them are just migrating import statements

Thanks @vanshg . Could you PR to dev branch instead of master branch? Then I will merge the dev branch into master.

Sure thing @cymcsg

@cymcsg I have resubmitted the PR with target branch set to dev https://github.com/cymcsg/UltimateRecyclerView/pull/498


can not install vcflib

After make command.
The error message:
g++ -O3 -D_FILE_OFFSET_BITS=64 -c Fasta.cpp
Fasta.cpp: In member function ‘std::string FastaReference::getSequence(std::string)’:
Fasta.cpp:254:43: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
fread(seq, sizeof(char), seqlen, file);
^
Fasta.cpp: In member function ‘std::string FastaReference::getSubSequence(std::string, int, int)’:
Fasta.cpp:301:51: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
fread(seq, sizeof(char), (off_t) seqlen, file);
^
g++ -O3 -D_FILE_OFFSET_BITS=64 -c split.cpp
g++ -O3 -D_FILE_OFFSET_BITS=64 -c disorder.c
g++ -O3 -D_FILE_OFFSET_BITS=64 Fasta.o FastaHack.cpp split.o disorder.o -o fastahack
make[1]: Leaving directory /home/steven/soft/vcflib/fastahack' g++ -O3 -D_FILE_OFFSET_BITS=64 -std=c++0x -DVERSION=\"v1.0.0-rc0-163-g9aba\"   -c -o smithwaterman/disorder.o smithwaterman/disorder.cpp cc    -c -o src/ssw.o src/ssw.c g++ -O3 -D_FILE_OFFSET_BITS=64 -std=c++0x -DVERSION=\"v1.0.0-rc0-163-g9aba\"   -c -o src/ssw_cpp.o src/ssw_cpp.cpp ar rs libvcflib.a src/Variant.o src/rnglib.o src/var.o src/pdflib.o src/cdflib.o src/split.o smithwaterman/sw.o fastahack/Fasta.o src/ssw.o src/ssw_cpp.o filevercmp/filevercmp.o tabixpp/tabix.o ar: creating libvcflib.a cp libvcflib.a lib cd intervaltree && make && cp *.h* /home/steven/soft/vcflib/include/ make[1]: Entering directory /home/steven/soft/vcflib/intervaltree'
g++ -Wall interval_tree_test.cpp -o interval_tree_test -std=c++0x
make[1]: Leaving directory `/home/steven/soft/vcflib/intervaltree'
g++ src/vcfecho.cpp -o bin/vcfecho -Itabixpp/htslib -Iinclude -L. -Ltabixpp/htslib -Llib -lvcflib -lhts -lpthread -lz -lm -O3 -D_FILE_OFFSET_BITS=64 -std=c++0x -DVERSION="v1.0.0-rc0-163-g9aba"
g++ src/dumpContigsFromHeader.cpp -o bin/dumpContigsFromHeader -Itabixpp/htslib -Iinclude -L. -Ltabixpp/htslib -Llib -lvcflib -lhts -lpthread -lz -lm -O3 -D_FILE_OFFSET_BITS=64 -std=c++0x -DVERSION="v1.0.0-rc0-163-g9aba"
src/dumpContigsFromHeader.cpp:11:17: error: ‘vcf’ is not a namespace-name
using namespace vcf;
^
src/dumpContigsFromHeader.cpp:11:20: error: expected namespace-name before ‘;’ token
using namespace vcf;
^
src/dumpContigsFromHeader.cpp: In function ‘int main(int, char**)’:
src/dumpContigsFromHeader.cpp:17:3: error: ‘VariantCallFile’ was not declared in this scope
VariantCallFile variantFile;
^
src/dumpContigsFromHeader.cpp:17:3: note: suggested alternative:
In file included from src/dumpContigsFromHeader.cpp:1:0:
src/Variant.h:54:7: note:   ‘vcflib::VariantCallFile’
class VariantCallFile {
^
src/dumpContigsFromHeader.cpp:17:19: error: expected ‘;’ before ‘variantFile’
VariantCallFile variantFile;
^
src/dumpContigsFromHeader.cpp:19:3: error: ‘variantFile’ was not declared in this scope
variantFile.open(filename);
^
make: *** [bin/dumpContigsFromHeader] Error 1

looking into it.

You decided to rename namespace vcf into vcflib, but in many *.cpp files vcf is still used. Don't you try to compile the whole thing after each commit?

After I renamed vcf to vcflib, the compilation fails because optind is not defined. I fixed this by including #include <getopt.h>

@NikTuzov thank you for your time.  My pull request generated these issues.  The Travis-CI build test was in my pull request, but it requires that @ekg adds the repo to his Travis-CI.  I'm almost done fixing the build bugs.  Can you tell me which file requires getopt.h?

The repo is building.  I was unable to generate the "optind" error.  @NikTuzov please let me know the specifics of that bug and I will fix it.

I had to include getopt.h in vcfhetcount.cpp.

@NikTuzov Thanks again.


Bug: Displaying incorrect element sizes on the post overlay page after changing the window size (height)

Fixed by 6c57e85 commit


gitbutler: init at 0.12.2

Description of changes
https://gitbutler.com/
Closes #288567
This is meant to be an alternative to #289664, with some improvements being:

Adopting the new pnpm tooling from #290715
Tauri's native bundles are used to reduce maintainer overhead
The project is contained in a single derivation, simplifying things
Updating to the latest release
Applying multiple suggestions from the previous PR

cc @hacker1024 as the author of the previous PR, @SuperSandro2000 as the one who suggested the move to the new pnpm tooling
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 318101 run on aarch64-darwin 1

1 package built:

gitbutler

Works fine on aarch64-darwin.

Does this still need to replace the libayatana-appindicator library as was done here?

doesn't seem like it, no. fairly certain this is something to do with newer versions of tauri - i noticed it in modrinth-app as well


Missing file: cmsis_tiarmclang.h

File cmsis_tiarmclang.h is missing. (Assume it's meant to be the m-profile/cmsis_tiarmclang_m.h)
Included from cmsis_compiler.h:
/*
 * TI Arm Clang Compiler (tiarmclang)
 */
#elif defined (__ti__)
  #include "cmsis_tiarmclang.h"

Thanks for pointing this out. I guess this was an oversight.
The file should be this one: https://github.com/ARM-software/CMSIS_5/blob/develop/CMSIS/Core/Include/cmsis_tiarmclang.h
Could you verify that this file would work for you? And if yes, consider re-adding this via Pull-Request.


Schedule Editor: Save to manifest functionality

Allows the Schedule Editor component to save to its own manifest
Will save every property in _this -- which is, if defaults haven't been overwritten, those defaults will be saved upwards, too.

Defaults will be saved upwards
^---- this is a point worth discussing! This makes sense if we want to say that the defaults at the time of component creation should be locked-in, regardless of future default changes to those properties. But that's not a foregone conclusion and it's neither the most efficient in terms of storage space. I'm on the fence about this, but let's say, 60% in favour of saving defaults up the way this is doing it.
License
I confirm that this contribution is made under the terms of the MIT license and that I have the authority necessary to make this contribution on behalf of its copyright owner.

Huge thanks to @pooja169usp for getting the API changes in place to support self-referential manifest saves!


Add a "Dashboard" label for logo link in the main nav for screen reader users

This change adds a "Dashboard" label to the main nav’s "logo link" for screen reader users:

Up until now, for screen reader users, this link was announced as "Wagtail v2.x.y", which doesn't convey that the link takes you to the dashboard. This PR removes the title with the version number and adds an aria-label, so screen reader users have the same link label as what gets displayed on mobile viewports: "Dashboard".
I had also considered leaving the title as-is and just adding aria-label on top, but then some screen readers would announce the link as "link, Dashboard Wagtail v2.x.y", which isn't of much help.
I've updated the issue template to point users at the version number written in the Settings menu, rather than hovering Wagtail. This is also good because you could only access the version in title with a mouse, whereas the one under Settings is accessible with the keyboard and touch screens too.

Tested in macOS 10.14.4 with latest Chrome & Safari with VoiceOver, and iOS 12.3 Safari with VoiceOver. I think that's enough for cross-browser tests considering the change.

I couldn't find the version in the settings menu, until I realised that it was mostly concealed by the status bar in my browser (Chrome, OS X) -

but this is still an improvement and we can address the positioning in a separate PR if anyone thinks it's worth it. Thanks @thibaudcolas!

Ah good point @tomdyson, this is because focus is still on the "Settings" menu item, so Chrome displays its target of '#'. There is no good reason to use an a tag with href="#" for this, I'll add a note to change this as part of #5337.

@thibaudcolas Just encountered an annoying edge case with the version number label, unfortunately... one of our sites has a very long settings menu that exceeds the height of the window, and the version number scrolls along with the menu, permanently obscuring one of the menu items:

Never mind, didn't realise that's been there forever... :-)

👌 that probably warrants its own issue! I've noticed this as well when navigating sites in a few viewports.


Random Thread Sampling on Wall Profiling

Can a random sampling capacity (such as the datadog) be added to wall collector and an interface be added to obtain the sampling frequency?

If you would like to contribute a new async-profiler feature, I suggest you first describe the problem, provide real-life examples on how the proposed feature addresses this problem, and outline the implementation approach.

The current wall profile sends SIGVTALRM signals to all threads. Even if the minimum interval is limited, the CPU usage increases too high.
I see that Datadog uses a pool sampling algorithm to signal only some threads. However, such data is incomplete. To ensure that the data conforms to the actual situation as much as possible, the random rate can be reported at the same time to facilitate the user to calculate the expected value.

If the problem you're concerned about is the high overhead of wall-clock sampling with many threads, I have a better idea on how to deal with that. It'll be likely implemented in one of the next versions. Otherwise, I'm open to proposals, bug reports, contributions and pull requests.