TypeError: expected sequence object with len >= 0 or a single integer

i run python tools/train.py --config example/dior/faster_rcnn_r101_fpn_1x.py --validate
I see the explanation, but I don't suggest that I think it can be used, so I added a test during the training. Would you like to ask the reason for the error??
_rpn_bbox: 0.0190, loss_cls: 0.1400, acc: 95.4509, loss_bbox: 0.0957, loss: 0.2879
[                                                  ] 0/11738, elapsed: 0s, ETA:Traceback (most recent call last):
File "tools/train.py", line 154, in
main()
File "tools/train.py", line 150, in main
meta=meta)
File "/data/maq/PycharmProjects/TSD-master/mmdet/apis/train.py", line 169, in train_detector
runner.run(data_loaders, cfg.workflow, cfg.total_epochs)
File "/data/maq/anaconda3/envs/mmdetect/lib/python3.7/site-packages/mmcv/runner/runner.py", line 380, in run
epoch_runner(data_loaders[i], **kwargs)
File "/data/maq/anaconda3/envs/mmdetect/lib/python3.7/site-packages/mmcv/runner/runner.py", line 288, in train
self.call_hook('after_train_epoch')
File "/data/maq/anaconda3/envs/mmdetect/lib/python3.7/site-packages/mmcv/runner/runner.py", line 241, in call_hook
getattr(hook, fn_name)(self)
File "/data/maq/PycharmProjects/TSD-master/mmdet/core/evaluation/eval_hooks.py", line 28, in after_train_epoch
results = single_gpu_test(runner.model, self.dataloader, show=False)
File "/data/maq/PycharmProjects/TSD-master/mmdet/apis/test.py", line 19, in single_gpu_test
result = model(return_loss=False, rescale=not show, **data)
File "/data/maq/anaconda3/envs/mmdetect/lib/python3.7/site-packages/torch/nn/modules/module.py", line 547, in call
result = self.forward(*input, **kwargs)
File "/data/maq/anaconda3/envs/mmdetect/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 153, in forward
return self.gather(outputs, self.output_device)
File "/data/maq/anaconda3/envs/mmdetect/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 165, in gather
return gather(outputs, output_device, dim=self.dim)
File "/data/maq/anaconda3/envs/mmdetect/lib/python3.7/site-packages/torch/nn/parallel/scatter_gather.py", line 68, in gather
res = gather_map(outputs)
File "/data/maq/anaconda3/envs/mmdetect/lib/python3.7/site-packages/torch/nn/parallel/scatter_gather.py", line 63, in gather_map
return type(out)(map(gather_map, zip(*outputs)))
File "/data/maq/anaconda3/envs/mmdetect/lib/python3.7/site-packages/torch/nn/parallel/scatter_gather.py", line 63, in gather_map
return type(out)(map(gather_map, zip(*outputs)))
TypeError: expected sequence object with len >= 0 or a single integer

I meet same error

There is no --validate argument, only --no-validate.

