adaptive cluster doesn't scale down properly

I have a bunch of tasks, I ask for a SLURMCluster that's adaptive between 1-200 workers.  Occasionally one job will take really long.  I think adaptive should be aware that there's only n tasks left, and that it should only need n workers.  However instead dask keeps submitting to my scheduler (see the image below) and then the workers start, and immediately die because there's no jobs for them.
https://github.com/dask/distributed/issues/2329 Seems related, but it looks like jobqueue has its own adaptive implementation, so i'm not sure if that would fix anything

This seems definitely linked to https://github.com/dask/distributed/issues/2329.
Currently, dask-jobqueue still relies on distributed.deploy.adaptive, it's just separated from distributed.deploy.cluster. It may change in the future, but for the time being, if you can try the PR associated to the distributed issue, that should fix this irritating problem!

@guillaumeeb I've been using that since you suggested it, and I think that's not the problem.
The problem -- in my opinion --  is that jobqueue workers should be valued higher than simple dask-distributed workers.  In its current implementation submissions / cancellations are constantly made to the scheduler, but scheduler time valuable and slow to start, so it shouldn't just be stopped whenever it isn't using it.
On my scheduler (slurm) here's (see below) a few lines of random debugging code that I threw in around distributed and jobqueue.
In a few loops, which happen very quickly, the scheduler is scaled down from 15 -> 7, and then up to 15-> and then down to 11.
I think this is slightly due to the line in get_scale_up_kwargs (in distributed/deploy/adaptive)
target = math.ceil(self.scheduler.total_occupancy /self.target_duration)

the problem is (i think) twofold (please correct me if necessary):

target_duration (set by distributed/deploy/adaptive) is per-scheduler(Client) rather than on a per-submit(task) so if you have long / short jobs you're hurt
total_occupancy seems to vary a lot,  what's that?

A possible solution, jobqeue workers should be to have workers 'almost unkillable' until they have accumulated a certain amount of time of having no tasks.
scale up kwargs: 15 len workers 2 min 0
scale up kwargs instance: 15
inst max: 15 40
scaling up? {'status': 'up'} {'n': 15}
scale up kwargs: 15 len workers 2 min 0
scale up kwargs instance: 15
inst max: 15 40
adapt sending up! {'n': 15}
should scale up = false
should scale up False
workers to close p set()
needs cpu/mem True False
should scale up True
workers to close p set()
scale up kwargs: 7 len workers 2 min 0
scale up kwargs instance: 7
inst max: 7 40
scaling up? {'status': 'up'} {'n': 7}
scale up kwargs: 7 len workers 2 min 0
scale up kwargs instance: 7
inst max: 7 40
adapt sending up! {'n': 7}
in scale up found ntc < count_pend
act and pend 15 n 7 ntc 8 pending 14
Stopping jobs: %s ['40903832', '40903833', '40903834', '40903835', '40903836', '40903837']
should scale up = false
should scale up False
workers to close p set()
needs cpu/mem True False
should scale up True
workers to close p set()
scale up kwargs: 15 len workers 8 min 0
scale up kwargs instance: 15
inst max: 15 40
scaling up? {'status': 'up'} {'n': 15}
scale up kwargs: 15 len workers 8 min 0
scale up kwargs instance: 15
inst max: 15 40
adapt sending up! {'n': 15}
should scale up = false
should scale up False
workers to close p set()
needs cpu/mem True False
should scale up True
workers to close p set()
scale up kwargs: 11 len workers 8 min 0
scale up kwargs instance: 11
inst max: 11 40
scaling up? {'status': 'up'} {'n': 11}
scale up kwargs: 11 len workers 8 min 0
scale up kwargs instance: 11
inst max: 11 40
adapt sending up! {'n': 11}
in scale up found ntc < count_pend
act and pend 15 n 11 ntc 4 pending 11
Stopping jobs: %s ['40903831', '40903839', '40903840', '40903841', '40903842', '40903843', '40903844']

EDIT: I should mention, I thought the problem was that only N-tasks were available at the end, (which may still be the case) but after more investigation I think it might be something else! (or maybe something else completely different!)

It would be worth identifying what is the real problem here. I'm not sure I follow everything.
In your workflow, you don't only have long running tasks that remains at the end of the computation? The number of submitted and so pending tasks is varying a lot accross time?

A possible solution, jobqeue workers should be to have workers 'almost unkillable' until they have accumulated a certain amount of time of having no tasks.

You could probably use wait_count kwarg for that. Worker actually get stopped if they're caught up wait_count times doing nothing (defaulting to 3), so after 3 seconds by default. Just increase wait_count to 300 for 5 minutes.
Some clarifications, I'm not sure it is clear currently:

target_duration is the duration you expect your whole computation to last. Adaptive will try to scale workers so that for each tasks submission, the client only wait by default 5 seconds before obtaining all results.
total_occupancy is the Scheduler estimation of the total cpu time needed for computing all the pending tasks. The Scheduler tries to cleverly compute the an average task duration for updating this attribute. But in case there is a lot of variation of time between all individual tasks, I fear the estimation is hard to make and so total_occupancy can vary too much accross time.

Thanks for your response.
my workflow looks somewhat like:
where some of it is python, and some of it is subprocess.call to c++ binaries

for x in n_inputs ->
Prepare inputs ~1000 small 5-20 second things
run initial task (1-10 minutes)*1
for x in n_from_[3] run  (~30-120 min)*(4-20)
compile [4] task results (5-20 min)*1
for x in n_from_[5] (1hr to 3 hours)*(4-20)
compile 4th task results (5-10 min)*1
analysis & optimization -> ~100 small tasks (5-20 seconds)

I'll sort of just summarize what I've found out in the past few days debugging this:

wait_count:400 + target_duration:'3600s' appears to have fixed workers dying early in the protocol

the PR you referenced appears to have fixed workers being submitted at the end when there are no tasks left

I ran into ANOTHER problem, SLURM didn't seem to like being submitted a bunch of  batch scripts at the same time from a non-head node. Supposedly SLURM should be robust enough to handle that, but slurm would fail with 'resource temporarily unavailable' I fixed this by adding a short 0.3 second delay between submitting jobs to the scheduler. ( has anyone ever reported/noticed that before?)