I see the explanation. That means we can't train for several rounds and then Val?
------------------ 原始邮件 ------------------
发件人: "Kai<EMAIL_ADDRESS>发送时间: 2020年5月29日(星期五) 中午1:12
收件人<EMAIL_ADDRESS>抄送: "利剑"<1632401541<EMAIL_ADDRESS>主题: Re: [open-mmlab/mmdetection] TypeError: expected sequence object with len >= 0 or a single integer (#2842)
There is no --validate argument, only --no-validate.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

Validation is enabled by default. If you want to skip the validation, you can add the --no-validate argument. I am afraid the version you were using is too old.

I downloaded the latest. If validation is enabled by default, why is there no map of Val data in my training process? Is there something wrong with my setup? Please advise. Thank you
------------------ 原始邮件 ------------------
发件人: "Kai<EMAIL_ADDRESS>发送时间: 2020年5月29日(星期五) 中午1:18
收件人<EMAIL_ADDRESS>抄送: "利剑"<1632401541<EMAIL_ADDRESS>主题: Re: [open-mmlab/mmdetection] TypeError: expected sequence object with len >= 0 or a single integer (#2842)
Validation is enabled by default. If you want to skip the validation, you can add the --no-validate argument. I am afraid the version you were using is too old.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

python tools/train.py --config example/dior/faster_rcnn_r101_fpn_1x.py
evaluation = dict(interval=1, metric='mAP')
optimizer
optimizer = dict(type='SGD', lr=0.02, momentum=0.9, weight_decay=0.0001)
optimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2))
learning policy
lr_config = dict(
policy='step',
warmup='linear',
Operation is just training, and there is no Val data calculation map? Please advise

Hi, I face this issue too. It is happening in gather_map() called in DataParallel. I have attached a screen shot of the debug window here:

Hi, I face this issue too. It is happening in gather_map() called in DataParallel. I have attached a screen shot of the debug window here:

Hi, I also face the "TypeError: expected sequence object with len >= 0 or a single integer" when one epoch is finished.
What caused this problem and could you please provide some advices about how to solve this problem?
Many thanks.

I downloaded the latest. If validation is enabled by default, why is there no map of Val data in my training process? Is there something wrong with my setup? Please advise. Thank you
…
------------------ 原始邮件 ------------------ 发件人: "Kai<EMAIL_ADDRESS>发送时间: 2020年5月29日(星期五) 中午1:18 收件人<EMAIL_ADDRESS>抄送: "利剑"<1632401541<EMAIL_ADDRESS>主题: Re: [open-mmlab/mmdetection] TypeError: expected sequence object with len >= 0 or a single integer (#2842) Validation is enabled by default. If you want to skip the validation, you can add the --no-validate argument. I am afraid the version you were using is too old. — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

Hi, I also face the "TypeError: expected sequence object with len >= 0 or a single integer" when one epoch is finished.
Have you solved this problem?
What caused this problem and could you please provide some advices about how to solve this problem?
Many thanks.

Validation is enabled by default. If you want to skip the validation, you can add the --no-validate argument. I am afraid the version you were using is too old.

Hi, the problem of  "TypeError: expected sequence object with len >= 0 or a single integer"  seems not relevant with the argument setting.
When one epoch is finished, and start do validation, the problem will arise.
Is it caused by the sample of validation number can not be divided with the (num_gpu * samples_per_gpu)?
Looking forward for your advises.

Validation is enabled by default. If you want to skip the validation, you can add the --no-validate argument. I am afraid the version you were using is too old.

Hi, the problem of "TypeError: expected sequence object with len >= 0 or a single integer" seems not relevant with the argument setting.
When one epoch is finished, and start do validation, the problem will arise.
Is it caused by the sample of validation number can not be divided with the (num_gpu * samples_per_gpu)?
Looking forward for your advises.

add the code
            if isinstance(model, torch.nn.DataParallel):
                model.device_ids = [0]

below
https://github.com/open-mmlab/mmdetection/blob/0d67223f3ce5015f822391d3d334ae7794dbe283/mmdet/apis/test.py#L25

Validation is enabled by default. If you want to skip the validation, you can add the --no-validate argument. I am afraid the version you were using is too old.

Hi, the problem of "TypeError: expected sequence object with len >= 0 or a single integer" seems not relevant with the argument setting.
When one epoch is finished, and start do validation, the problem will arise.
Is it caused by the sample of validation number can not be divided with the (num_gpu * samples_per_gpu)?
Looking forward for your advises.

add the code
            if isinstance(model, torch.nn.DataParallel):
                model.device_ids = [0]

below
https://github.com/open-mmlab/mmdetection/blob/0d67223f3ce5015f822391d3d334ae7794dbe283/mmdet/apis/test.py#L25

Validation is enabled by default. If you want to skip the validation, you can add the --no-validate argument. I am afraid the version you were using is too old.

Hi, the problem of "TypeError: expected sequence object with len >= 0 or a single integer" seems not relevant with the argument setting.
When one epoch is finished, and start do validation, the problem will arise.
Is it caused by the sample of validation number can not be divided with the (num_gpu * samples_per_gpu)?
Looking forward for your advises.

add the code
            if isinstance(model, torch.nn.DataParallel):
                model.device_ids = [0]

below
https://github.com/open-mmlab/mmdetection/blob/0d67223f3ce5015f822391d3d334ae7794dbe283/mmdet/apis/test.py#L25

Hi, do you know why this error occured?
How these 2 lines can solve the error?
Thanks!

Validation is enabled by default. If you want to skip the validation, you can add the --no-validate argument. I am afraid the version you were using is too old.

Hi, the problem of "TypeError: expected sequence object with len >= 0 or a single integer" seems not relevant with the argument setting.
When one epoch is finished, and start do validation, the problem will arise.
Is it caused by the sample of validation number can not be divided with the (num_gpu * samples_per_gpu)?
Looking forward for your advises.

add the code
            if isinstance(model, torch.nn.DataParallel):
                model.device_ids = [0]

below
https://github.com/open-mmlab/mmdetection/blob/0d67223f3ce5015f822391d3d334ae7794dbe283/mmdet/apis/test.py#L25

Hi, do you know why this error occured?
How these 2 lines can solve the error?
Thanks!

just debug

Hi folks
When I run the file it is correctly working, however, when I debug the code, it do not work. Following Errors are showing:
Traceback (most recent call last):
  File "C:\Program Files\JetBrains\PyCharm 2020.2.1\plugins\python\helpers\pydev\pydevd.py", line 1448, in _exec
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "C:\Program Files\JetBrains\PyCharm 2020.2.1\plugins\python\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "C:/Users/Nafees Ahmed/PycharmProjects/pythonProject/DeepConvLSTM-master/DeepConvLSTM-master/DeepConvLSTM.py", line 14, in <module>
    get_ipython().system('wget https://archive.ics.uci.edu/ml/machine-learning-databases/00226/OpportunityUCIDataset.zip')
AttributeError: 'NoneType' object has no attribute 'system'

I could not understand, why it happens and how can I solve it out? Please help me to sort out this problem

Validation is enabled by default. If you want to skip the validation, you can add the --no-validate argument. I am afraid the version you were using is too old.

Hi, the problem of "TypeError: expected sequence object with len >= 0 or a single integer" seems not relevant with the argument setting.
When one epoch is finished, and start do validation, the problem will arise.
Is it caused by the sample of validation number can not be divided with the (num_gpu * samples_per_gpu)?
Looking forward for your advises.

add the code
            if isinstance(model, torch.nn.DataParallel):
                model.device_ids = [0]

below
https://github.com/open-mmlab/mmdetection/blob/0d67223f3ce5015f822391d3d334ae7794dbe283/mmdet/apis/test.py#L25

That's not a good solution. You only train with nn.DataParallel but when you validate and test your model doesn't utilize nn.DataParallel and that may cause CUDA out of memory error when you try to use the same batch size of training.

Is there still a problem with the latest version now?

I have this issue when my config gpus is variable is >1. Setting it to 1 stopped the problem

Is this problem solved? Someone please let me know.

I had the same problem, and it was solved by setting gpu_ids = [0] in the config file (obviously when you use 1 single GPU to test).


can not run ppo.py

when i  use python ppo.py to run the program,i meet the error. Do you know how to fix it? thank you!

Hi, sorry for the very late reply. This was a student project, which i did not look at in a long time. This is an error with your python version. In older versions, it was possible to call functions "statically" (I do not know what the proper term in python is), without creating an Evaluation object. My guess is that you are using a newer version of python. Therefore, you can either downgrade your python version, or add parentheses behind the evaluation: Evaluation().evaluate(...). Hope this helps!
Yours Yannik


Setup task is done.

I am using Ubuntu OS and I have Docker installed on it.
In the setup task, I have written details about HTB lovetok challenges.

So the commit history is a bit off on this one.
I recommend the following steps.

sync your SusheelThapa:main with the remote gajabaar:main.
create a branch for the setup-tasks with git checkout -b setup-tasks
do your work push it to your repository
send out a pull request.

I wont be merging the commit history that shows solution to earlier tasks.


Performance problem with defining finalizer

This issue asked for logging of spans that were GC:ed without being closed first.
https://github.com/census-instrumentation/opencensus-java/issues/1876
And this PR implemented support for that by using finalizers:
https://github.com/census-instrumentation/opencensus-java/pull/1877
I made the following simple PR to revert that behaviour, but it does not seem like it will be merged:
https://github.com/census-instrumentation/opencensus-java/pull/2043
The reason for wanting to revert this behavior is that we saw significant performance problems that could be traced back to a large increase of finalization code in GC and also creation of opencensus spans - there is a static synchronization object that is used for that.
Avoiding finalizers is a well established practice - see Effective Java. It's also mentioned in the Checkstyle rule that was disabled: https://checkstyle.sourceforge.io/apidocs/com/puppycrawl/tools/checkstyle/checks/coding/NoFinalizerCheck.html
So instead of going directly for a PR, perhaps it would be better to start a discussion as an issue instead.
Let's try to align on a good solution before making the code changes.
An alternative solution to simply removing the finalization could be to split the class into a base class and two subclasses, where only only of the subclasses overrides finalize and then make the behaviour configurable.
Either you would want to avoid finalizers for performance reasons or you would want to enable finalizers to get logging of misuse of spans. You could even have a mix of it - use sampling to only apply finalizers to a small subset of spans. If there's a systematic problem of not closing spans it would show up anyway.
We could even take it a step further - We could start by not using finalizers but instead keep an atomic counter of currently open spans. If that is continously growing that would be an indicator that we are leaking spans and then we should enable finalizers to assist identifying the problem.

Hey @spkrka, thanks for providing details about the issue you're facing due to usage of finalizer in the OpenCensus code.
While #2046 seems to be a workable solution, it is more complicated that we'd prefer since OpenCensus is now in maintenance mode as you may know.
Given the severity of the issue you're having, and the purpose of the finalizer being purely informative (detection and logging of a common bug), I think we would agree to revert the change and merge your PR #2043.
Does that sound good for you?

Yes, I think #2043 would be great to merge!

Thanks for your patience @spkrka. The fix has been merged, we will try to make a new release within the next few days.

Great, thanks!


ResiezObserver loop completed with undelivered notifications

Describe the bug
After upgrading @snowplow/browser-tracker from version 3.22.1 to version 3.23.0 we have been getting thousands of Bugsnag with the message ResiezObserver loop completed with undelivered notifications.
This message is reported for all browsers and OS using our website.
We don't have any instances of ResizeObserver in our codebase that might be causing this.
To Reproduce
Run the latest version of @snowplow/browser-tracker and capture the errors with a tool like Sentry or Bugsnag. We don't know how to trigger it, but Bugsnag reports this error for each session.
Expected behaviour
No errors should be reported.
Observations
Checking the codebase I see the ResizeObserver being registered but not unregistered at https://github.com/snowplow/snowplow-javascript-tracker/blob/1a073e4ef57cce3d5307ec2ed7a9f1e3a022ff9f/libraries/browser-tracker-core/src/helpers/browser_props.ts#L34.

Hi @sykes10, thank you for reporting this problem!
I have tried to reproduce it using a demo React app with the JS tracker version 3.23.0 and installed BugSnag, but wasn't able to produce the errors that you are getting.
Could you please help us investigate this deeper? Searching for the problem, I see that it is often happening due to users having some browser extensions installed. Do you see the problem happening for all users or certain browsers/setups? Are you able to reproduce this locally?

Hi @matus-tomlein, Thanks for your quick reply, first I can confirm that downgrading the package to 3.22.1 stops all the Bugsnags.
To give you more context our application is a Nuxt app version 3.8.2 with vue 3.3.13.
I also checked the demo you linked and I see that the Snowplow version you have in the package.json is 3.14.0 but the error is introduced in 3.23.0. Could you double-check that it was tested with the right version?
Also here's a list of some browsers that are experiencing this.

@sykes10 Just following up on this one - did you manage to find a way to recreate this?

I've been busy these last days but I will try to create a reproducible environment this week.

We're seeing this too, could this be because readBrowserProperties() triggers a forced synchronous layout?
So, the ResizeObserver calls readBrowserProperties() which forces a synchronous layout that then enqueues a new resize observer notification if the body size changes.


Update the state machine to support the universal nonce approach

As discussed  under https://github.com/celestiaorg/celestia-app/pull/464, changes will need to be done to the state machine to  accommodate the universal nonce approach.
These changes include:

[ ] Updating the abci.endBlock to post valset requests with the correct nonce
[ ] Add checks on the valset/data commitment confirms checking the nonces
[ ] Add keepers/handlers tests checking the correctness of the nonces

To implement universal nonce inside the state machine, there are two approaches:
Replace nonce with universal_nonce
This approach consists of replacing the nonce field in attestations and requests to universal_nonce and index them using it.
Pros
Easy to implement
Cons
The problem with this approach is that the queries will be inconsistent. For example, we have 10 valsets, if I query  for valset 5, there is a chance the request will fail as a data commitment will have universal nonce 5.
Thus, anyone querying the QGB would need to have prior knowledge of the universal nonce concept. I think this is not a good thing, as universal nonce is an internal mechanism used to introduce synchrony, not a user facing thing.
Also, the following issue should be investigated https://github.com/celestiaorg/celestia-app/issues/483 to see if this implementation will expose the node to potential attack vectors.
Add an extra universal_nonce field
This consists of  keeping the nonce field as it is, and  adding a new field called universal_nonce.
Pros
This would keep the logical separation between valsets and data commitments and allow an easier interaction with the QGB module by users.
Cons

Introduce more state
Would require choosing an approach of the following when it comes to indexing attestations by universal nonce:

Add a mapping: universal_nonce => type {valset, data commitment}, nonce to retrieve the correct attestation based on a universal_nonce
Add a second index (as done in some other projects) where attestations will be indexed both by nonce and universal_nonce. This leads to two questions:

When indexing by two keys, will the data be duplicated? The following statement will be used to persist:

store.Set(nonceKey, k.cdc.MustMarshal(&valset))
store.Set(universalNonceKey, k.cdc.MustMarshal(&valset))

The answer would require good knowledge of how the cosmos-sdk stores state internally. Because,  if the data will be duplicated, it will be better to implement the above mapping instead.

Will add it as soon as I remember it  :(

Personal opinion
I am more inclined towards the extra universal_nonce field. However, will need to investigate how indexing works internally.

@evan-forbes When you have time please, your input is so valuable.

We decided to move forwards with replacing nonce with universal_nonce and defining an Attestation interface to contain either data commitments or valsets.


FIO-8092: update isEmpty to isComponentDataEmpty and account for differing component data types

Link to Jira Ticket
https://formio.atlassian.net/browse/FIO-8092
Description
This PR more fully adopts component-specific isEmpty() logic from the formio.js renderer to FormUtils so that we can be sure things like logical operators work as expected. It also converts instance shim calls to getValidationFormat and isPartialDay for day components to preexisting utility functions in the core library.
Breaking Changes / Backwards Compatibility
n/a
Dependencies
n/a
How has this PR been tested?
Added automated tests around isEmpty.
Checklist:

[x] I have completed the above PR template
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation (if applicable)
[x] My changes generate no new warnings
[x] My changes include tests that prove my fix is effective (or that my feature works as intended)
[x] New and existing unit/integration tests pass locally with my changes
[x] Any dependent changes have corresponding PRs that are listed above

👍


Update seg_with_decoder_2d.py - make inputs modular

I'll close this, as this is only for internal development purpose.


Feature Req: Projects: Allow User Stories to be checked off by student

In the project pages, I would like to be able to check off what I've completed. It would save me time to not have to re-read to find out where I am.
Link to a project page: https://learn.freecodecamp.org/responsive-web-design/responsive-web-design-projects/build-a-survey-form

Browser Name: Chrome
Browser Version: Latest
Operating System: Windows 10

It's not optimal I agree, but you use the Test Suite as a way to know where you're at. Simply press the "Run Tests" button and it should tell you what you've passes successfully and what you haven't yet.

I wrote a small chrome extension that will make user stories clickable so you can check them off. You can find it here: https://github.com/stevenkuipers/checkboxFCC.

Closing this as stale. This is a good suggestion, but it didn't get much attention. Feel free to create a new issue and maybe it will get some more traction.


fix travis CI

Install dephell via pip.
Run unit tests on python 3.8.
Do not install dephell before markdown lint job.

@orsinium could you look at my PRs?

Thank you for your contribution. This is not a proper solution, sorry. Dephell must work on the recommend way installation. The problem is with flatdict lib, and I've made pr that removes it. Now I'm working on the next DepHell release, and after that everything will be fine. Patient, please, it's OSS. No hurry. If changes you've made are urgent for you, use your fork for a while. Chill out and have fun :)

thank you for explanation ;)
It's not something I really need, I just wanted to make some improvements to this great project, because I am using it in few legacy projects and it's working there pretty nice