I guess my only request at the end of the day would be for a way to set time per job in a client.submit( call instead of making adaptive assume that all of my jobs are going to take 1 hour.
Thank you for your help!

target_duration:'3600s'
I guess my only request at the end of the day would be for a way to set time per job in a client.submit( call instead of making adaptive assume that all of my jobs are going to take 1 hour.

I am under the impression that you are not intepreting target_duration correctly. It does not specify your job average duration, or tell dask how much time a task will last. It just configures how much time youwant to way before the computation ends. Dask will by itself estimate and refine your tasks duration.
Thus, I believe you don't need to set this value, you should try just setting wait_count.

I ran into ANOTHER problem, SLURM didn't seem to like being submitted a bunch of batch scripts at the same time from a non-head node. Supposedly SLURM should be robust enough to handle that, but slurm would fail with 'resource temporarily unavailable' I fixed this by adding a short 0.3 second delay between submitting jobs to the scheduler. ( has anyone ever reported/noticed that before?)

This looks quite annoying, maybe you should talk to your cluster admins, or open an issue here to look for information, or on the Slurm issue tracker if there is one.


Update helmrelease.yaml

test vulnerable version

Here is an automated review from ChatGPT of this pull request.
Based on the given "git diff", there are no security issues being introduced. The only change made is to update the version of the Grafana chart being used from 7.2.0 to 10.1.1. This update does not introduce any obvious security concerns.
No security issues identified in the "git diff".


Prevent rendering plaidData.error as empty string

Details

These changes fix two problems

As described in the issue, there was a crash when opening plaid because the empty error string was being rendered.
The plaid link was opening twice because it was initialized with the old value. More details in this comment.

Fixed Issues

$ https://github.com/Expensify/App/issues/10083
Tests

Log in to NewDot
Go to Settings > Preferences
Turn on "Use Secure Staging Server"
Go back to Settings > Payments
Click "Add payment method"
Click "Bank account"
Verify Plaid opens 1 popup
Close the Plaid popup and verify that you are redirected back to the Payments screen.

[ ] Verify that no errors appear in the JS console

PR Review Checklist

Contributor (PR Author) Checklist

[ ] I linked the correct issue in the ### Fixed Issues section above
[ ] I wrote clear testing steps that cover the changes made in this PR

[ ] I added steps for local testing in the Tests section
[ ] I added steps for Staging and/or Production testing in the QA steps section
[ ] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I included screenshots or videos for tests on all platforms
[ ] I ran the tests on all platforms & verified they passed on:

[ ] iOS / native
[ ] Android / native
[ ] iOS / Safari
[ ] Android / Chrome
[ ] MacOS / Chrome
[ ] MacOS / Desktop

[ ] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[ ] I followed proper code patterns (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product was added in all src/languages/* files
[ ] I verified any copy / text that was added to the app is correct English and approved by marketing by tagging the marketing team on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I followed the guidelines as stated in the Review Guidelines
[ ] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] Any functional components have the displayName property
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

PR Reviewer Checklist
The Contributor+ will copy/paste it into a new comment and complete it after the author checklist is completed

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] iOS / native
[ ] Android / native
[ ] iOS / Safari
[ ] Android / Chrome
[ ] MacOS / Chrome
[ ] MacOS / Desktop

[ ] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product was added in all src/languages/* files
[ ] I verified any copy / text that was added to the app is correct English and approved by marketing by tagging the marketing team on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] Any functional components have the displayName property
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

QA Steps

Same as tests.

[ ] Verify that no errors appear in the JS console

Screenshots

Web

Mobile Web

Desktop

iOS

https://user-images.githubusercontent.com/26260477/181081556-40a15234-a43e-4329-923f-15d3a200c2cb.mov
Android

Hmm, now that I'm actually going through the whole flow it's still behaving strangely. I'll need to test more.

Ready for review cc @luacmartins

Merging to fix a deploy blocker!

Tests passed. Removing Emergency label.

🚀 Cherry-picked to staging by @luacmartins in version: 1.1.86-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

@Expensify/applause Can we get this one tested ASAP?

On it

Tested, it's a pass ✅

🚀 Deployed to production by @yuwenmemon in version: 1.1.86-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


‘Less than x months ago’ test works in a surprising way

The current test checks the delta between two dates is less than 30 * x (where x is the specified number of months). So this is assuming a fixed length month of 30 days.
It might be more intuitive to use calendar months – particularly given in practice, IATI-Data-Quality only actually uses this test with x = 12.

Fixed in #10.


Do 310 edit api database queries and handling requests related to bulk curations

I'm a little unsure if I understood what you meant, but basically, if you use this PUT /license-conclusion endpoint to update a license conclusion that is part of a bulk curation, this change will only affect this license conclusion and remove the link to the bulk curation. If you want to edit all the license conclusions linked to the bulk curation, you should use PUT bulk-curation instead.

There is no change in the DELETE /license-conclusion endpoint, so you can still delete just the one license conclusion or the whole bulk curation


teamcity reported for cloud foundry

I am using cloud foundry cli in team city for deployment. It is working fine but when deployment fails for any reason  team city still shows success message.
Is there any option already available to handle this?

Hi @aniltomar10 thanks for reaching out. We'll need more information before we can help here. Please provide as much information as possible including:
Please fill out the issue checklist below and provide ALL the requested information.

[ ] I tried updating to the latest version of the CF CLI to see if it fixed my problem.
[ ] I attempted to run the command with CF_TRACE=1 to help debug the issue.
[ ] I am reporting a bug that others will be able to reproduce.

Describe the bug and the command you saw an issue with
Provide details on what you were trying to do (and why).
What happened
A clear and concise description of what happen.
Expected behavior
A clear and concise description of what you expected to happen.
To Reproduce
Steps to reproduce the behavior; include the exact CLI commands and verbose output:

Run cf ...
Bind a service cf bind-service
See error

Provide more context

platform and shell details ( e.g. Mac OS X 10.11 iTerm)
version of the CLI you are running
version of the CC API Release you are on

Note: As of January 2018, we no longer support API versions older than 2.69.0/3.4.0 (CF Release: 251 / CAPI Release: 1.15.0)

Hi @aniltomar10 I'm closing this issue due to inactivity. Please feel free to reopen if you have any additional details you can provide to us. Thanks.

@aniltomar10 could you share how to set it up?


fix: fix `GLIBC_2.35' not found error in ci

Which issue does this PR close?

Closes https://github.com/apache/arrow-datafusion/issues/9209.
Rationale for this change

Previously, we got the following error:
❯ docker run -it -v /tmp:/data datafusion-cli
datafusion-cli: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.35' not found (required by datafusion-cli)
datafusion-cli: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by datafusion-cli)
datafusion-cli: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by datafusion-cli)
datafusion-cli: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by datafusion-cli)

What changes are included in this PR?

Update the versions in CI, It ensures that the Rust image is based on a specific release.
Are these changes tested?

Yes, I tested the change in my local machine. Here is the screenshot:

Are there any user-facing changes?

No

Thanks for your review! @comphead
Could you elaborate more on "But with prev builder I got the process SIGKILLed"? If this is an issue, I will try to fix it.

Thanks for your review! @comphead
Could you elaborate more on "But with prev builder I got the process SIGKILLed"? If this is an issue, I will try to fix it.

The crate datafusion-physical-expr could not compile on docker, so it just killed by the kernel with no obvious reason
(signal: 9, SIGKILL: kill)

With proposed builder I was able to build the DF client properly

ok, got it. So it seems that everything goes well now. Could you help with the merge? @comphead


rem units not working in vars

This doesn't work:
@bigText: 2rem;
header {
font-size: @bigText;
}

I ran into this issue a few days ago too.

You can in fact use escape characters to get what you want. I tried this, using LESS.js' official example:
@str: 666;
@var: ~"@{str}" + 'rem';
h1 {
font-size: @var;
}
Gives (me at least) an output of:
h1 {
font-size: 666rem;
}
I hope this can help you out. I'll try playing around with it some more. :)


installation - PushNotificationIOS needed?

Do we need to install PushNotificationIOS if we're using the react-native-notifications library. I'm presuming we don't need to because it's not mentioned in the installation guide?

Hi. I've faced with the same question. You've closed this issue, did you find the answer?

all methods are inside import NotificationsIOS from 'react-native-notifications';


MINOR: remove unused code from InternalTopicManager

Remove isValidCleanupPolicy and related fields as they are never used.

@enothereska @guozhangwang @ijuma

LGTM, code is indeed unused.

PR LGTM. BTW does org.apache.kafka.streams.integration.QueryableStateIntegrationTest > queryOnRebalance[1] ever blocked on your local runs? Jenkins seems to be blocked on this test once.

Merged to trunk and 0.10.1.


STORM-3039 handle slot ports in TIME_WAIT state

When worker is killed slot port remains in TIME_WAIT state. Since worker process is killed it is secure to start a new worker process on the same port.

@HeartSaVioR Can you please take a look at?

👍

+1

I don't feel it is mandatory to add a test since it is a known option. I'll merge this shortly since no one add new review comments so far.
@raghavgautam Could you please submit a patch on top of this if you have some ideas to test the option? Thanks in advance.

Anyway +1 again.

@HeartSaVioR @raghavgautam @arunmahadevan Thank you for the review!

@HeartSaVioR Please look at this pull request https://github.com/apache/storm/pull/2660


[H] Created a variant of InheritedWidget specifically for Listenables

cc @HansMuller

Updated, PTAL if you're interested (the updates are in a new commit for ease of review).
Will land on green unless I hear otherwise.


METRON-1310 "Template Delete" Action Deletes Search Indices

The "Elasticsearch Template Delete" action within the Indexing service in Ambari, actually deletes the search indices.  Per the name of the action, I would expect it to only delete the template definitions.  This can be quite a fun surprise. :)
Testing

Spin up Full Dev or an equivalent Metron environment.

Query Elasticsearch for the currently defined indices.  Take note of all the indices that you have defined.
curl http://node1:9200/_cat/indices?v

Query Elasticsearch for the currently defined templates.  There should be 5 in all; snort_index, bro_index, metaalert_index, error_index, and yaf_index.
curl http://node1:9200/_template | python -mjson.tool

Open Ambari and go to Metron > Metron Indexing.  Then on the hosts page, click on Metron Indexing > Elasticsearch Template Delete.

Query Elasticsearch again for the currently defined indices.  Make sure none were deleted.

Query Elasticsearch again for the currently defined templates.  There should be none.
curl http://node1:9200/_template | python -mjson.tool

Open Ambari and go to Metron > Metron Indexing.  Then on the hosts page, click on Metron Indexing > Elasticsearch Template Install.

Query Elasticsearch again for the currently defined templates.  There should be at least 5 in all.
curl http://node1:9200/_template | python -mjson.tool

Pull Request Checklist

[x] Is there a JIRA ticket associated with this PR? If not one needs to be created at Metron Jira.

[x] Does your PR title start with METRON-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x] Has your PR been rebased against the latest commit within the target branch (typically master)?

[x] Have you included steps to reproduce the behavior or problem that is being changed or addressed?

[x] Have you included steps or a guide to how the change may be verified and tested manually?

[x] Have you ensured that the full suite of tests and checks have been executed in the root metron folder via:

[ ] Have you written or updated unit tests and or integration tests to verify your changes?

[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

[x] Have you verified the basic functionality of the build by building and running locally with Vagrant full-dev environment or the equivalent?

yeesh, good catch @nickwallen +1 by inspection.

+1 by inspection. Thanks for the fix


add resolutions field to package.json

We should not forget to remove resolutions block from package.json once Angular updates to TypeScript >2.8.

About appveyor: https://github.com/cypress-io/cypress/issues/1841


Support for C++11 is needed.

@lygstate When reporting an issue, please include a description. We can't tell what you mean from the title alone.


Can't use HF model with custom code

I attempted to make a custom docker image following the example, like so:
FROM semitechnologies/transformers-inference:custom
RUN MODEL_NAME=microsoft/BiomedVLP-CXR-BERT-specialized ./download.py

But this failed.
 > [2/2] RUN MODEL_NAME=microsoft/BiomedVLP-CXR-BERT-specialized ./download.py:
1.967 Downloading MODEL_NAME=microsoft/BiomedVLP-CXR-BERT-specialized with FORCE_AUTOMODEL=False ONNX_RUNTIME=false ONNX_CPU=arm64
1.967 Downloading model microsoft/BiomedVLP-CXR-BERT-specialized from huggingface model hub
1.967 The repository for microsoft/BiomedVLP-CXR-BERT-specialized contains custom code which must be executed to correctly load the model. You can inspect the repository content at https://hf.co/microsoft/BiomedVLP-CXR-BERT-specialized.
1.967 You can avoid this prompt in future by passing the argument `trust_remote_code=True`.
1.967
1.967 Do you wish to run the custom code? [y/N] Traceback (most recent call last):
1.968   File "/usr/local/lib/python3.11/site-packages/transformers/dynamic_module_utils.py", line 613, in resolve_trust_remote_code
1.968     answer = input(
1.968              ^^^^^^
1.968 EOFError: EOF when reading a line
1.969
1.969 During handling of the above exception, another exception occurred:
1.969
1.969 Traceback (most recent call last):
1.969   File "/app/./download.py", line 117, in <module>
1.969     download_model(model_name, model_dir)
1.970   File "/app/./download.py", line 87, in download_model
1.970     config = AutoConfig.from_pretrained(model_name)
1.970              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1.971   File "/usr/local/lib/python3.11/site-packages/transformers/models/auto/configuration_auto.py", line 968, in from_pretrained
1.971     trust_remote_code = resolve_trust_remote_code(
1.972                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
1.972   File "/usr/local/lib/python3.11/site-packages/transformers/dynamic_module_utils.py", line 626, in resolve_trust_remote_code
1.972     raise ValueError(
1.973 ValueError: The repository for microsoft/BiomedVLP-CXR-BERT-specialized contains custom code which must be executed to correctly load the model. You can inspect the repository content at https://hf.co/microsoft/BiomedVLP-CXR-BERT-specialized.
1.973 Please pass the argument `trust_remote_code=True` to allow custom code to be run.

The model I'm trying to use has custom code and transformers requires me to explicitly allow that. But none of the Auto*.from_pretrained calls in download.py pass a trust_remote_code kwarg.

I am not sure TRUST_REMOTE_CODE is working as intended here, even if I set it to True or true, it will always be a string. Value must be converted to a bool somehow.

I think there must be another issue as well, this modification was never built into the image cr.weaviate.io/semitechnologies/transformers-inference:custom, content of download.py doesn't even contain this logic:
#!/usr/bin/env python3

import os
import sys
import nltk
from transformers import (
    AutoModel,
    AutoTokenizer,
    AutoConfig,
)
from sentence_transformers import SentenceTransformer
from optimum.onnxruntime import ORTModelForFeatureExtraction
from optimum.onnxruntime.configuration import AutoQuantizationConfig
from optimum.onnxruntime import ORTQuantizer
from pathlib import Path

model_dir = './models/model'
nltk_dir = './nltk_data'
model_name = os.getenv('MODEL_NAME', None)
force_automodel = os.getenv('FORCE_AUTOMODEL', False)
if not model_name:
    print("Fatal: MODEL_NAME is required")
    print("Please set environment variable MODEL_NAME to a HuggingFace model name, see https://huggingface.co/models")
    sys.exit(1)

if force_automodel:
    print(f"Using AutoModel for {model_name} to instantiate model")

onnx_runtime = os.getenv('ONNX_RUNTIME')
if not onnx_runtime:
    onnx_runtime = "false"

onnx_cpu_arch = os.getenv('ONNX_CPU')
if not onnx_cpu_arch:
    onnx_cpu_arch = "arm64"

use_sentence_transformers_vectorizer = os.getenv('USE_SENTENCE_TRANSFORMERS_VECTORIZER')
if not use_sentence_transformers_vectorizer:
    use_sentence_transformers_vectorizer = "false"

print(f"Downloading MODEL_NAME={model_name} with FORCE_AUTOMODEL={force_automodel} ONNX_RUNTIME={onnx_runtime} ONNX_CPU={onnx_cpu_arch}")

def download_onnx_model(model_name: str, model_dir: str):
    # Download model and tokenizer
    onnx_path = Path(model_dir)
    ort_model = ORTModelForFeatureExtraction.from_pretrained(model_name, from_transformers=True)
    # Save model
    ort_model.save_pretrained(onnx_path)

    def save_to_file(filepath: str, content: str):
        with open(filepath, "w") as f:
            f.write(content)

    def save_quantization_info(arch: str):
        save_to_file(f"{model_dir}/onnx_quantization_info", arch)

    def quantization_config(onnx_cpu_arch: str):
        if onnx_cpu_arch.lower() == "avx512_vnni":
            print("Quantize Model for x86_64 (amd64) (avx512_vnni)")
            save_quantization_info("AVX-512")
            return AutoQuantizationConfig.avx512_vnni(is_static=False, per_channel=False)
        if onnx_cpu_arch.lower() == "arm64":
            print(f"Quantize Model for ARM64")
            save_quantization_info("ARM64")
            return AutoQuantizationConfig.arm64(is_static=False, per_channel=False)
        # default is AMD64 (AVX2)
        print(f"Quantize Model for x86_64 (amd64) (AVX2)")
        save_quantization_info("amd64 (AVX2)")
        return AutoQuantizationConfig.avx2(is_static=False, per_channel=False)

    # Quantize the model / convert to ONNX
    qconfig = quantization_config(onnx_cpu_arch)
    quantizer = ORTQuantizer.from_pretrained(ort_model)
    # Apply dynamic quantization on the model
    quantizer.quantize(save_dir=onnx_path, quantization_config=qconfig)
    # Remove model.onnx file, leave only model_quantized.onnx
    if os.path.isfile(f"{model_dir}/model.onnx"):
        os.remove(f"{model_dir}/model.onnx")
    # Save information about ONNX runtime
    save_to_file(f"{model_dir}/onnx_runtime", onnx_runtime)
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    tokenizer.save_pretrained(onnx_path)

def download_model(model_name: str, model_dir: str):
    print(f"Downloading model {model_name} from huggingface model hub")
    config = AutoConfig.from_pretrained(model_name)
    model_type = config.to_dict()['model_type']

    if (model_type is not None and model_type == "t5") or use_sentence_transformers_vectorizer.lower() == "true":
        SentenceTransformer(model_name, cache_folder=model_dir)
        with open(f"{model_dir}/model_name", "w") as f:
            f.write(model_name)
    else:
        if config.architectures and not force_automodel:
            print(f"Using class {config.architectures[0]} to load model weights")
            mod = __import__('transformers', fromlist=[config.architectures[0]])
            try:
                klass_architecture = getattr(mod, config.architectures[0])
                model = klass_architecture.from_pretrained(model_name)
            except AttributeError:
                print(f"{config.architectures[0]} not found in transformers, fallback to AutoModel")
                model = AutoModel.from_pretrained(model_name)
        else:
            model = AutoModel.from_pretrained(model_name)

        tokenizer = AutoTokenizer.from_pretrained(model_name)

        model.save_pretrained(model_dir)
        tokenizer.save_pretrained(model_dir)

    nltk.download('punkt', download_dir=nltk_dir)

if onnx_runtime == "true":
    download_onnx_model(model_name, model_dir)
else:
    download_model(model_name, model_dir)

The fix for this got merged in #93. But that hasn't been released yet as far as I know.

I am not sure TRUST_REMOTE_CODE is working as intended here, even if I set it to True or true, it will always be a string. Value must be converted to a bool somehow.

I agree with this observation. TRUST_REMOTE_CODE is read from the environment variables, but it is left as a string and never parsed into a boolean. That isn't always a problem; a string value like "True" or "true" is truthy and will evaluate to True, so you'll get the behavior you intended.
The problem would come if you try to not trust remote code by explicitly setting TRUST_REMOTE_CODE="False" which will also be truthy and evaluate to True. The only way to disable trusting remote code is to not set TRUST_REMOTE_CODE to anything. When it is read in config.py the default value is the bool False.
But, regardless, this should be raised as a separate issue. It is not directly related to the issue discussed here.


Unable to upload images

Jodit Version:  4.0.0-beta.119
Browser:  Chrome 121
OS:  Mac
Hi,
when I try to upload an image via the UI (independent if selecting an image via the file browser or via drag&drop) I always get the following error. I'm running Jodit in an Angular environment.
TypeError: Cannot read properties of undefined (reading 'forImageChangeAttributes')
    at Selection.insertImage (selection.js:585:30)
    at config.js:69:25
    at Array.forEach (<anonymous>)
    at Jodit.defaultHandlerSuccess (config.js:59:24)
    at Uploader.<anonymous> (file-selector.js:35:25)
    at reader.onloadend (send-files.js:41:37)
    at _ZoneDelegate.invoke (zone.js:368:26)
    at Object.onInvoke (core.mjs:14778:33)
    at _ZoneDelegate.invoke (zone.js:367:52)
    at Zone.runGuarded (zone.js:139:47)

Thx for your support/bug fix.

Hi! I had the same problem. It is strange why it works like that but you need to import Resizer plugin manually import 'jodit/esm/plugins/resizer/resizer';
It is a little bit weird that starting from 4.x versions a default list of plugins has been changed and right now you don't now what plugin you missed


add web demo/models to Huggingface

Hi, would you be interested in adding davit to Hugging Face? The Hub offers free hosting, and it would make your work more accessible and visible to the rest of the ML community. Models/datasets/spaces(web demos) can be added to a user account or organization similar to github.
Example from other organizations:
Keras: https://huggingface.co/keras-io
Microsoft: https://huggingface.co/microsoft
Facebook: https://huggingface.co/facebook
Example spaces with repos:
github: https://github.com/salesforce/BLIP
Spaces: https://huggingface.co/spaces/salesforce/BLIP
github: https://github.com/facebookresearch/omnivore
Spaces: https://huggingface.co/spaces/akhaliq/omnivore
and here are guides for adding spaces/models/datasets to your org
How to add a Space: https://huggingface.co/blog/gradio-spaces
how to add models: https://huggingface.co/docs/hub/adding-a-model
uploading a dataset: https://huggingface.co/docs/datasets/upload_dataset.html
Please let us know if you would be interested and if you have any questions, we can also help with the technical implementation.

Hi,
Glad that you noticed our work! I'm interested and will try to make it following your guide, thank you!
Mingyu


feat(rpc): add rpc framework

add rpc framework

Codecov Report

Merging #37 (a5afc92) into main (8726fbc) will increase coverage by 9.69%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main      #37      +/-   ##
==========================================
+ Coverage   43.00%   52.69%   +9.69%
==========================================
  Files          43       20      -23
  Lines        2330      408    -1922
  Branches       67       21      -46
==========================================
- Hits         1002      215     -787
+ Misses       1328      193    -1135

Impacted Files
Coverage Δ

...tracts/lib/recipient-typescript-lib/src/actions.rs

...in-modules/eth-contracts/contracts/ForceBridge.sol

...modules/ckb-contracts/types/src/generated/basic.rs

...th-contracts/contracts/libraries/MultisigUtils.sol

...cts/types/src/generated/force_bridge_lockscript.rs

...contracts/lib/recipient-typescript-lib/src/test.rs

offchain-modules/ckb-contracts/types/src/hasher.rs

...dules/ckb-contracts/tests/src/utils/case_runner.rs

...tracts/lib/recipient-typescript-lib/src/adapter.rs

...ules/ckb-contracts/tests/src/utils/case_builder.rs

... and 13 more

Continue to review full report at Codecov.

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


MultiHome issue

Hi, when i use : ark_MultiHome=<IP_ADDRESS> (my ip failover)
the server can't boot
when i don't use it everything is fine...
any clue ?

Is the IP address you are trying to use set up on an interface on the machine?

I've re installed the machine

If you look at the output of ifconfig or ip address, is that IP address set up on any of the interfaces?

i've just re installed my machine on another OS, is there something to do ? On the OVH panel, it seems to be good to me

Your game server's failure to start suggests that the IP address is not configured on any interfaces.  If the "failover" ip addresses are set up on the same interface as the main IP address, then you will need to configure that IP address on a virtual interface attached to that physical interface.
Refer to your distribution documentation on how to persistently configure such a virtual interface (e.g. eth0:1).

The second one is working without any config, it was auto set to the machine and the main ip, i've got the same config on the two different machine (nano /etc/network/interfaces)


2.0 datasetId

switch to filename as a field/param to specify
Switch to NMT request body leveraging the datasetID rather than a dict
Update SaveDatasetResponse for new fields

I've updated this PR and rebased it on top of the latest 2.0. I've also added changes for the NMT training pipeline since that was leveraging datasets rather than datasetId


Added University of Western Attica to domains

@ChrisTasatzis I am sorry, the domain uniwa.gr is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


Issue After Updating Nest-Cam to 0.0.17

Now I receive this error when I try to launch Homebridge:
[2019-1-22 10:00:02] [Nest-cam] Initializing Nest-cam platform...
Load homebridge-camera-ffmpeg-omx.Camera-ffmpeg-omx
/usr/local/lib/node_modules/homebridge-nest-cam/index.js:38
throw new Error('access_token is not defined in the Homebridge config');
^
Error: access_token is not defined in the Homebridge config
at NestCamPlatform.didFinishLaunching (/usr/local/lib/node_modules/homebridge-nest-cam/index.js:38:13)
at emitNone (events.js:111:20)
at API.emit (events.js:208:7)
at Server.run (/usr/local/lib/node_modules/homebridge/lib/server.js:99:13)
at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:45:10)
at Object. (/usr/local/lib/node_modules/homebridge/bin/homebridge:17:22)
at Module._compile (module.js:643:30)
at Object.Module._extensions..js (module.js:654:10)
at Module.load (module.js:556:32)
at tryModuleLoad (module.js:499:12)
at Function.Module._load (module.js:491:3)
at Function.Module.runMain (module.js:684:10)
at startup (bootstrap_node.js:187:16)
at bootstrap_node.js:608:3

Is the access token still accessible? When following the instructions in the readme, I get a 400 Bad Request response


Restarting docker container wipes data

Might be my lack of docker knowledge but restarting the container wipes out all data (registrations, entries, templates). The docker-compose.yml file I use has an external volume so I thought the data would be persistent across restarts.

This must (well, it should!) be a misconfiguration of your docker...
I've never heard that data gets wiped after restart.
Could you post you yml-file (delete the sensitive data of course!!) - or just show the line of the volume-configuration?


Back of card with horizontal rotation shows mirrored and upside down.

Back of card with flipDirection="x" shows mirrored and upside down.
Example:

Hello,
Did you found any solutions about this?
I've a strange similar issue. I've a  with inside 2 touchableOpacity. When I touch these, the card flip correctly.
However, if I flip the card from a component outside of , it just mirror de actual card instead of showing his back card.

By digging into the code of CardFlip.js, I ended up to find what caused my issue.
In flipY() and flipX() method, you need to call this._flipTo() BEFORE the setState as you need to flip before the states are updated.
Do you want me to do a PR?

This problem should be fixed in the last update :)

i needed to flip based on props.. the below works but for some reason the animation is very slow
 componentDidMount() {
    if (this.props.global.side === "back") {

        this.card.flip();

    }

then when i try this, it flips and mirrors
 componentDidMount() {
    if (this.props.global.side === "back") {
         requestAnimationFrame(() => {
        this.card.flip();
      });
    }


Document DDL

Would be great if README.md documented how to run DDLs; it would help running an example code quickly on a H2 in-memory database. I only found database.executeUpdate() but I have no idea which SqlExpression to use for a DDL statement.

Workaround: use JDBC:
fun main() {
    val database = Database.connect("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1", user = "root", password = "***")

    database.useTransaction {
        it.connection.prepareStatement("""create table t_employee(
  id int not null primary key auto_increment,
  name varchar(128) not null,
  job varchar(128) not null,
  manager_id int null,
  hire_date date not null,
  salary bigint not null,
  department_id int not null
);""").executeUpdate()
    }

    for (row in database.from(Employees).select()) {
        println(row[Employees.name])
    }
}

you also can see see this function: org.ktorm.database.Database#useConnection


refactor: codegen for __tact_dict operations

Issue
Closes #992.
Checklist

[x] I have run all the tests locally and no test failure was reported
[x] I have run the linter, formatter and spellchecker
[x] I did not do unrelated and/or undiscussed refactorings

It would be nice to have exhaustivity checks when dealing with all pairs of key and value map types, perhaps @verytactical can suggest something better that switch (${key}:${value}).

So should we merge this first and then I'll rebase #941 and update replace operations accordingly?

Yep, that's the plan

How can we be sure that we didn't miss this special case for the unit-unit combination in the new code of genTactDictGet?

Only by exhaustive testing of different map key/value types combinations in Tact. We should not actually add FunC-specific tests since we will be implementing a new backend without using FunC.

@jeshecdom I compared the generated .stdlib.fc files before and after this refactoring (and a fix) and got identical results modulo function swaps. Here is the Tact source for testing codegen:
contract Test {
    m1: map<Int, Int>;
    m2: map<Int, Int as uint42>;
    m3: map<Int, Address>;
    m4: map<Int, Cell>;

    m5: map<Int as uint8, Int>;
    m6: map<Int as uint8, Int as uint42>;
    m7: map<Int as uint8, Address>;
    m8: map<Int as uint8, Cell>;

    m9: map<Address, Int>;
    mA: map<Address, Int as uint42>;
    mB: map<Address, Address>;
    mC: map<Address, Cell>;

    receive() {
        self.m1.set(1, 42);
        self.m2.set(1, 42);
        self.m3.set(1, myAddress());
        self.m4.set(1, emptyCell());
        self.m5.set(1, 42);
        self.m6.set(1, 42);
        self.m7.set(1, myAddress());
        self.m8.set(1, emptyCell());
        self.m9.set(myAddress(), 42);
        self.mA.set(myAddress(), 42);
        self.mB.set(myAddress(), myAddress());
        self.mC.set(myAddress(), emptyCell());

        self.m1.get(1);
        self.m2.get(1);
        self.m3.get(1);
        self.m4.get(1);
        self.m5.get(1);
        self.m6.get(1);
        self.m7.get(1);
        self.m8.get(1);
        self.m9.get(myAddress());
        self.mA.get(myAddress());
        self.mB.get(myAddress());
        self.mC.get(myAddress());

        self.m1.exists(1);
        self.m2.exists(1);
        self.m3.exists(1);
        self.m4.exists(1);
        self.m5.exists(1);
        self.m6.exists(1);
        self.m7.exists(1);
        self.m8.exists(1);
        self.m9.exists(myAddress());
        self.mA.exists(myAddress());
        self.mB.exists(myAddress());
        self.mC.exists(myAddress());

        foreach (_, _ in self.m1) {}
        foreach (_, _ in self.m2) {}
        foreach (_, _ in self.m3) {}
        foreach (_, _ in self.m4) {}
        foreach (_, _ in self.m5) {}
        foreach (_, _ in self.m6) {}
        foreach (_, _ in self.m7) {}
        foreach (_, _ in self.m8) {}
        foreach (_, _ in self.m9) {}
        foreach (_, _ in self.mA) {}
        foreach (_, _ in self.mB) {}
        foreach (_, _ in self.mC) {}
    }
}

In that case, I think it is good to go. Should I approve the PR?

@Gusarich Thanks for checking!


gtk3: only build docs on linux

Motivation for this change
cc @jtojnar @FRidh. This will fix the macos build.
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

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

The current attribute gtk3 on the 19.09 channel does not generate the devdoc output (so I can't compare wrt this).
I was able to build this on linux, it generates the devdoc output with files with exactly the same hashes as HEAD^


Arm64 layer of the LambdaInsightsExtension

I'm moving to use ARM64 at lambdas and hit a problem in runtime with an error message
EXTENSION	Name: cloudwatch_lambda_agent	State: LaunchError	Events: []	Error Type: UnknownError RequestId: a886211c-7c56-4358-b2fa-0f642a8f78ad Error: fork/exec /opt/extensions/cloudwatch_lambda_agent: exec format error Extension.LaunchError
I find this issue and looks like ARM has a own layer a bit different naming convention
Arm64
arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension-Arm64:1
Current
arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension:14
A related issue can be found from here
https://github.com/aws-samples/aws-lambda-extensions/issues/57#issuecomment-972760316
I was thinking to add a new boolean attribute to config like arm64: true

I'm happy to provide PR if we are okay with this additional property to configuration. Another possible solution could be that we can check from the architecture field from serverless.yaml file and resolve the right extension based on that

Hi @Waltu thanks for coming here with this issue. Feel free to open a PR, I would prefer the second option, to make it more seamless.  Thanks!

@iriskraja77 @Waltu looks like this was opened in #14 - any idea if someone is going to be reviewing that PR?


chore: remove unprintable character

\u00ad was before the letter a in Seravek.

Hi @Haroenv
Thank you for fixing this bug! Unfortunately, I am in the middle of converting Victory to a lerna monorepo, and I have already moved the git history for dependent repos. The work is set to be released tomorrow. I will make sure this fix gets in at the same time, but I will not be able to merge this PR.

Okay! Let me know if you want me to redo the PR after the change too


[Feature] Stronger typed modules?

Vuex has a very useful generic StoreOptions type to define stores:
const module: StoreOptions<UserState> = {
    state: {
        name: "Harry Potter"
    },
    getters: {
        name: (state) => state.name // Here state automatically has the correct type UserState
    }
}

This is how the same store should be defined with direct-vuex. On larger stores this adds quite some bloat:
export default {
    state: {
        name: "Harry Potter"
    } as UserStore,
    getters: {
        name: (state: UserStore) => state.name
    }
}

Unless I'm mistaken there is no way to use this (or any other) type to achieve the same thing, because of the const assertion. Do you know if there's another way to make store creation stronger typed?

Maybe it is possible with a wrapper function createModule, like the wrapper function createComponent in the composition API. I'll try.

I've started using direct-vuex yesterday and immediately encountered this too. Thanks for looking into it.

I did something. Please update to version 0.8 and try to use createModule:
export default createModule({
    state: {
        name: "Harry Potter"
    } as UserStore,
    getters: {
        name: state => state.name // type of 'state' is 'UserStore'
    }
})

Be careful: as const must not be used with the helper createModule. Just remove as const if you had it before.
See also: https://github.com/paleo/direct-vuex#in-a-vuex-module

Great work! Going to have a look tomorow!

I guess I can close this issue. Let me know in a new issue if you find a bug.

Sorry haven't had a chance to look at it yet - but it looks great! If I find issues I'll let you know.


Please excuse my brevity.

Expected behaviour
In a written message i would like to know more about the range of brevity.
For example such as less than 25 letters.
Actual behaviour
In a written message I looked at the letters was a brevity worry about it.
###Environment
K-9 Mail version:5.010
Android version:4.4.2
Account type (IMAP, POP3, WebDAV/Exchange):

Unfortunately it's not possible to know the problem you are facing. You may want to try using your native language in a thread to the K-9 mail users list: https://groups.google.com/forum/#!forum/k-9-mail I'm closing this because it isn't possible to work out the issue you are facing so it would be to resolve.


Wrapped legacy CLI version shown as 0.0.0

platform --version
Platform.sh CLI 4.0.0 (Wrapped legacy CLI 0.0.0)

This is not expected, the correct Legacy CLI version should be shown there.
Originally posted by @lolautruche in https://github.com/platformsh/cli/issues/18#issuecomment-1374012064

Fixed by #21 I assume


Minor editorial changes to Core concepts article

:warning: Validation status: warnings

File
Status
Preview URL
Details

LauragraDocset0317235153/excel/excel-add-ins-core-concepts.md
:warning:Warning

Details

LauragraDocset0317235153/excel/excel-add-ins-core-concepts.md

Line 3: [Warning] Invalid file link:(~/../reference/excel/excel-add-ins-reference-overview.md?product=excel).
Line 129: [Warning] Invalid file link:(~/../reference/excel/excel-add-ins-reference-overview.md?product=excel).
Line 130: [Warning] Invalid file link:(~/../reference/excel/loadoption.md?product=excel).
Line 271: [Warning] Invalid file link:(~/../reference/excel/excel-add-ins-reference-overview.md?product=excel).

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Filtering session errors

There are inconsistencies in labs' reporting of session errors. babylabAmsterdam and babblingOslo report no session errors but have an error number in session_error_info specified. We need to decide what should happen with these 5 toddlers:

[ ] babylingOslo_PUIO_018-toddlers
[ ] babylabAmsterdam_UVA_014-toddlers
[ ] babylabAmsterdam_UVA_018-toddlers
[ ] babylabAmsterdam_UVA_110-toddlers
[ ] babylabAmsterdam_UVA_113-toddlers

I checked the session_error_info and my suggestion is:

babylingOslo_PUIO_018-toddlers: early termination -> exclude, change demo data -> session_error: "error"
babylabAmsterdam_UVA_014-toddlers: inference by caregiver -> exclude, change demo data -> session_error: "error"
babylabAmsterdam_UVA_018-toddlers: participant too young (542 days) -> include? (depends on how strict we want to be with the age exclusion; also, we have to consider that labs may treat too young/old children differently. Some might have included them in their dataset, while others might have indicated a session_error)
babylabAmsterdam_UVA_110-toddlers: participant to young (541 days) -> include? (see above)
babylabAmsterdam_UVA_113-toddlers: same bin was used -> include

Thanks, Lucie. I would also include the toddlers that are slightly too young because they are indeed no session error but should rather be excluded via our age criterion.
I have changed the demo info for the other participants accordingly and did not delete the session_error_notes as these do not affect exclusion.


how to debug nerdctl compose up

Description
get error FATA[0000] error while creating container coredns: exit status 1 when using nerdctl compose up
Steps to reproduce the issue

create a compose.yml like this:

services:
  nginx:
    image: nginx:1.23.2
    container_name: nginx
    restart: always
  coredns:
    image: coredns/coredns:1.10.0
    container_name: coredns
    restart: always
    network_mode: "container:nginx"

run nerdctl compose up -d and get the error

INFO[0000] Ensuring image nginx:1.23.2
INFO[0000] Ensuring image coredns/coredns:1.10.0
INFO[0000] Creating container coredns
INFO[0000] Re-creating container nginx
FATA[0000] error while creating container coredns: exit status 1

Describe the results you received and expected
without error
What version of nerdctl are you using?
v1.1.0
Are you using a variant of nerdctl? (e.g., Rancher Desktop)
None
Host information
Client:
 Namespace:     default
 Debug Mode:    false

Server:
 Server Version: v1.6.12
 Storage Driver: overlayfs
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Log: fluentd journald json-file syslog
  Storage: native overlayfs
 Security Options:
  seccomp
   Profile: default
  cgroupns
 Kernel Version: 5.14.0-162.6.1.el9_1.0.1.x86_64
 Operating System: Rocky Linux 9.1 (Blue Onyx)
 OSType: linux
 Architecture: x86_64
 CPUs: 32
 Total Memory: 93.79GiB
 Name: headq
 ID: 4643dd54-7788-488d-a450-7468458b2f92

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

You can use --debug-full or --debug flag with compose: sudo nerdctl compose --debug-full up -d.
Checking the output, it might because when triggering nerdctl run to run coredns, it specifies both hostname and net, which seems conflict:
nerdctl --debug-full=true run --cidfile=/tmp/compose-290370214/cid -l=com.docker.compose.project=1670 -l=com.docker.compose.service=coredns -d --name=coredns --pull=never --hostname=coredns --net=container:nginx --restart=always coredns/coredns:1.10.0


Guidelines for cmnOrnaments module

From andrew.hankinson on September 08, 2011 10:51:27
Placeholder issue for cmnOrnaments guidelines
Original issue: http://code.google.com/p/music-encoding/issues/detail?id=14

From andrew.hankinson on May 11, 2012 10:39:37
Status: Started

From<EMAIL_ADDRESS>on May 14, 2012 10:23:59
Draft completed.

From<EMAIL_ADDRESS>on May 24, 2012 07:30:05
Status: Needs-Review

From andrew.hankinson on September 10, 2012 11:32:09
Fixed in MEI 2012 2.0.0. Closing.
Status: Fixed


Add variadic user functions

Resolves #1735
This adds variadic/rest parameters to E2 that just desugars to an array.
In the future we could also give access to key value pairs for user defined functions like python's kwargs that would desugar to a table, but I don't want to make this PR too big so this just provides the array part.
If you give values that aren't allowed in arrays (e.g. table or arrays) then it will throw a runtime error (on @strict at least. Maybe it should be forced, or be done at compile time).

Looks good  👍

Currently doesn't work with functions called from strings.
@strict

function number average(...Values:array) {
    local Sum = 0

    foreach (I, Value:number = Values) {
        Sum += Value
    }

    return Sum / Values:count()
}

print("average"(1, 2, 3)[number])

Throws sv: Expression 2 (generic): No such function: average(number, number, number).

Thanks forgot about those. Works now

Code looks okay, so long as @CornerPin doesn't see any more issues.

Looks good to me, haven't found any other issues.


Update README form example branch

Updates
I updated the README file. Please review and accept.

Thoughts
I probably shouldn't but okay. 👍


Pylance experiment doesn't provide semantic colorization without scrolling

 Environment data

Language Server version: 2022.5.3-pre.1
OS and version: win32 x64
Python version (and distribution if applicable, e.g. Anaconda):
python.analysis.indexing: null
python.analysis.typeCheckingMode: off
python.pylanceLspNotebooksEnabled: true

 Expected behaviour
Semantic colorization happens without having to scroll.
 Actual behaviour
This cell works for hover, but colors are off:

If I scroll colors fix themselves:

 Logs

Python Language Server Log
pylance.txt
 Code Snippet / Additional information

XXX

Here's the smaller log
pylance2.txt
:

This issue has been fixed in version 2022.8.51, which we've just released. You can find the changelog here: CHANGELOG.md


Character sheet looks "sub-optimal" when using the PopOut module

In GitLab by @Seamonster73 on May 26, 2022, 24:20
Hi Neil,
I can see there's an old issue that was raised for this a long time ago that was marked as resolved, so this may be user error (apologies if so)... However it looks like the PopOut module is still not playing nicely with the character sheet.

Foundry version: 9.269
Investigator System Version: 4.10.0. (Theme: Teal of Cthulhu)
All modules disabled? Yes, with the exception of PopOut and libwrapper
OS: macOS Monterey 12.3.1
Browser: Chrome v102.0.5005.61

When popping the character sheet out, it looks as follows:

I'm parking this for two reasons:

There hasn't been any activity for ages
PopOut! no longer works with Foundry v11, and looks like it may be unsupported at the moment


TO: Consistently set Expires and Max-Age cookie headers

What does this PR (Pull Request) do?
Include the Expires and Max-Age cookie headers in the Set-Cookie
response header for:

new cookie generation via all login/logout endpoints
cookie "refreshing" via authenticated endpoints

Per https://tools.ietf.org/html/rfc6265 the Max-Age header should have
precedence when both headers are present, so including both cookie
headers should not be a problem.
Possibly related to #3397 since TR doesn't know what to do with auth cookies if they don't have an Expires or Max-Age header.
This is technically a regression from the Perl from what I can tell, because TO-Perl includes the Expires cookie header in login as well as non-login responses (TO-Go was only returning the Expires cookie header for login responses).

[x] This PR fixes #REPLACE_ME OR is not related to any Issue

Which Traffic Control components are affected by this PR?

Traffic Ops

What is the best way to verify this PR?
Run the TO API tests and the traffic_ops_golang unit tests.
Verify TP is still able to login/use the cookie through a few different pages in a few different browsers.
If this is a bug fix, what versions of Traffic Control are affected?

since 3.x

The following criteria are ALL met by this PR

[x] This PR includes tests OR I have explained why tests are unnecessary
[x] Bugfix, no docs necessary
[x] This PR includes an update to CHANGELOG.md OR such an update is not necessary
[x] This PR includes any and all required license headers
[x] This PR ensures that database migration sequence is correct OR this PR does not include a database migration
[x] This PR DOES NOT FIX A SERIOUS SECURITY VULNERABILITY (see the Apache Software Foundation's security guidelines for details)

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4787/

Oh, good call. I forgot stuff like Set-Cookie headers are included in the examples. Maybe I should update all the docs examples. I should probably also add a changelog since this regressed in the previous release.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4791/


Example page not working

Hi, i'd like to use iframe-resizer but examples page not working, are you able to fix ?

There are some pull request to fix http/https errors, that might be the case why they are not working. If you host the files somewhere and correct the http and https links to match protocols it should be working.

Fixed


Prevent crash on mac

fixed #50
Prevent crashes during window resizing on mac.
Because the value_changed is called many times in one SpinBox button click on mac.
The godot4 branch is fine as is.

Merged. Thank you. Still think it's something that should be reported. The behavior should be the same on all platforms

@noidexe
I built the engine from source from the 3.x branch of godot and then built godot-version-manager. Then the SpinBox button worked correctly with the source before this pull request was incorporated. So I think the problem will be fixed in the next series 3 release.

Awesome. Thank you for taking all the effort to investigate.


[FEATURE] GPT to create diagrams

Since diagrams are represented in xml I thought it would be feasible to train a gpt system to create a basic diagram which I could build off of.

Like https://www.diagrams.net/blog/smart-diagram-generation?

@magedhelmy1 your request seems to be different to the original. Please open a new ticket with a specific request. Please be brief but explain the request precisely.


Shortcodes img(src) should be path

In the overview with images, it gives improper instructions saying to use img(src=...
Should be path

I am not sure I understand, your talking about this page?
here is the source code for that page, you can see that I am using img src not img path, and that the page renders the images properly.
https://raw.githubusercontent.com/Jieiku/abridge/master/content/overview-images/index.md
Maybe you have an old version of the short code? here is what it currently looks like:
https://github.com/Jieiku/abridge/blob/master/templates/shortcodes/img.html
Let me know what you figure out, I don't see any issues.

Yeah might just be having issues merging in all your new changes... standby

If you have to you can rebase it:
cd abridge
git reset --hard 2ef7c0ec1ff976b807691fea23eaaf5ea1e93bc9
git pull

Yeah, honestly, whatever I do I can't get it to work.
I did that and tried removing the shortcodes. Now it complains about a macro::resource and get_path not functioning. Then I saw "pages.html" and every other template not being found. At this point... not sure.
By any chance would you mind seeing if you could fork my repo, pull your changes from Abridge and see if it functions for you? I'm having no luck and the Zola error messages are not very helpful to me. If you do get it working, please give me a PR. Would be super helpful!

sure, not a problem.

Pull Request is there: https://github.com/simbleau/simbleau.github.io/pull/11
After removing and adding the Abridge module, I only needed to update the config. toml, there was a very large number of changes.
I also made a safari-pinned-tab.svg for you.

Thank you so much! Not sure what went wrong. I merged it, but I am now seeing this, notice the font change on the date. Any clue why?

I'll be honest it's quite jarring. It might be the same font, but it definitely looks off, at least the spacing.

Also is there any chance we could see the "Day/night" switcher turn colors too? It is the only grey item on my site and sticks out a bit unnaturally... Which isn't too big of a deal.

ahh ok, I can try some stuff, but it would be helpful if you could try some values as well, let me find the values that change those settings and post them here, one moment.

Sure thing.

We can scratch needing the day/night icons switching colors - I just noticed you uploaded a better blue theme which uses grey. I like it more! No action necessary.

One file which adds a little space between them so they are not crammed together is sass/include/_zola.scss
You will see a class .rpad that adds a little right padding to each of those elements.
In this Same file you will see a .info  this is what makes the font-size of everything down there smaller.
Play around with these and see what you like.

The main things:

"May 17, 2022" vs "2022 May 17"
"9 min read" could probably be on the same line as the title
The metadata was moved to the bottom of each post, which I'd rather see as close to the title as possible

for the position of the info we can have an option in config.toml
I can set the date format back to month day, year
let me make a couple changes in a few minutes and see how you like it.

looks good, but on longer titles the appears of the read time may end up looking odd... like when it needs to wrap. especially if it ends up wrapping only the read time.
I can definitely make an option to have the readtime on the title if thats how you want it though!

The bottom font size was 1em, same as the rest of the font

I don't like it being on the same line honestly, I've tried making it look better lol, thoughts?

.

So you thinking keep the read time with the other metadata?

Yes

yeah, thats why I removed the author on the index, I am thinking What I want to do is make an option
author_page and author_index, so that I can display the author on the article, but not on the index.

I wouldn't care if fontawesome was leveraged here

This would be my favorite:

what does the code like that look like, paste it here, and I will work it into some options for the config.toml

The changes nessary to do this are simple:

Change the font size back to 1em for the info class.
rpad only on the glasses and calendar items.
glasses: , calendar: , info:

ahhh i see you put the category closer to the tags, i like that too.

ahhh i see you put the category closer to the tags, i like that too.
I will add some class options for those meta fields, then people can set whatever class they want, which would support custom svg css or fontawesome.

If they opt into fontawesome, we already define a different search icon. We should do the same here

yeah, I will make the class definitions for these the way you set  it, so that if they enable fontawesome then they are good to go. (so long as they started with the example config.toml)

I completed most of this, also I think I probably can apply color to that svg search icon dynamically, going to give a try anyway.

give that a try, don't forget the new options in config.toml

Awesome work! Currently it's missing some padding around the icon:

Also a (very) minor thing I noticed was the light/dark icon appears cut off on the right side:

Interesting you spotted that, I also noticed the same thing on the very top of the fontawesome spyglass in your search.
It seems to be something that affects the fontawesome icons but not the ones included with abridge.

I will fix that icon padding now, just need to add a space.

I think I might know the solution for the clipping on the fontawesome icons, probably set the height but not the width with a new class similar to svgs


According to Isabel Briggs Myers, there are sixteen types of personalities identities, and there are four vital elements of categorizing people into the various sixteen personalities identities. The four key elements are:
Introversion (I) vs. Extraversion (E)
Sensing (S) vs. Intuition (N)
Thinking (T) vs. Feeling (F)
Judging (J) vs. Perceiving (P)
More information on personality typing is here (https://www.truity.com/page/16-personality-types-myers-briggs)
The test contains the four stages above and provides the personalities of the user based on the most common options in the user's test answers. In order words, the questions are structured to determine if the user is an introvert or extravert, sensing or intuition, thinking or feeling, judging or perceiving. In this test app, we prompt users for questions related to each of the four stages above and categorize people into the below personality types: INFP, INTJ, INFJ, INTP, ENFP, ENTJ, ENTP, ENFJ, ISFJ, ISFP, ISTJ, ISTP, ESFJ, ESFP, ESTJ, ESTP. For more information about personality identities, kindly follow the link below: https://www.truity.com/page/16-personality-types-myers-briggs
The goals of this tutorial are to:
Makes convincing concepts clearer and understanding enough for beginners.
Shows the implementation of the Go array in a way that enables the reader how an array can be used in an I/O application such as quiz app.
Makes a clean implementation of formatting strings in Go in relation to data representation in a table.
Shows how to write Go functions in relation to an array, string, and floating-point manipulations.
Reference
Myers Briggs Personality Interpretation
Is your feature suggestion related to a current problem or issue? Please describe.
A clear and concise description of what the problem is. Ex. I''ve found it difficult when [...]
Describe the solution you'd like to implement to the program
A clear and concise description of what you want to happen.
Describe alternatives you've considered or seen
A clear and concise description of any alternative solutions or features you've considered.
Additional context on how you could go about building this
Add any other context or screenshots about the feature request here.

Based on your key takeaways/goals, I think this topic does not add much value to the readers. Furthermore, it can easily be found in the official docs and other blog sites. Feel free to suggest another topic. Thanks


Promise.done is deprecated.

Atom now uses ES6 Promises instead of Q. Call promise.then instead of promise.done
Promise.done (/Applications/Atom.app/Contents/Resources/app.asar/src/atom-environment.js:1214:5)
Object.openUriFor (/Users/liam/.atom/packages/rspec/lib/rspec.coffee:78:10)
Object.runForLine (/Users/liam/.atom/packages/rspec/lib/rspec.coffee:97:19)
atom-workspace.atom.commands.add.rspec:run-for-line (/Users/liam/.atom/packages/rspec/lib/rspec.coffee:34:26)
CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:259:29)
<unknown> (/Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:3:59)

fixed in #78


Bracket Pairs Colors isn't Working

Hi, since the last update my VS Code Bracket Pairs color setting stop working, I checked the posible solutions on some pages but they only talk about the 2 options that are both active on my case 🤷🏻♂ Any suggestion? It was working perfectly until the update.
settings.json:
	"editor.guides.bracketPairs": "active",
	"editor.guides.highlightActiveBracketPair": true,

I suddenly discover the dam problem, the local and workspace settings were ok, but the specific settings of the project were modified by a collage on the repo for some reason🤦🏻♂


[Feature] Ability to set/change data after node creation

I've hit this roadblock sooo many times. I try to update the underlying data, but I am unable to, because the library only returns read-only ref to current data. At the moment, only option to overcome this problem is to re-generate the node. This commit fixes that by adding methods (mutable and immutable) for changing the underlying data.

Also added the ability to set edge width, since that's also something that could be useful (especially when there is large number of nodes, the thick lines are a huge distraction) :D

Thanks! Nice, that you highlighted these things. They are needed 100%. I just did not have such cases myself and I grateful that you are using the lib and find these childhood problems)

I ll merge in couple of hours and release a new version with these changes, for them not longer being a blocker in your project

Hey, np, thanks for merging <3!
Btw, don't feel pressured to release new versions, I'm usually working on the project, find something that could be added to the lib, fork it, add it as a feature, instruct cargo to use the fork (also testing the changes that way) and then wait for a new release :D -- tldr; I don't mind waiting, since I can use the fork until you want to make a new release

No problem because it is not a breaking change. Minor versions for me are easy to release


Grid widget: "rows" per page" selector

Hi, Mr. Atanasov.
It is for sure a secondary issue, but... Issue.
As in the subject, whenever selecting the dropdown to change the number of rows" per page,
the list get displayed left sided in the page. You can easily verify this in whatever the case example.
I guess this occurs since from 1.9.0 release.
Not sure in 1.8.2.
1,8.1 works fine.
Thank You for Your superbe widget set.
Francesco.
Anzio - Italy

Could you send me a screenshot. Are you using Chrome or Internet Explorer?

Yes, actually I am using Interner Explorer (ver.: 11.0.9600.18861).
Here follows the screenshot samples (before and after).
Regards.
Francesco.

p.s.: how could I send You the gijgo message file in italian Language (i.e.: messages.it-it.js, if useful of course)?
Let me know, pls.
Regards.
Francesco

The best way to send me the it-it.js is with pull request in github (https://help.github.com/articles/creating-a-pull-request/). If you create a pull request your name your be listed as contributor in this project in all sites that use github.
If you are new in git and github and this is very complicated for you, than you can send me the files as attachment to this ticket.
I fixed the issue with the dropdown in the new development version. You can find the new build only in the dist folder at github. I will submit an official release within a few days.
Thanks in advance for the Italian translation.

To be faster, i decided to drop here the "messages.it-it.js" (the .txt extension is needed to do this).
If anything wrong, just let me know.
Thank You for fixing issue!
messages.it-it.js.txt

The new version is released. I also added the Italian translation to the new release. You can check it at http://gijgo.com/datepicker/example/localization


Unwanted fade out & track change

An unwanted fadeout and track change occurs in these scenarios:

The track is over 3 minutes long (looped or not). A fade out occurs before the 3 minute mark, then the next track plays for the rest of the duration including the fade out.
The track does not loop and ends within the specified duration. The next track plays for the rest of the duration including the fade out.

Regarding the "maximum" duration of 3 minutes, it would be nice if there was an option to change this in case the song length is unknown (or technically infinite due to channel desyncs and such).

I went ahead and investigated this, and found out that this bug is ancient - it was probably in the very first version of NSFPresenter and just hasn't been caught until now. The reason is that RusticNES' NSF player defaults to playing a song for 3 minutes but only if the NSF has multiple tracks. Most people (myself included) only use NSFPresenter for single track NSFs since that covers the vast majority of typical tracker exports, so the bug hasn't been triggered until now.
The fix for this is thankfully pretty simple (one line of code!) but I don't want to create a release just for this fix - I have a few extra features I'd like to finish first. With that said, I know you compiled from source, so I went ahead and pushed a commit to fix this so you can get a proper render done. I'll leave this issue open for now to make sure I test before the next release.

Fixed in v0.6.0.


[v4] Popover/Positioner jitter

I thought I fixed the jittering of Popover and Positioner multiple times at this point. Today I ran into another instance in which it happens.

I am using a screen connected to my MacBook, and that is when this issue can happen. As you can see the width of the html tag is not an integer, but is 1424.8px. Now we fully understand the circumstances this happens, I can actually recreate and test it properly.
Zoomed in by 125%
In this case I am also zoomed in 125%:

Different value within Positioner
Within the positioner logic we are using the following statement document.documentElement.clientWidth + window.scrollX which returns a number of 1425.
What I am getting from the targetRef

this.positionerRef.offsetWidth is jumping
Finally I think I found the actual problem, the positionerRef constantly gives a slightly different width — off by one pixel.

Current potential solution
  preventJitter = (prevValue, nextValue) => {
    // When the device pixel is not an integer and
    // ...when the absolute difference between the previous and next value is 1
    // ...kick in anti jitter.
    if (
      !Number.isInteger(window.devicePixelRatio) &&
      Math.abs(nextValue - prevValue) === 1
    ) {
      return prevValue
    }

    return nextValue
  }

  update = ({ prevDimensions }) => {
    if (!this.props.isShown || !this.targetRef || !this.positionerRef) return

    const targetRect = this.getTargetRect()
    const viewportHeight =
      document.documentElement.clientHeight + window.scrollY
    const viewportWidth = document.documentElement.clientWidth + window.scrollX

    const dimensions = {
      height: this.preventJitter(
        prevDimensions.height,
        this.positionerRef.offsetHeight
      ),
      width: this.preventJitter(
        prevDimensions.width,
        this.positionerRef.offsetWidth
      )
    }

    const { rect, transformOrigin } = getPosition({
      position: this.props.position,
      targetRect,
      targetOffset: this.props.targetOffset,
      dimensions,
      viewport: {
        width: viewportWidth,
        height: viewportHeight
      },
      viewportOffset: this.props.bodyOffset
    })

    this.setState(
      {
        left: rect.left,
        top: rect.top,
        transformOrigin
      },
      () => {
        window.requestAnimationFrame(() => {
          this.update({ prevDimensions: dimensions })
        })
      }
    )
  }

I'm not super familiar with how this functions today, but couldn't we do something a bit simpler – i.e. always take a Math.rounded (or floored) number for calculations. That should result in the same value every time.
It's unclear why the positionRef would be giving different values, but I presume it's actually the inclusion of the positioned popover that's causing the subtle difference.

@mshwery we are actually doing Math.round in the calculation — which I thought fixed the problem. However, it seems that the input keeps because offsetWidth is not reliable in this case. It keeps shifting after the calculation is done when the screen is zoomed in. I am going to test this solution and see if it fixes the problem.
One thing that might be affecting this issue as well is that the contents of the Popover give it a slightly different width on each render when the content exceeds the minWidth  — possibly due to the nature of how text is rendered.

Yeah it definitely seems part of the problem:


internal: start new macro test suite

I don't like our macro tests -- they are brittle and don't inspire
confidence. I think the reason for that is that we try to unit-test
them, but that is at odds with reality, where macro expansion
fundamentally depends on name resolution.
bors r+

Hey.  Is it possible this change could have affected code completion in a function that's getting wrapped by a proc macro?
#[endpoint {
    method = GET,
    path = "/0/factory/ping",
}]
pub(crate) async fn factory_ping(
    rqctx: Arc<RequestContext<Arc<Central>>>,
) -> SResult<HttpResponseOk<FactoryPingResult>, HttpError> {
    let c = rqctx.context();
    let req = rqctx.request.lock().await;
    let log = &rqctx.log;

    let f = c.require_factory(log, &req).await?;

    f. /* <------------ trying to complete members here */

    info!(log, "factory ping!"; "id" => f.id.to_string());

    c.db.factory_ping(&f.id).or_500()?;

    let res = FactoryPingResult { ok: true };

    Ok(HttpResponseOk(res))
}

The endpoint macro there is from Dropshot.
What seems to happen is: Code completion works maybe the first time I try to complete a struct member or whatever, but then it just stops returning results after that.  It seems to stick that way until I restart rust-analyzer.  LspHover still works, and shows me the correct types, even after code completion stops.
With git bisect I was (I believe!) able to pin the new behaviour on 49f5fecf06a0c639b0cb33eacdbad977010b3382.  If I build the previous commit, completion seems to work no matter how many times I do it.
It also seems like, if I remove the endpoint wrapper from the code just leaving the bare async function, completion works the same (much better) both before and after this commit.
The RA logs are pretty huge, but it seems like, when it stops working, I see a message like:
[INFO rust_analyzer::main_loop] handle_event(Diagnostics([(FileId(0), [Diagnostic { range: Range { start: Position { line: 56, character: 8 }, end: Position { line: 56, character: 8 } }, severity: Some(Error), code: Some(String("syntax-error")), code_description: Some(CodeDescription { href: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("rust-analyzer.github.io")), port: None, path: "/manual.html", query: None, fragment: Some("syntax-error") } }), source: Some("rust-analyzer"), message: "Syntax Error: expected SEMICOLON", related_information: None, tags: None, data: None }, Diagnostic { range: Range { start: Position { line: 56, character: 30 }, end: Position { line: 56, character: 30 } }, severity: Some(Error), code: Some(String("syntax-error")), code_description: Some(CodeDescription { href: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("rust-analyzer.github.io")), port: None, path: "/manual.html", query: None, fragment: Some("syntax-error") } }), source: Some("rust-analyzer"), message: "Syntax Error: expected COMMA", related_information: None, tags: None, data: None }, Diagnostic { range: Range { start: Position { line: 56, character: 30 }, end: Position { line: 56, character: 30 } }, severity: Some(Error), code: Some(String("syntax-error")), code_description: Some(CodeDescription { href: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("rust-analyzer.github.io")), port: None, path: "/manual.html", query: None, fragment: Some("syntax-error") } }), source: Some("rust-analyzer"), message: "Syntax Error: expected expression", related_information: None, tags: None, data: None }, Diagnostic { range: Range { start: Position { line: 56, character: 31 }, end: Position { line: 56, character: 31 } }, severity: Some(Error), code: Some(String("syntax-error")), code_description: Some(CodeDescription { href: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("rust-analyzer.github.io")), port: None, path: "/manual.html", query: None, fragment: Some("syntax-error") } }), source: Some("rust-analyzer"), message: "Syntax Error: expected R_PAREN", related_information: None, tags: None, data: None }, Diagnostic { range: Range { start: Position { line: 56, character: 31 }, end: Position { line: 56, character: 31 } }, severity: Some(Error), code: Some(String("syntax-error")), code_description: Some(CodeDescription { href: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("rust-analyzer.github.io")), port: None, path: "/manual.html", query: None, fragment: Some("syntax-error") } }), source: Some("rust-analyzer"), message: "Syntax Error: expected SEMICOLON", related_information: None, tags: None, data: None }, Diagnostic { range: Range { start: Position { line: 56, character: 36 }, end: Position { line: 56, character: 36 } }, severity: Some(Error), code: Some(String("syntax-error")), code_description: Some(CodeDescription { href: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("rust-analyzer.github.io")), port: None, path: "/manual.html", query: None, fragment: Some("syntax-error") } }), source: Some("rust-analyzer"), message: "Syntax Error: expected SEMICOLON", related_information: None, tags: None, data: None }, Diagnostic { range: Range { start: Position { line: 56, character: 37 }, end: Position { line: 56, character: 37 } }, severity: Some(Error), code: Some(String("syntax-error")), code_description: Some(CodeDescription { href: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("rust-analyzer.github.io")), port: None, path: "/manual.html", query: None, fragment: Some("syntax-error") } }), source: Some("rust-analyzer"), message: "Syntax Error: expected expression", related_information: None, tags: None, data: None }, Diagnostic { range: Range { start: Position { line: 56, character: 38 }, end: Position { line: 56, character: 38 } }, severity: Some(Error), code: Some(String("syntax-error")), code_description: Some(CodeDescription { href: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("rust-analyzer.github.io")), port: None, path: "/manual.html", query: None, fragment: Some("syntax-error") } }), source: Some("rust-analyzer"), message: "Syntax Error: expected expression", related_information: None, tags: None, data: None }, Diagnostic { range: Range { start: Position { line: 56, character: 56 }, end: Position { line: 56, character: 56 } }, severity: Some(Error), code: Some(String("syntax-error")), code_description: Some(CodeDescription { href: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("rust-analyzer.github.io")), port: None, path: "/manual.html", query: None, fragment: Some("syntax-error") } }), source: Some("rust-analyzer"), message: "Syntax Error: expected SEMICOLON", related_information: None, tags: None, data: None }, Diagnostic { range: Range { start: Position { line: 56, character: 56 }, end: Position { line: 56, character: 56 } }, severity: Some(Error), code: Some(String("syntax-error")), code_description: Some(CodeDescription { href: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("rust-analyzer.github.io")), port: None, path: "/manual.html", query: None, fragment: Some("syntax-error") } }), source: Some("rust-analyzer"), message: "Syntax Error: expected expression", related_information: None, tags: None, data: None }, Diagnostic { range: Range { start: Position { line: 42, character: 0 }, end: Position { line: 63, character: 1 } }, severity: Some(Error), code: Some(String("macro-error")), code_description: Some(CodeDescription { href: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("rust-analyzer.github.io")), port: None, path: "/manual.html", query: None, fragment: Some("macro-error") } }), source: Some("rust-analyzer"), message: "unexpected token", related_information: None, tags: None, data: None }])]))