Extensions config file search logic is not compatible with graphql-code-generator config search

I've struggled when trying to use single graphql config file for all vscode extensions (graphql releated):

graphql-codegen-vscode
graphql.vscode-graphql (Graphql language service)

graphql.vscode-graphql and @graphql-codegen/cli both searching configs by graphql-config rules
So for example if you have graphql.config.js file for config.

graphql.vscode-graphql (Graphql language service) will find it
@graphql-codegen/cli fill find it (run npm exec -- graphql-codegen)

but graphql-codegen-vscode won't, because it doesnt relay on @graphql-codegen/cli config search, it has it's own generateSearchPlaces.ts
So to setup "single" config i dive into graphql-codegen-vscode and found out that it has over config search logic. According to it i created codegen.js with content:
import conf from './graphql.config';

module.exports = {
	...conf
};

Not very clean...
Also until i created that file graphql-codegen-vscode didn't even alert that it can't find config. It just didn't run silently.
From my perspective as a creators of a 3rd party libraries/extensions based on a some original lib we should not override native/original logic. Because if we do - user of our lib must know docs of original lib and also our docs (if it exists).  And our library inevitably will go out of date or you will need keep an eye on each release and sync your code with original.
So graphql-codegen-vscode  should not override native behavior of  @graphql-codegen/cli tooling. In that particular case - should not have alternative config search.

oh yeah I will import the function from graphql-codegen as my PR was merged:
https://github.com/dotansimha/graphql-code-generator/pull/7017

Looks like I'm hitting this as well:

My usecase is that I'm using the new client preset and so my config is called codegen.ts.

@neongreen this is interesting. I will put guard in place for this type error to never happen, but it's weird, because according to graphql-codegen/cli a config object should be always returned

@neongreen in 1.1.0  it won't find find your config anyway, but at least  the type error should be fixed.
BTW what config do you use?
generateSearchPlaces.ts is exact copy of @graphql-codegen/cli so it should be able to find all the config files the same.

@Romanchuk

graphql-codegen-vscode didn't even alert that it can't find config. It just didn't run silently.

In 1.1.0 it should tell you that config was not found, when you explicitly run the command.

@capaj here's my config:
// codegen.ts

import type { CodegenConfig } from '@graphql-codegen/cli'
import { printSchema } from 'graphql'
import { schema } from '@lib/graphql/schema'

const config: CodegenConfig = {
  schema: printSchema(schema),
  documents: ['{components,lib,pages}/**/!(*.graphql).{ts,tsx}'],
  generates: {
    './generated/graphql/': {
      preset: 'client',
      plugins: [],
    },
  },
}

export default config

I also have a graphql.config.json but I'm not sure if that's relevant. Although tbh now I'm not 100% sure which config the extension is looking for — is it the codegen config or the "single" graphql-config config?

Update: after upgrading to 1.1.0 I'm getting a different error, see #29.

I haven't tested with a ts file as config. I always use yaml or json.
Will try next weekend.

@capaj wondered if you managed to look into this? As far as I can tell it's just ignoring my codegen.ts file.


exclude rooms having undefined reportID

Details

Fixed Issues

$ #30381
PROPOSAL: https://github.com/Expensify/App/issues/30381#issuecomment-1781953824
Tests

The test scenario applies to Web only.  The PR would resolve the error on other platforms as well.

Login using Account A and create workspace room
Open another tab and login using Account A.
Sign out of the first tab, takes few tries, but eventually you should get blank screen and signed out yet still able to click on the plus icon. Click on the plus icon to create new workspace.
Now sign back into the app using Account A.
Navigate to workspace and notice the error "your session has expired please sign in again" with grayed out workspace.
Click on the grayed out workspace and then click on threedots menu.
Notice the only available option is 'Delete Workspace'. The test confirms that the rooms #announce and #admins are not visible because the reportID is undefined.

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

[x] Verify that no errors appear in the JS console

PR Author Checklist

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

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] 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)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

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

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] 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)
[x] I followed proper code patterns (see Reviewing the code)

[x] 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)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] 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.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] 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.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] 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)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] 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
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[x] 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)
[x] 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)
[x] All JSX used for rendering exists in the render method
[x] 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

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

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

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

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] 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)
[x] 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.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

web.webm

MacOS: Desktop

Tagging @allroundexperts for the C+ review

@sourcecodedeveloper Your checklist is not complete. Please check off all the items.

@allroundexperts PR is ready for review.

@sourcecodedeveloper Sorry, what is this new commit about?

Please ignore, reverting.

@allroundexperts Reassure Performance Tests are passing on local branch. Probably just need to re-run workflow.
Test Suites: 7 passed, 7 total
Tests:       18 passed, 18 total
Snapshots:   0 total

@roryabraham awaiting to finish review and merge.

ReportScreen reassure tests are known to be flaky. We'll try one more time and if it's still failing we'll merge anyways

@roryabraham Added memoization, also that goToRoom callback was not necessary.
The PR Author Checklist has an error 'Resource not accessible by integration'

PR Author Checklist failure is unrelated – will be fixed by https://github.com/Expensify/App/pull/31233

LGTM, but we need to retest before merging as there have been substantial changes

Agreed, I did retesting before I pushed changes.

Everything appears to be working as expected:

Thanks @sourcecodedeveloper for making those changes

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/roryabraham in version: 1.3.99-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/roryabraham in version: 1.3.99-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/roryabraham in version: 1.4.0-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Get Redis host from env var.

This was inadvertently hard-coded when this app was moved to 12 factor.

Merge away.


Package zendframework/zend-diactoros is abandoned, you should avoid using it. Use laminas/laminas-diactoros instead.

The following warning appears when installing your package:

Package zendframework/zend-diactoros is abandoned, you should avoid using it. Use laminas/laminas-diactoros instead.

This should be corrected as of v2.2.0! Thanks!


mobile: Add support for HTTP1 with TLS in the TestServer

This is needed for tests that use HTTP1 with TLS.
Risk Level: low (test only)
Testing: n/a
Docs Changes: n/a
Release Notes: n/a
Platform Specific Features: n/a

/assign @abeyad


a bug in select.js

sorry for not having much time to pull request,
But  it's really important to add  a  ; to select.js at  the first line  to avoid pack problems ,
just liking ;(function () {

Hi,
As described in the issue template we would like to have a full description with plunker and version.
In the case we can have a look at the issue and reproduce the issue much quicker.
Please update your issue as requested in the issue template.

The issues forum is NOT for support requests. It is for bugs and feature requests only.
Please read https://github.com/angular-ui/ui-select/blob/master/CONTRIBUTING.md and search
existing issues (both open and closed) prior to opening any new issue and ensure you follow the instructions therein.
Bug description:
Link to minimally-working plunker that reproduces the issue:
Version of Angular, UI-Select, and Bootstrap/Select2/Selectize CSS
Angular:
UI-Select:
Bootstrap/Select2/Selectize CSS (if applicable):

Thanks :smile:


Colophon | Source | Security --> Development

This is related to #2847.
Colophon is a strange word for the description of used software. So I'd rename Colophon into Tools, and move all three links to a separate Development page. The direct link to source code could be made by a little :octocat: next to twitter at left corner.

Need to get back :octocat: and Twitter icons. How to rename Colophon?


uuid dependency needs bumping to ^3.0.1

In d34630e9c3e07ca7983d37695d5668377f94a793 the dependency on uuid was bumped to ^3.0.0 but unfortunately uuid 3.0.0 does not support the API used (it was only in 3.0.1 that uuid/v4 came into existence - see node-uuid/HISTORY.md and https://github.com/kelektiv/node-uuid/issues/154).
If an application has uuid 3.0.0 pinned via npm shrinkwrap or similar, then enzyme will happily install, but then break.

Fixed in #1001.


Allow patch version to be configured

Integrate changes from 00211c8 provided by @jrobcary

THanks!
John
On 7/22/2015 11:51 AM, Jean-Christophe Fillion-Robin wrote:

Integrate changed from 00211c8
https://github.com/davidsansome/python-cmake-buildsystem/commit/00211c8ed9e00700f8746a41fe5b1d01bd663705
provided by @jrobcary https://github.com/jrobcary
—
Reply to this email directly or view it on GitHub
https://github.com/davidsansome/python-cmake-buildsystem/issues/57.

@jrobcary You contribution associated with a tweak of the continuous integration script and we have now have a build matrix for all version of python from 2.7.3 to 2.7.10. :8ball:
See https://open.cdash.org/index.php?project=CPython&date=2015-07-23#Travis-CI
Note that currently only topic starting with ci- prefix pushed on my fork (jcfr) are tested on travis and appveyor. This is because one of the original author of the build system gave me pull access to his repo (see #6  for more details about this) but i can't associate it with travis or appveyor. I guess at some point, we should probably transfer ownership of the project to a more visible location (most likely an organization to facilitate the administrative side of things - ideally the cpython organization on github). Before doing so ... I would like to have some basic support for python 3.x series and also setup testing of cross-compilation.

Very nice!
I have one more coming.


looping video

how to set looping on video using ExtVideoViewHolder or ExoVideoViewHolder?

@initfusion Please take a look at this sample.

Thank you so much...

I still don't know how to loop video. While extending ExtVideoViewHolder video is not looping.

@Nominalista You need to override the method getNextTarget and return Target.THIS_PLAYER instead. Sorry for the lack of documentation.


Automated refill of the fee-bumping utxo pool with vault's funds

I can already imagine the really poor UX of having user to refill their utxo pools in order to be able to operate.
Can we come up with a mechanism to automatically refill as we use the architecture ?
An obvious one would be eg (did not think much about it) appending a [pre-defined value]sats output for each participant to the unvault transaction. It drains a small part of funds out of it, and the created outputs being unencumbered by a timelock they could directly be used to revault the attempt. This means we can account for them as well so this could avoid the dread of "please refill your WT's utxo pool" as long as feerate does not go crazy.
The only alternatives i can see to automated fee utxo pool refill are "batching ceremonies" and "refill ceremonies", which, well, we certainly want to prevent as much as possible.
ref https://github.com/re-vault/practical-revault/issues/16

Seems okay-ish, not super clean tho.
I suppose one could use the sync server to somewhat request to have a refill UTXO in a spend? (automagically I suppose, when fee wallet gets low)

I'd like to note our working assumption here:

A busy mempool and high fee-rate can occur at any time and so watchtowers must always be prepared. This means actively maintaining their fee-bumping UTXO pool.

There are a few open questions here:

What is a sufficient amount of funds per vault UTXO, and how should these be distributed in a the fee-bump UTXO pool?
Is it necessary for each watchtower to maintain 100% collateral for the entire set of vault UTXO?
Given the two mechanisms for re-filling a watchtowers fee-bump UTXO pool (through change outputs and through routine signing ceremonies), can this process be practical and automatic?

Half-baked idea:

What if we enable co-operation between watchtowers? So WT1 broadcasts an RBF fee-bump tx signed with ANYONECANPAY|ALL. The fee-rate spikes and invalidates it. WT2 notices this transaction in the mempool and bumps the fee again.

Closing this, not relevant anymore. See #16.


compiled app run with sudden exit  on mac

Please describe your issue:
using electron-forge make to generate app,  when i click it
Put the console output here

  unexpected exit

What does your config.forge data in package.json look like?
{
"name": "my-new-app",
"productName": "my-new-app",
"version": "1.0.0",
"description": "My Electron application description",
"main": "src/index.js",
"scripts": {
"start": "electron-forge start",
"package": "electron-forge package",
"make": "electron-forge make",
"publish": "electron-forge publish",
"lint": "echo "No linting configured""
},
"keywords": [],
"author": {
"name": "Abbet Wang",
"email"<EMAIL_ADDRESS>},
"license": "MIT",
"config": {
"forge": {
"packagerConfig": {},
"makers": [
{
"name": "@electron-forge/maker-squirrel",
"config": {
"name": "my_new_app"
}
},
{
"name": "@electron-forge/maker-zip",
"platforms": [
"darwin"
]
},
{
"name": "@electron-forge/maker-deb",
"config": {}
},
{
"name": "@electron-forge/maker-rpm",
"config": {}
}
]
}
},
"dependencies": {
"electron-squirrel-startup": "^1.0.0"
},
"devDependencies": {
"@electron-forge/cli": "6.0.0-beta.43",
"@electron-forge/maker-deb": "6.0.0-beta.43",
"@electron-forge/maker-rpm": "6.0.0-beta.43",
"@electron-forge/maker-squirrel": "6.0.0-beta.43",
"@electron-forge/maker-zip": "6.0.0-beta.43",
"electron": "6.0.0"
}
}

This pinned issue explains what you are seeing and explains how to fix it https://github.com/electron/electron/issues/19511
Please ensure your transitive dep on electron-packager is completely up to date


Typo in constant

https://github.com/biocypher/biochatter-server/blob/b4c761927353e800be0dd4370199c060d56ca13a/src/constants.py#L11
@fengsh27 same questions here, is the typo problematic, and does the constant need to be the same as the port (i.e., do we need to update this to 5001)?

No, this code is just error code and not used as port.

OK, thanks for clarifying. Would probably be good to fix the typo.
Is the 5000 code a convention, or is this randomly selected?

I will fix it in next submission. 5000 is random selection : )

Hi @fengsh27, this is still unfixed, could be good to do on the side in one of the next feature additions.

@fengsh27 reminder that we could get rid of these minor TODOs in the next update

@fengsh27 is this fixed?


[Enhancement] Expose WordPress translations functions to Twig context

Currently, Timber provides only the standard __ translation function, but more are needed in many other cases, for example when we have to support singular/plural translations. I would like to see Timber exposing to Twig all the common WordPress translations functions. Here a list of them:

translate
__
_e
_n
_x
_ex
_nx
_n_noop
_nx_noop
translate_nooped_plural

For sure not all will be useful, I just copied here all the translation functions I found on Codex. At least, Timber should support the ones giving singular/plural forms of a text.

:+1:

Will sort this soon.


Adding Jest Mocks

Description
Through-out the various apps I work on, we always end up writing jest mocks for this lib.
Is there any opposition to adding file like <root>/jest/react-native-device-info-mock.js that can be imported into an app's jest setup ?
There are a few other libs that follow a similar approach:

react-native-netinfo
react-native-async-storage

Use Case
As mentioned in various other issues related to mocks, this would greatly improve Developer Experience .

If we're cool with it, I can make a PR adding it.

It would be a fantastic DX improvement, it would be most welcome

awesome! I'll get this in soon.

hello,
i tried to use the mocks to change the return value of the hasNotch function but I can not get it working especially when doing two tests with different return values.
Is there a way you could provide an example usage for the mocks where you change the return value of a device info?

I guess you would have to use jest.spyOn(RNDeviceInfo, "hasNotch").mockReturnValue(false) and reset the jest spies between tests. @mikehardy would that be correct?

import mockRNDeviceInfo from 'react-native-device-info/jest/react-native-device-info-mock'
jest.mock('react-native-device-info', () => mockRNDeviceInfo)

Thank you, this worked well for me! @sem4phor

If you prefer to set up your mocks using Jest's convention for automatically mocking modules, this approach also worked for me:

Create a file called react-native-device-info/index.ts inside your project's __mocks__ folder
Set the contents of that file to

export default 'react-native-device-info/jest/react-native-device-info-mock';

hello,
i tried to use the mocks (by registrating it in the jest setup file) to change the return value of the hasNotch function but I can not get it working especially when doing two tests with different return values.
Is there a way you could provide an example usage for the mocks where you change the return value of a device info?
My Code: in setup setup.js
import mockRNDeviceInfo from 'react-native-device-info/jest/react-native-device-info-mock'
jest.mock('react-native-device-info', () => mockRNDeviceInfo)

Hi @sem4phor, wanted to do the same for test cases if you found any solution regarding this, it will be so much help. Thank you

export default 'react-native-device-info/jest/react-native-device-info-mock';

That is correct syntax @thepavangollapalli
as in the code, it will be resolved as string
import RNDeviceInfo from 'react-native-device-info';
console.log(' --- xdebug', { RNDeviceInfo });
// --- xdebug {
//      RNDeviceInfo: 'react-native-device-info/jest/react-native-device-info-mock'
//    }

better
-export default 'react-native-device-info/jest/react-native-device-info-mock';
+export default jest.requireActual('react-native-device-info/jest/react-native-device-info-mock');


feat: Added trigger grouping for form dialogs

Description
Updated ProjectTree to support grouping triggers by property for form dialogs.
Task Item
Closes #4150
Screenshots
When form dialogs feature is NOT enabled:

When form dialogs feature IS enabled:

Coverage decreased (-0.0008%) to 55.362% when pulling 2d498739818ab5eb32b49d4849b4d1d8a2d9598a on gcox/project-tree-trigger-groups into e8d0d55d1360454d71013c381b044b3c1373e208 on main.


Receive an unhandled error while building a database project if .NET Core isn't installed

Steps to Reproduce:

Create/open a db project.
Build.

Error:

Expected: report a user-friendly error about how dotnet couldn't be found.

@SakshiS-harma I am seeing these two boxes (one with the helpful error) - can you please share the output window content as well to see if there is any reason why its not showing the helpful message on some machines

@udeeshagautam I remember I saw these two errors as well (helpful message as well).
As for now, I tried to repro the issue by uninstalling .NET Core. But this time I didn't receive these two errors instead just the following:

The output window has the following error:

@SakshiS-harma can you check if you're still able to repro? Assigning to you for repro and initial investigation

I am still able to repro the issue. The last time that I tried I didn't clean dotnet completely (didn't remove the folder), hence wasn't seeing the original behavior. But I can confirm, I am seeing it now. And there is no information/error in output window.

Closing this bug, since the error that was mentioned as unhandled, actually adds up with the informational message and helps with understanding the root cause to be the absence of .NET Core. Informational message can be ignored without the error- hence keeping it as-is.


Add notification when proposal is submitted

Proposal received
Revised email message below:
Dear [applicant name],

We appreciate your Proposal submission to Open Technology Fund. You can expect to hear back from us in approximately 2-4 weeks.

If you have any questions in the meantime, please submit them here: [link to communications tab of application]. Please do not reply to this message.

For more information about our support options, review process, and selection criteria, please visit our website: https://www.opentech.fund/

Project name:
Contact name:
Contact email:

Kind regards,
OTF

Currently there are no message for proposals received

I think we can reuse the hypha/apply/funds/templates/funds/email/confirmation.html template for this.


Counter based on x-death header.

It seems that recent versions of RabbitMQ inject a x-death header with a count property, which includes the number of times the message was re-enqueded. Perhaps we could have a built-in counter that uses that.

Hi @satazor,
Can you point me to the relevant RabbitMQ docs please? As far as I can tell, the x-death header is only added when a message it dead lettered, not when it is rolled back.

Maybe you were thinking of the x-delivery-count header provided by the new quorum queues?

Hello @cressie176.
I’m not sure since I haven’t tested, but it seems that it’s added once you nAck. I will investigate
further and reply back.
See also:

https://www.mon-code.net/post/117/Control-the-number-of-retries-of-a-message-with-x-death-header-in-RabbitMQ
https://rabbitmq.com/dlx.html#effects (a message is dead lettered if nAck with requeue set to true)

Yes, that was my understanding too - when you nack and the queue is configured with a dead letter exchange, RabbitMQ adds the x-death header and count. This isn't useful for rascal's counter functionality, which is intended to protect against poisoned messages which crash your application, causing a rollback without giving you the opportunity to nack.

If what you want to do is automatically retry a nacked message up to a maximum number of times you can already do this with rascals republish recovery strategy.

@cressie176 Oh I misunderstood the docs. A message that crashes your app will be handled by the counter, which is different from the recovery strategy, where we are explicitly telling that the message failed to be processed.
The only issue I see with the default counters is that for very large deployments, with many consumers running on different logical servers, the crash loop will might take a lot of time to be resolved, as the message would need to traverse all consumer nodes, up to X times. Actually, the loop will be infinite if the processes are restarted in between as the memory would be lost.
Using Redis or some other storage is indeed the only 100% safe way to deal with this.

Using a quorum queue would also solve the crash / poisoning, as you mentioned: https://www.rabbitmq.com/quorum-queues.html#poison-message-handling.


Upload cache status

Hi
I have question about upload cache, how does it work?
When I upload big files it seems that they get copied in to the cache(cache directory is growing) and then uploaded in the background, because when cp command is finished then i see outgoing traffic started and the file is visible on the google drive with size 0, and when background upload stops(outgoing traffic stops) then the file is fully accessible. During the background upload I,m able to clear the cache with -cc command and upload continues so I don't know if it's using the cache or original file.
Is there way to check progress of this background upload process, or to disable it so cp command would be done synchronously with the actual upload?
Regards

Is there way to check progress of this background upload process, or to disable it so cp command would be done synchronously with the actual upload?

Yes, you can set async_upload=false in the config file.

Don't know how I missed that options in the config file :)
Thanks :+1:

OK, I've Checked that option but it's no good.
Copy progress works as before and during that time file gets copied to cache I presume. After that actual upload starts and copy operation "hungs" on 100% until upload is finished.
Overall speed is lower because during copy to cache there is no actual upload.
I's faster to use async mode because then after copy to cache upload starts and another file gets copied to cache.
So is there any way to check status of this background upload process?

So is there any way to check status of this background upload process?

No, sorry (FUSE API was not really designed with remote file systems in mind). If you need more control, you should switch to another app (e.g. https://github.com/odeke-em/drive).

Ok, thanks


Feature/registration tracking

Hi @gtvj,
Would it be possible to have a look at this PR? Thank you 👍

Thanks @gtvj, I've made those changes 👍


[Bug] Download Link Invalid

What is your configuration ?
Not applicable
Describe the Bug
Hello, the download link appears to be invalid at the time of writing, please fix it. Thanks.
Steps to Reproduce

Go to the "Make the Installation USB" section of the README
Click on the link to download macOS Sonoma

Anything else ?
No response
I'm checking my form

[X] I have specified a title related to my problem
[X] My title starts with "[Bug]" (without the quotes)

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Hi @orange2008,
You didn't use the proper issue template to create this issue, you should have used the "Bug/Issue Report (English)" option.
It's okay for this time but please try to choose the correct one if you need to open another issue in the future.
So I updated the labels and title of this issue, as well as your message accordingly.
In order to help you resolve this issue, I need you to complete the Steps to Reproduce section of your message.
After a quick first investigation, the download links appears to be working, so I really need more precision to help you.
Thanks for using my EFI.
Aurélien.

Hi @orange2008, You didn't use the proper issue template to create this issue, you should have used the "Bug/Issue Report (English)" option. It's okay for this time but please try to choose the correct one if you need to open another issue in the future. So I updated the labels and title of this issue, as well as your message accordingly.
In order to help you resolve this issue, I need you to complete the Steps to Reproduce section of your message. After a quick first investigation, the download links appears to be working, so I really need more precision to help you.
Thanks for using my EFI. Aurélien.

The link https://www.mediafire.com/file/wio1f0s9e8bzyiw/Olarila+Sonoma.raw/file is not valid.
Once I opened it, it redirected to the error page.

Hi @orange2008,
Indeed, the link doesn't seem to work. Thank you for informing me about this.
I updated it so you are now able to download the latest version of macOS.
Thanks for using my EFI.
Aurélien.


Execute network experiments against specific application dependencies

Currently we can perform network experiments against a network interface and affect all egress traffic using netem.
This feature request is regarding adding the ability to choose which dependencies (essentially IPs) to target from the interface without affecting the rest.
Example: Three applications that talk to each other. Introducing latency between application A and B should keep intact the communication between A-C and B-C.

Fixed for Docker via https://github.com/litmuschaos/litmus-go/pull/103 & Containerd/CRI-O via https://github.com/litmuschaos/litmus-go/pull/104


feat: only add - Copy once for copied components

We only want to add "- Copy" to the end of a component once, so if you copy a copy it won't endlessly append "- Copy". Copy?
closes https://linear.app/system-initiative/issue/BUG-280/copying-a-component-which-has-been-copied-appends-an-additional-copy

bors merge


[Button] - Wrong social colors

Some social button variations use outdated or wrong color codes, e.g.

Twitter:

Official: #55acee (https://about.twitter.com/company/brand-assets)
Semantic-UI: #0084b4

Pinterest:

Official: #bd081c (https://business.pinterest.com/en/brand-guidelines)
Semantic-UI: #00aced (light blue instead of red?)

Google+:

Official: #dd4b39 (https://developers.google.com/+/branding-guidelines#googleplus-icon)
Semantic-UI: #dc4a38 (almost)

Instagram:

Official: no single color (http://brandcolors.net, https://www.instagram-brand.com)
Semantic-UI: #49769c

I didn't check all social buttons, just the ones I needed. And it seems as if there are more social button variants defined than visible on the docs page http://semantic-ui.com/elements/button.html#social

They are a few years old. I'll revisit.

It might be cool to fix the instagram button to use their standard gradient. I've fixed the other colors as mentioned.

Yes, that would be a nice solution! :smiley:

Perhaps this needs a read:
https://developers.googleblog.com/2016/11/moving-to-google-sign-in-for-a-better-user-experience-and-higher-conversion-rates.html
Google no longer allows the red "plus" buttons, and forbids the use of the PLUS icon


Segfault with node v0.6.6

Reproduce by trying to encrypt or decrypt a password

Oops, can't reproduce, nuked node_modules and reinstalled, everything is dandy now!


remove panic_handler feature gate

This crate will compile on 1.30-beta and on stable 1.30 when they are released.
r? @rust-embedded/cortex-m (anyone)

And of course I forgot to actually remove the feature gate ...
re-r? @therealprof

bors r+


Open Gallery for image selection when '2. Upload from Gallery' is clicked

https://user-images.githubusercontent.com/93662806/196053219-a25eeb99-0b18-4e97-a5c6-57baa8edb722.mp4
When the '2. Upload from Gallery' is clicked/tapped in lib/drawer.dart section, a choose image from gallery option must pop-up allowing the user to choose images from the gallery and upload it for image scanning.

Hi @Soham-Chakraborty-8455, Please assign me this task. I can solve the issue.

Sure

Okay

Hey @Soham-Chakraborty-8455 ! I would like to open a pr to this issue. Please assign this to me.


Please provide an example for using WMI ExecMethod, full with passing arguments and extracting results

Suggestion
#2041 adds sample WMI code, but it does not help with the more complex ExecMethod mechanism, which needs to be used eg. in a Xen VM to access read/write to XenStore (through xeniface driver).
Ideally the experience gained on xenstore-win experimentation could be used to implement an ExecMetho abstraction in wmi-rs

I'd suggest reaching out to https://stackoverflow.com/search?q=windows-rs

Done with https://stackoverflow.com/questions/77703233/using-wmi-execmethod-from-rust

Well, apparently crowds do not seem to have much to say on this point :shrug:

@kennykerr any idea how we can make progress on this?

If you are just looking for help using an API, you can also try: https://docs.microsoft.com/en-us/answers/topics/windows-api.html
If you have a minimal repro in C++ and are just looking for help porting to Rust, you can share the minimal repro here and I can take another look.

I do have a minimal repo, but only in Python as shown on StackOverflow and PowerShell as follows:
# Locate the base object
$base = gwmi -n root\wmi -cl CitrixXenStoreBase
# Create a session
$sid = $base.AddSession("MyNewSession")
$session = gwmi -n root\wmi -q "select * from CitrixXenStoreSession where SessionId=$($sid.SessionId)"

# Write a value
$session.SetValue("data/TempValue","This is a string")

This comment is helpful:
https://stackoverflow.com/questions/77703233/using-wmi-iwbemservicesexecmethod-from-rust#comment137154095_77703233

This comment is helpful:
https://stackoverflow.com/questions/77703233/using-wmi-iwbemservicesexecmethod-from-rust#comment137154095_77703233

The comment has its merits, and notably helps me to realize the URL to the driver was incorrect.
Nevertheless, the question indeed applies to any ExecMethod call with input and output parameters - the thing is, I'm no Windows dev or admin, and I had to choose a short example I could easily test myself.  This WMI SDK example will likely be easier for Windows devs.

I recently added a sample illustrating how to use VARIANT types.
https://github.com/microsoft/windows-rs/blob/master/crates/samples/windows/shell/src/main.rs
This has not yet been published, but you add a git dependency to kick the tires:
https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories

I'm starting to consider dropping the wmi-rs crate altogether, since it does not really appear to be maintained, but that will require translating into Rust those boilerplate-looking steps 1-5 from the WMI example, possibly taking code from wmi-rs itself.
Given the number of calls involved, it would likely be useful to have a Rust version of that example.

Thanks for the example, I'll see if I can write a quick sample.

My quick incomplete one, inspired by wmi-rs for initialization, so 0.48-targeted ... and already problematic for 0.52 when it comes to passing WBEM_GENERIC_FLAG_TYPE as u32
use std::error::Error;
use windows::core::{BSTR, w};
use windows::Win32::System::{ Com, Rpc, Wmi };

fn type_of<T>(_: &T) -> String{
    format!("{}", std::any::type_name::<T>())
}

fn main() -> Result<(), Box<dyn Error>> {
    unsafe {
        Com::CoInitializeEx(None, Com::COINIT_MULTITHREADED)
    }.expect("should initialize COM");
    unsafe {
        Com::CoInitializeSecurity(
            None,
            -1, // let COM choose.
            None,
            None,
            Com::RPC_C_AUTHN_LEVEL_DEFAULT,
            Com::RPC_C_IMP_LEVEL_IMPERSONATE,
            None,
            Com::EOAC_NONE,
            None,
        )
    }.expect("should initialize COM security");
    // COM locator
    let loc: Wmi::IWbemLocator = unsafe {
        Com::CoCreateInstance(&Wmi::WbemLocator, None, Com::CLSCTX_INPROC_SERVER)
    }.expect("should get a COM locator");
    // connection
    let object_path_bstr = BSTR::from(r#"ROOT\CIMV2"#);
    let svc = unsafe {
        loc.ConnectServer(
            &object_path_bstr,
            &BSTR::new(),
            &BSTR::new(),
            &BSTR::new(),
            Wmi::WBEM_FLAG_CONNECT_USE_MAX_WAIT.0,
            &BSTR::new(),
            None,
        )
    }.expect("should connect to WMI service");

    // "set proxy"
    unsafe {
        Com::CoSetProxyBlanket(
            &svc,
            Rpc::RPC_C_AUTHN_WINNT, // RPC_C_AUTHN_xxx
            Rpc::RPC_C_AUTHZ_NONE,  // RPC_C_AUTHZ_xxx
            None,
            Com::RPC_C_AUTHN_LEVEL_CALL,      // RPC_C_AUTHN_LEVEL_xxx
            Com::RPC_C_IMP_LEVEL_IMPERSONATE, // RPC_C_IMP_LEVEL_xxx
            None,                        // client identity
            Com::EOAC_NONE,              // proxy capabilities
        )
    }.expect("should set proxy blanket");

    // get Win32_Process object

    let mut wmi_object = None;
    let object_path = BSTR::from("Win32_Process");
    let ret = unsafe { svc.GetObject(&object_path,
                                     Wmi::WBEM_FLAG_RETURN_WBEM_COMPLETE.0 as _,
                                     None,
                                     Some(&mut wmi_object),
                                     None) };
    ret.expect("GetObject failure");
    let wmi_object: Wmi::IWbemClassObject = wmi_object
        .expect("WMI should find a Win32_Process object");

    // GetMethod("Create")

    let mut in_params_class: Option<Wmi::IWbemClassObject> = None;
    let mut out_params_class: Option<Wmi::IWbemClassObject> = None;

    let ret = unsafe { wmi_object.GetMethod(w!("Create"), 0,
                                            &mut in_params_class, &mut out_params_class) };
    ret.expect("GetMethod failure");

    // in params

    let in_params_class = in_params_class.unwrap();
    let mut in_params: Option<Wmi::IWbemClassObject> = None;
    let ret = unsafe { in_params_class.SpawnInstance(0) };
    let in_params = ret.expect("SpawnInstance should return an instance");

    //let var_command = VARIANT::from(BSTR::from("notepad.exe"));
    //let ret = in_params.Put(w!("CommandLine"), 0, &var_command, 0);

    // ExecMethod

    // FIXME out params

    let out_params_class = out_params_class.unwrap();

    Ok(())
}

I've expanded the WMI sample to cover ExecMethod here: #2794

I've expanded the WMI sample to cover ExecMethod here: #2794

Great, thanks, I've been able to replicate the ExecMethod("Create") call from there and to get its return value.
However, things are not so easy when in comes to my original API calls:

my GetMethod, SpawnInstance, even Putof my input parameter do succeed (I even checked thatPutwith a wrongly-named parameter raisesWBEM_E_NOT_FOUND`, though apparently putting a wrongly-typed variant does not raise any error?)
my ExecMethod still fails with WBEM_E_INVALID_METHOD_PARAMETERS

With AddSession as documented here and AFAICT declared here, I thought the following ought to work.  Any clue where to look?
    let mut in_params_class: Option<Wmi::IWbemClassObject> = None;
    unsafe { xs_base.GetMethod(w!("AddSession"), 0,
                               &mut in_params_class, std::ptr::null_mut()) }?;
    let in_params_class = in_params_class.unwrap();
    // fill input params
    let in_params = unsafe { in_params_class.SpawnInstance(0) }?;
    let var_session_name = VARIANT::from("MySession");
    unsafe { in_params.Put(w!("Id"), 0, &var_session_name, 0) }?;

    // method call
    let mut out_params = None;
    eprintln!("calling ExecMethod");
    unsafe { svc.ExecMethod(
        &BSTR::from("CitrixXenStoreBase"),
        &BSTR::from("AddSession"),
        Default::default(),
        None,
        &in_params,
        Some(&mut out_params),
        None,
    ) }?;
    eprintln!("called ExecMethod");
    let out_params = out_params.unwrap();

Sorry, I don't know anything about "xen" - best of luck!

Well, my problem in itself is not really Xen-specific, it is centered around the use of the Windows APIs (and tooling).  Here ExecMethod apparently tells me "Parameters provided for the method are not valid", and I suspect the call fails because I do not feed it the type of data it expects.
The whole WMI concept seems to be about introspection, so I guess there would be an API to look into this in_params_class returned by GetMethod and list the accepted parameters and their types, but I can't see how I'm supposed to look at it.
The MOF I pointed to shows the Id input parameter is defined as "string": [In, IDQualifier(0)]string Id - I guess my let var_session_name = VARIANT::from("MySession"); statement could really be the issue.  I see the resulting variant has a type of 8 (VT_BSTR if I trust the doc, where it does seem to be the only string type), and would as a first step want to double-check that this is indeed what the WMI object expects.  This issue that passing a VT_I4 value raises the exact same error forces me to wonder.
(Sorry that part may well be wandering off-topic, likely largely due to me being unfamiliar with the Windows habits) Is there somewhere a description of how WMI works, notably here which component does parameter type checking?  My guess would be that it is "something in the Windows-provided stack" rather than the driver implementing the method, and surely there would be some way of getting that something to output some additional traces?  I activated logging of WMI events as described here -- as much as I can, as:

when checking the "enable logging" setting as instructed I get notified that doing so "may lose events" (uh wtf did I have anything beforehand that may be lost now?)
I had to check that box and validate the dialog twice before I see the checkbox checked when opening the properties dialog again
I cannot make any sense of the "WMI events appear in the event window for WMI-Activity" statement in the instructions
even after I see a "Debug" trace under "WMI-Activity/Debug" (with empty contents, and which I guess must refer to the activation of this extra logging?) all I see are events under "WMI-Activity/Operational", where I do see only the same error returned by the API, and also see those that occurred before I activated logging

Glad you got it working!


sc.tl.umap numba error when used with init_pos="paga"

Hi Alex,
UMAP throws an error if I use scanpy.tl.ump with initial positions from sc.tl.paga. Based on the error (see below) I thought it was a problem of UMAP itself. However, the error is not thrown when called without initial positions from paga.
Here is the output / error:
sc.tl.umap(adata, init_pos='paga')

computing UMAP
    using 'X_pca' with n_pcs = 50

---------------------------------------------------------------------------
TypingError                               Traceback (most recent call last)
<ipython-input-35-924452b37e5b> in <module>
----> 1 sc.tl.umap(adata, init_pos='paga')

/opt/conda/lib/python3.7/site-packages/scanpy/tools/_umap.py in umap(adata, min_dist, spread, n_components, maxiter, alpha, gamma, negative_sample_rate, init_pos, random_state, a, b, copy)
    137         neigh_params.get('metric', 'euclidean'),
    138         neigh_params.get('metric_kwds', {}),
--> 139         verbose=max(0, verbosity-3))
    140     adata.obsm['X_umap'] = X_umap  # annotate samples with UMAP coordinates
    141     logg.info('    finished', time=True, end=' ' if _settings_verbosity_greater_or_equal_than(3) else '\n')

/opt/conda/lib/python3.7/site-packages/umap/umap_.py in simplicial_set_embedding(data, graph, n_components, initial_alpha, a, b, gamma, negative_sample_rate, n_epochs, init, random_state, metric, metric_kwds, verbose)
    984         initial_alpha,
    985         negative_sample_rate,
--> 986         verbose=verbose,
    987     )
    988

/opt/conda/lib/python3.7/site-packages/numba/dispatcher.py in _compile_for_args(self, *args, **kws)
    348                 e.patch_message(msg)
    349
--> 350             error_rewrite(e, 'typing')
    351         except errors.UnsupportedError as e:
    352             # Something unsupported is present in the user code, add help info

/opt/conda/lib/python3.7/site-packages/numba/dispatcher.py in error_rewrite(e, issue_type)
    315                 raise e
    316             else:
--> 317                 reraise(type(e), e, None)
    318
    319         argtypes = []

/opt/conda/lib/python3.7/site-packages/numba/six.py in reraise(tp, value, tb)
    656             value = tp()
    657         if value.__traceback__ is not tb:
--> 658             raise value.with_traceback(tb)
    659         raise value
    660

TypingError: Failed in nopython mode pipeline (step: nopython frontend)
Invalid use of type(CPUDispatcher(<function rdist at 0x7fb3c827f840>)) with parameters (array(float64, 1d, C), array(float64, 1d, C))
Known signatures:
 * (array(float32, 1d, A), array(float32, 1d, A)) -> float32
 * parameterized
[1] During: resolving callee type: type(CPUDispatcher(<function rdist at 0x7fb3c827f840>))
[2] During: typing of call at /opt/conda/lib/python3.7/site-packages/umap/umap_.py (776)

File "../../../opt/conda/lib/python3.7/site-packages/umap/umap_.py", line 776:
def optimize_layout(
    <source elided>

                dist_squared = rdist(current, other)
                ^

This is not usually a problem with Numba itself but instead often caused by
the use of unsupported features or an issue in resolving types.

To see Python/NumPy features supported by the latest release of Numba visit:
http://numba.pydata.org/numba-doc/dev/reference/pysupported.html
and
http://numba.pydata.org/numba-doc/dev/reference/numpysupported.html

For more information about typing errors and how to debug them visit:
http://numba.pydata.org/numba-doc/latest/user/troubleshoot.html#my-code-doesn-t-compile

If you think your code should work with Numba, please report the error message
and traceback, along with a minimal reproducer at:
https://github.com/numba/numba/issues/new

What I basically do from raw UMI counts:

total counts normalization / logarithmization
PCA, bbknn, louvain
combat, HVG, PCA, UMAP (works well)
Paga (with louvain from 2., works well)
UMAP (with positions from 4., does not work)

Any idea? Any further info needed?
Best,
Jens

Issue #666 👹 🙈

Hi! Are you beyond 1.4.2, I solved a bug around this here (https://github.com/theislab/scanpy/commit/ec2d12608dae77c68811d7742075079664eb0e4c)?

This is the output of `sc.logging.print_versions()``:
scanpy==1.4.3 anndata==0.6.20 umap==0.3.8 numpy==1.16.3 scipy==1.2.1 pandas==0.24.2 scikit-learn==0.21.2 statsmodels==0.9.0 python-igraph==0.7.1 louvain==0.6.1

Downgrading scikit-learn to 0.20.3 does not resolve the error...

What I basically do from raw UMI counts:
1. total counts normalization / logarithmization
2. PCA, bbknn, louvain
3. combat, HVG, PCA, UMAP (works well)

Just out of curiousity, you use both BBKNN and combat? Does Louvain after ComBat, HVG, and PCA not work as well for you? It's interesting that you go with two different knn graphs for clustering and visualization.

The error seems to be that rdist is called from umap.umap_.optimize_layout with float64 arrays while it can only handle float32 arrays.
There seem to have been a few changes in umap between 0.3.8 and 0.3.9 maybe you should try with that.

Just out of curiousity, you use both BBKNN and combat? Does Louvain after ComBat, HVG, and PCA not work as well for you? It's interesting that you go with two different knn graphs for clustering and visualization.

@LuckyMD I found that the clustering using the bbknn kNN graph is much cleaner on UMAP, compared to e.g. sc.pp.neighbors. From combat, I just obtain the adjusted data, not a kNN graph.

There seem to have been a few changes in umap between 0.3.8 and 0.3.9 maybe you should try 0.3.9.
@flying-sheep With scikit-learn pinned to 0.20.3 the umap version was updated to 0.3.9 (I use a containers and rebuilt it).

Great, thank you. Seems like the issue is well placed over there.

@LuckyMD I found that the clustering using the bbknn kNN graph is much cleaner on UMAP, compared to e.g. sc.pp.neighbors. From combat, I just obtain the adjusted data, not a kNN graph.

I see. So you don't recalculate sc.pp.neighbors after the combat run? Otherwise your umap is not using the combat corrected counts at all, but instead the KNN graph from bbknn as far as I understand. Then you are basically using bbknn for the embedding, and combat only for the visualization of expression values in your plots. Do your batches have similar cell type compositions?

Exactly, I do not recalculate sc.pp.neighbors after bbknn. In my understanding, UMAP uses the corrected counts via the preceding PCA step?
Yes, my batches have very similar (if not the same) cell type composition.

I think umap works on the connectivities matrix generated from sc.pp.neighbors. I guess you can test this by omitting sc.pp.neighbors before running umap. Or just running umap after your step 2 and look at the difference.

Yes, my batches have very similar (if not the same) cell type composition.
In that case it would make sense for both bbknn and combat to work quite well.

@falexwolf @flying-sheep FYI it seems that sc.pp.combat returns a dtype('float64'). When this ends up in adata.X, problems occur during sc.tl.umap with init_pos.  Specifically, because the type of get_init_pos_from_paga is set to the type from adata.X here.
I could work around the problem using
# Correct batch effect
adjusted_data = sc.pp.combat(adata, key = "Batch", inplace=False)

# Add adjusted data as data
adata.X = adjusted_data.astype(adata.X.dtype)

@LuckyMD Indeed, UMAP does not use information from X_pca when bbknn was run before, although it states so:
computing UMAP
    using 'X_pca' with n_pcs = 50
    finished (0:00:19.09) --> added
    'X_umap', UMAP coordinates (adata.obsm)

Any idea why?
Then my setup uses combat batch correction only for visualization of expression values.

@jenzopr I think this is legacy from when sc.pp.neighbors was not a separate function, but sc.tl.umap instead had options to recompute the neighborhood graph or not. This should probably be changed. I don't know where the info about the 50 pcs comes from... is this stored somewhere related to the connectivities matrix? Do you know @flying-sheep?

@LuckyMD I can put together some slides for you :-)

Although it states so:

UMAP only uses the representation of a data matrix for determining the number of connected components of the graph for the init conditions [if these aren't explicitly defined (they are if choosing init_pos='paga'): https://github.com/lmcinnes/umap/blob/948f60ff0caf7ccef0ab68626c7b99a11e66f1bb/umap/umap_.py#L958-L965
In fact, the only place where it enters is for the computation of the mean positions of the disconnected components: https://github.com/lmcinnes/umap/blob/948f60ff0caf7ccef0ab68626c7b99a11e66f1bb/umap/spectral.py#L50
Implementation-wise, it's a bit unfortunate that the data matrix is carried through all these functions just for that reason... But it's not a problem for the results.
The confusing logging is fixed via
https://github.com/theislab/scanpy/commit/a5bd1ecd8ab04ec79369f60d3656f578a4cde40c

@LuckyMD I can put together some slides for you :-)

that would be awesome :)


generated GTK themes seem forced to be Numix-based

Themes generated by pywal when the below configuration is present in ~/.config/wal/templates/colors-oomox have Numix-style elements; (e.g.: checkboxes) instead of Materia-style elements.
Oomox correctly interprets the below configuration as a Materia-based theme; which can be tested by opening Oomox and importing the file pywal generates (~/.cache/wal/colors-oomox) as an Oomox colors file.

NAME=wal
THEME_STYLE=materia
BG={color0.strip}
FG={color15.strip}
MENU_BG={color0.strip}
MENU_FG={color15.strip}
SEL_BG={color9.strip}
SEL_FG={color0.strip}
ACCENT_BG={color9.strip}
TXT_BG={color13.strip}
BTN_BG={color8.strip}
BTN_FG={color0.strip}
ROUNDNESS=4
GTK3_GENERATE_DARK=False
MATERIA_STYLE_COMPACT=True
TXT_FG={color15.strip}

Let me know if you need any extra information.

I've sick of trying to work with GTK. wpgtk has great GTK support.

Could you leave it open with help-wanted?
Pywal is such a fantastic program; it's not hard to imagine someone wanting to submit a pull request for this.
Or do you plan to reduce/remove GTK support?

As stated in other issues Dylan plans to drop GTK support for pywal, you
can still get these features in wpgtk, it has a dedicated gtk theme for
this purpose so it's a lot faster than oomox too (and has live reload even
for GTK+), you could also generate a theme in a similar fashion using
pywals user templates though, but it's way more work that way.
On Jan 4, 2019 9:03 PM, "Patrick Collins"<EMAIL_ADDRESS>wrote:
Could you leave it open with help-wanted?
Pywal is such a fantastic program; it's not hard to imagine someone wanting
to submit a pull request for this.
Or do you plan to reduce/remove GTK support?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/dylanaraps/pywal/issues/351#issuecomment-451622593,
or mute
the thread
https://github.com/notifications/unsubscribe-auth/AKojSalqTSbCu2pbTKuPAnImfgEX4h5_ks5vABX6gaJpZM4ZTBVD
.

It's more than a pull request. It needs a maintainer also.


x/build: fix gomote ssh to COS-based Linux Docker images

When I moved the Linux Docker-based container images from Kubernetes to COS I accidentally broke gomote ssh support.
We used to ssh proxy to the POD's port 22, which worked, but now we ssh to the COS node's ssh server, which is the wrong one. We're also running an SSH server inside the container (which is also listening on port 22 in its private network namespace), and it's only that inner SSH server that's authenticated.
We need to configure the COS node's konlet YAML to either forward some different port (e.g. host 2200 to container 22) or just make the container image listen on 2200 instead, and then configure that in x/build/dashboard/builders.go and make the coordinator respect that in its remote.go when it calls rb.buildlet.ConnectSSH.

Turns out CL 129356 was all that was needed.

CL 129356 and deploying the new version of cmd/buildlet were sufficient to resolve the issue. We just needed to move the SSH server being started to a non-22 port to avoid overlapping with the host's sshd. The communication to the new port happens completely inside the cmd/buildlet's /connect-ssh HTTP handler. cmd/coordinator doesn't need to know about the new port, and hence there's nothing more do.
I tested, and gomote ssh now works for COS-based Linux images (e.g., linux-amd64).
Closing since the issue is resolved. Huge thanks to @bradfitz for the help with this.


add it to upstream

I see that the README mentions that upstreaming this to universal-ctags. Since 1.0 was released quite recently, this would be a great time to do it :)
I just found out about this repo so thanks for maintaining it.

See https://github.com/universal-ctags/ctags/pull/2654 .


Error creating a withdrawal tx

Testnet bridge
...
INFO [06-13|13:33:37.240] Starting withdrawal                      txHash=5d626d..aa8c24
INFO [06-13|13:33:37.240] Creating a withdraw tx                   ethTx=5d626d..aa8c24
ERROR[06-13|13:33:37.332] failed to create payment for withdrawal to GBBUF6RMUDSKNNPZJJWRDPXZKMQJUX6HQIFPBKQ2NJXHK56WZIDLPHJ2, failed to build transaction: validation failed for *txnbuild.Payment operation: Field: Destination, Error: invalid address length
ERROR[06-13|13:33:37.332] failed to create payment for withdrawal to GBBUF6RMUDSKNNPZJJWRDPXZKMQJUX6HQIFPBKQ2NJXHK56WZIDLPHJ2, failed to build transaction: validation failed for *txnbuild.Payment operation: Field: Destination, Error: invalid address length
ERROR[06-13|13:33:40.934] error while trying to refund user        err="failed to build transaction: validation failed for *txnbuild.Payment operation: Field: Destination, Error: invalid address length" amount=100,000,000
INFO [06-13|13:33:49.233] found new head                           head=9,172,023 synced=true
INFO [06-13|13:33:49.233] Starting withdrawal                      txHash=df7f8f..4ae394
INFO [06-13|13:33:49.234] Creating a withdraw tx                   ethTx=df7f8f..4ae394
ERROR[06-13|13:33:49.316] failed to create payment for withdrawal to GC6DJ3XSRDCJINPZDJUTIUIDQGKFCVHY2XRFU3VUKIE2LEMWLXDE2TL2, failed to build transaction: validation failed for *txnbuild.Payment operation: Field: Destination, Error: invalid address length
ERROR[06-13|13:33:49.316] failed to create payment for withdrawal to GC6DJ3XSRDCJINPZDJUTIUIDQGKFCVHY2XRFU3VUKIE2LEMWLXDE2TL2, failed to build transaction: validation failed for *txnbuild.Payment operation: Field: Destination, Error: invalid address length
INFO [06-13|13:33:49.316] Starting withdrawal                      txHash=5d626d..aa8c24
INFO [06-13|13:33:49.316] Creating a withdraw tx                   ethTx=5d626d..aa8c24
ERROR[06-13|13:33:49.407] failed to create payment for withdrawal to GBBUF6RMUDSKNNPZJJWRDPXZKMQJUX6HQIFPBKQ2NJXHK56WZIDLPHJ2, failed to build transaction: validation failed for *txnbuild.Payment operation: Field: Destination, Error: invalid address length
ERROR[06-13|13:33:49.407] failed to create payment for withdrawal to GBBUF6RMUDSKNNPZJJWRDPXZKMQJUX6HQIFPBKQ2NJXHK56WZIDLPHJ2, failed to build transaction: validation failed for *txnbuild.Payment operation: Field: Destination, Error: invalid address length
ERROR[06-13|13:33:51.027] error while trying to refund user        err="failed to build transaction: validation failed for *txnbuild.Payment operation: Field: Destination, Error: invalid address length" amount=100,000,000
...

Oh it seems the fee wallet was miconfigured. Closing


Returning Vec<String> from an async function fails to compile

Describe the Bug
This code:
#[wasm_bindgen]
pub async fn get_strings() -> Vec<String> {
    vec!["hello".to_string(), "world".to_string()]
}

Expected Behavior
Should compile,
Actual Behavior
But gives the following compilation error:
the trait bound `wasm_bindgen::JsValue: From<Vec<std::string::String>>` is not satisfied
the following other types implement trait `From<T>`:
  <wasm_bindgen::JsValue as From<bool>>
  <wasm_bindgen::JsValue as From<isize>>
  <wasm_bindgen::JsValue as From<i8>>
  <wasm_bindgen::JsValue as From<i16>>
  <wasm_bindgen::JsValue as From<i32>>
  <wasm_bindgen::JsValue as From<i64>>
  <wasm_bindgen::JsValue as From<i128>>
  <wasm_bindgen::JsValue as From<usize>>
and 100 others
required for `Vec<std::string::String>` to implement `Into<wasm_bindgen::JsValue>`
required for `Vec<std::string::String>` to implement `IntoJsResult`

Additional Context
wasm-bindgen = "0.2"

same here

There is a way around this, but it is ugly. If you define a newtype for Vec:
pub struct VecString(Vec<String>);
Then you can impl From for VecString.
impl From<VecString> for JsValue {     fn from(value: VecString) -> Self {         serde_wasm_bindgen::to_value(&value).unwrap()     } }
You will need serde_wasm_bindgen.
I can't impl it for Vec directly because of Rust's orphan rule. You'll need the serde_wasm_bindgen crate. I am trying to find a more elegant solution

Here is a better solution #3630
This will likely be fixed in the next release. In the meantime, I am adding this to my cargo.toml file:
[patch.crates-io]
wasm-bindgen = { git = "https://github.com/rustwasm/wasm-bindgen", rev = "88efe46" }
This will use the wasm-bindgen version that includes the commit that supports Vec for async functions

Considering #3630 has already been merged, I'm gonna go ahead and close this.
Let me know of this turns out to still not be fixed.


Clean up all git content

There are two git intro topics. There should be one #118
https://umuzi-org.github.io/tech-department/topics/git/
https://umuzi-org.github.io/tech-department/topics/git/git-basics/
There are three seperate presentations here: #119
https://umuzi-org.github.io/tech-department/workshops/git-basics/
There should be one or zero
Git for teamwork workshop is empty. Add correct stuff - Already done but not deployed.
RO Deployed on 31/10/2019
https://umuzi-org.github.io/tech-department/workshops/git-for-teamwork/
Git and scrum resources tells recruits to follow bad practices. Clean up #120
https://umuzi-org.github.io/tech-department/topics/git/version-control-and-scrum/
Not DRY. Refer to correct git topic instead of linking straight to atlassian docs #121
https://umuzi-org.github.io/tech-department/topics/clean-code/data-science

@ry-oc  This should have checkboxes so we can see how far we are without having to click on all the things


Allow equality comparisons to undefined and null in strict null checking mode

With this PR the ==, !=, ===, and !== operators can be used to compare any type to undefined or null in strict null checking mode. This makes it possible to practice "defensive coding" that checks for invalid arguments at run-time, for example:
function foo(obj: Object) {
    if (obj == null) {
        throw new TypeError("Argument cannot be undefined or null");
    }
    // Do something with obj
}

Even through TypeScript wouldn't permit undefined or null to be passed to the function, it may be useful to guard against invalid arguments passed from plain JavaScript code.

Fixes #8439.

:+1:

@ahejlsberg would it be possible to automatically emit runtime checks at the "perimeter" of compiled TypeScript code? That is to say, exported functions/methods/etc with non-null parameters would have their arguments checked (in much the same way as you have manually coded above). Similarly return values from external function/method calls would also be checked, all seamlessly at runtime.
This would effectively give a true runtime guarantee of non-null/undefined.
Quite how you throw in this situation I'm not sure though... because you wouldn't want the exception to be caught by anything

I have been thinking about this myself for a long time, but I avoided mentioning it as it seems like the team has shown strong aversion to run-time checks of any kind, however effective and desirable they are in practice for particular scenarios.
I would like to highlight though, that argument checks are different in the sense that they should not be considered an "emit based on type information". The compiler doesn't generally assume any information on what it gets, as the analysis of calls is not generally contextual. The annotated type could be simply used as a key for a deterministic lookup into a list of predetermined and user-defined functions. I believe that is a very important point that must be made clear.
If user-defined type guards were designed with reverse lookups in mind, it could have provided a tremendous benefit for libraries, especially those written particularly with plain JS consumers in mind. These checks could have been emitted conditionally based on a compiler switch or a pseudo-decorator annotation (or both).
I don't believe that alternative solutions like decorators and reflective metadata would provide the level and elegance, user friendliness and sophistication that a built-in one would. Using decorators is essentially like requiring every developer to 'reinvent the wheel' in order to solve something that is generally well-defined and have been easily automated.

@malibuzios apologies, I don't really understand what you're getting at.
To make concrete my suggestion, given the following exported function:
// TypeScript - strictNullCheck
export function foo(obj: Object) {
    // Do something with obj
}

something like the following would be emitted:
// emitted Javascript
define(["require", "exports"], function (require, exports) {
    "use strict";
    function foo(obj) {
        if (obj == null) {
            // NOTE the following error must _not_ be caught by any catch
            throw new TypeError("Argument cannot be undefined or null");
        }
        // Do something with obj
    }
    exports.foo = foo;
});

Similarly for the following call to an external function:
// TypeScript - strictNullCheck
import * as MyLib from "my-external-lib";

// As defined in someFile.d.ts
// MyLib.MyFunction(): string
let x = MyLib.MyFunction();
// Do something with x

something like the following would be emitted:
// emitted Javascript
define(["require", "exports", "my-external-lib"], function (require, exports, MyLib) {
    "use strict";
    // As defined in someFile.d.ts
    // MyLib.MyFunction(): string
    var x = MyLib.MyFunction();
    if(x == null) {
        // NOTE the following error must _not_ be caught by any catch
        throw new TypeError("Return val cannot be undefined or null");
    }
    // Do something with x
});

@myitcv
I was referring to a more thorough and generalized runtime-checking solution that would go way beyond only checking for null and undefined. It would use the annotated types to check that an argument annotated string is actually a string, would understand concepts like, unions, instanceof, could generate predicates based on analyzing interface structures, etc.
It could be assisted by user-defined guards as well. However, they were not designed with that in mind, to such a degree that many of them are not even useful for run-time checks at all as they encourage the programmer to apply unsound assumptions (there are many real-world examples of that people give here). Essentially promoting an 'indirect' emit on type information.
I'm sorry if I'm using overly technical concepts like 'emit on type information' and not giving enough examples. I think this may be content for a different issue. However, I don't feel much motivation for me to try to write a proposal as it seems very likely it would be (harshly, or even rudely) rejected.


Add support for parsing LuaJIT-specific number suffixes

This adds support for parsing LuaJIT-specific number suffixes when options.luaVersion is 'LuaJIT'.
See http://luajit.org/ext_ffi_api.html#literals for more info.

I haven't worked on this in ages so I'm gonna close it