Something like that seems to happen each time I fail to get completions.  The problem persists with the latest master commit.
Should I file an issue?  What more information can I gather to help with this?  Thanks!


Compatibility with Java 19

Problem
Our project is using Java 18 and we have tried to upgrade it to Java 19.
The code compiled properly, but the modules using the ModelMapper dependency began to fail in runtime with the following message:
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 63 at org.modelmapper.internal.asm.ClassReader.<init>(ClassReader.java:199)

Solution
The org.modelmapper.internal.asm.ClassReader class mentioned above comes from the asm-tree library (org.objectweb.asm is shaded by the maven-shade-plugin configured in ModelMapper).
The update of the asm-tree library to the latest version 9.4 seems to solve the issue: it compiles properly and there are no more runtime failures.

Thanks, will have a release soon!

Thank you very much!


Survey app accessibility

[ ] adding alt text to images
[ ] ensuring that screen readers read all elements of the survey

I'm afraid it is currently not possible to add alt text to images unfortunately.
There is a recent open open issue on the streamlit website: https://github.com/streamlit/streamlit/issues/8563
I tried out two screen readers:
mac build-in VoicOver
firefox browser extension [Pericles](https://getpericles.com/)

Both didn't work great with the streamlit app. For example:
images were not recognized
captcha was completely ignored
Response options are not read out
help tooltips are not read out

@chrisdburr in our technical test meeting I thought you had mentioned there is a way to add alt text, do you remember where you saw this?

I wasn't 100% about whether it would work, but I saw that markdown is supported for adding images, which means that (in principle) alt-text would be added in the usual way:
![Add alt text here](path/to/file.jpg)


Release mode, and the CI, are temporarily broken

I swear these  <things have broken> issues are turning into "The beacons of CI have been lit!". On the bright side, it wasn't Windows' fault for once :joy:
Conan is broken. Specifically, the SCons generator in Conan doesn't include system_libs, which breaks our fresh addition to the dependency list, icu.
I raised an issue upstream, but to save myself work, I'm just going to temporarily disable the build portion of the CI. I could manually add the libraries and blah blah blah, but I'm really not in the mood for hacking stuff together for something I get to remove next Conan release.
Conan has a frequent release schedule; this issue will be closed when a fix is implemented, and said fix is included in a release. Based on their previous release schedule, this shouldn't take more than a couple weeks. In the meanwhile, the debug builds work fine. If their general release schedule pointed to the next release being in several months, I'd be more inclined to add a workaround.
This issue should in theory only affect Linux and Windows when the build is in release mode. The Windows build might just break  in general. Linux has been held together by the undefined behavior sanitizer (which conveniently linked -ldl -lpthread, hence why only debug mode worked), but I have no idea if anything else links in the system_lib used on Windows, so that might break entirely. The issues started appearing because of tests that used the date API. Not gonna lie, I'm surprised the CI built at all after I added the library, but I guess it's just a coincidence.
Just for fun, I decided to cross-reference with my other project based on the same build architecture as this project, and there were a few dependencies that conveniently held together the entire repo, purely by coincidence. It not breaking in the entire time I used it is pretty much a miracle
Anyway, someone assigned themselves the issue and fixed it, so it's kinda done. Unfortunately, the effects won't be seen until the 1.28 release, which isn't gonna be tonight, for obvious reasons. There's gonna be a little while between it being merged and the fix becoming usable. In the meanwhile, stuff might compile, but there's a fairly decent chance some build configurations just won't compile. This doesn't mean support for anything is cut off, and I'll get back on track as soon as Conan gets an update. I'm gonna continue working on Taskranger in the meanwhile, which might accidentally break more stuff (I'm not exactly known for writing perfect code on the first go :joy:). OS support will just be wobbly for a little while, and possibly broken, but I will fix that as soon as I can.

This has temporarily been worked around by switching over to the pre-release version of conan: https://test.pypi.org/project/conan/
A conan_requirements.txt file has also been added, so it should be fairly easy to grab Conan and build again. Still kinda hackish, but this gets us going a few days earlier compared to waiting for the full release.

This should be fine now


Daily log suggestion

It would be good if, in the statistics tab, there was an option to see the hours spent today, not just the previous day. It would be really useful.

Hi @rednatnas ,
I have added the functionality you requested in my pull request. Before @lazy-guy merge the pull request, you can temporarily use my fork https://github.com/Weizhe-Chen/tomodoro which is hosted on this website: https://wchen-robotics.com/tomodoro/

I have merged the changes done by @Weizhe-Chen (#7), which adds this functionality.


[stackless bytecode] fix a bug in VecPack and VecUnpack #288_159

Motivation
This PR fixes a bug in stackless bytecode generation of vector bytecode instructions.
Previously, VecPack is translated to:
let temp = vector::new();
for element in operands {
    vector::push_back(temp, element);
}

This is buggy because vector::new() returns a new vector object but vector::push_back takes in a mutable reference to a vector. This PR adds that missing borrow_mut:
let temp = vector::new();
let mut_ref = &mut temp;
for element in operands {
    vector::push_back(mut_ref, element);
}

Same reasoning applies to VecUnpack.

/canary

:sunny: Canary successful

/land


[Bug]: Hamburger menu doesn't close on small screen devices(mobile)

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
The hamburger menu does not close when a user clicks on any menu item while opening the website on mobile or small-screen devices, and it must be closed manually.
https://github.com/user-attachments/assets/682b3d20-6597-4100-9867-15a30fce1fe0
Expected behavior
when user click on any menu item then the hamburger menu should be closed
Add ScreenShots
No response
On which device are you experiencing this bug?
Android, Chrome
Record

[X] I have read the Contributing Guidelines
[x] I'm a GSSOC'24 contributor
[X] I have starred the repository

please assign this issue to me
i want to work on this issue @Trisha-tech