[FR] - Sign stakepool certificate transaction in multiple stages

Summary
If a pool's owner and operator are different people, in a trust-less financial system, it is desirable to never expose your private keys. The current signing of a stakepool certificate requires the owner's private keys as well as the operator's cold keys for the pool.
Problem
Either the owner is exposing all of their funds to the operator, or the operator is exposing control of the stakepool to the owner.
Describe alternatives you've considered
I've attempted to sign the transaction in stages, but it appears that the current implementation of cardano-cli shelley transaction sign... command requires that the input be unsigned.
ShelleyCmdTransactionError (ShelleyTxCardanoApiError (ApiErrorCBOR (DecoderErrorDeserialiseFailure "TxUnsigned" (DeserialiseFailure 2 "Found unknown tag 177 while decoding TxUnsigned"))))

Additional context / screenshots
As you can see in this screenshot, during the We sign: step, both the operator's cold key and the owner's private key have to be exposed in the same step.

Recommendation
Allow incremental signing of a stakepool certificate transaction so that it can be passed from operator to owner. Each can sign privately without exposing their important keys.

As an additional idea, perhaps it is also possible to have a type of "phantom pledge address" which is made up of a phantom pledge equalling the summation of all pledges from individual pledge addresses making up that stakepool.

This is a temporary hack to have something that works for the time being. We fully agree.

@disassembler Many of the people who have talked to me about pledging are investors first and computer people second. In an ideal world, they'd be most comfortable doing the pledge in a GUI environment like Daedalus instead of the cardano-cli. I've been putting together some WIP documentation for them in anticipation of it being in cardano-cli, but the feedback so far from them is they're not comfortable with it given the amounts of Ada they anticipate pushing around.
https://hackmd.io/uaRZCsgsTOunL6u0AoT5RA
https://hackmd.io/GK90CC7jRdu7AqsHEbv0Mw

Yes, at the end of the day investors like me want to help with pledging, but messing around with any kind of code or command line gives me great pause. In a perfect world, I'd like to pledge in a similar way as I delegate through dadalus wallet. That would be ideal and foster the most participation with pledging from regular investors like me

This is the multi-signature transaction functionality.

Just to clarify because this has triggered some thinking here ...
I did an experiment with Andrew regarding that. I made a point that all an operator needs to be able to register a stake pool with one or more owners, is to have access to the stake.skey/vkey pair of the owner.
Andrew sent me a fresh stake.skey/vkey pair that he had just registered on chain.
With that information only, I was able to register a stake pool with my pool operator credentials (pool operator stake.skey/vkey) and his owner credentials.
I signed the transaction using all skey required. node.skey, operator.skey and of course owner.skey (he gave me earlier)
All is fine, and I never had to access Andrew's utxo funds that reside in the base address (utxo) linked to the stake.skey/vkey credentials he gave me.
Therefore, as long as the operator is able to cover the pool certification fees alone, he does not need any access to owner funds directly. This should ease up a bit the relations once we hit mainnet.
As a conclusion, the drawback is that the owner should be proficient enough in CLIs to generate and register himself a base address with staking rights.

The way we'll do this is to have separate witnesses: CLI commands to construct a separate witness, and to assemble a complete tx from the tx body and a set of witnesses.
So this is not specific to stake pools, but it will be useful for the case of stake pools (with separate owner vs operator, or multiple owners) and for the case of multi-sig scripts.

@dcoutts Will there be a way for a witness to inspect what they're signing? For example, if I hand off a stakepool certificate to an owner to sign, they'll want to know what pool parameters they're agreeing to.

I am not Duncan ... But the specs are clearly stating that there should be a sufficient amount of trust for this to work.

@AndrewWestberg yes, they can print out the tx body using
cardano-cli shelley text-view decode-cbor

Not perfect, but hopefully ok.

This is now covered by:
$ cardano-cli shelley transaction witness
Usage: cardano-cli shelley transaction witness --tx-body-file FILE
                                               --witness-signing-key-file FILE
                                               [--mainnet |
                                                 --testnet-magic NATURAL]
                                               --out-file FILE
  Witness a transaction

Available options:
  --tx-body-file FILE      Input filepath of the TxBody.
  --witness-signing-key-file FILE
                           Filepath of the witness signing key.
  --mainnet                Use the mainnet magic id.
  --testnet-magic NATURAL  Specify a testnet magic id.
  --out-file FILE          The output file.

and
Usage: cardano-cli shelley transaction sign-witness --tx-body-file FILE
                                                    --witness-file FILE
                                                    --out-file FILE
  Sign and witness a transaction

Available options:
  --tx-body-file FILE      Input filepath of the TxBody.
  --witness-file FILE      Filepath of the witness.
  --out-file FILE          The output file.

The name of the second command isn't sensible and it's help text is not great, but it's there.
IMHO, it should be called something like "assemble" since there is no signing, just just assembling the tx body with the witnesses. The help text should also make clear that the --witness-file can be used any number of times, since it's a set of witnesses.

This can be closed when https://github.com/input-output-hk/cardano-node-tests/issues/2 is closed.

It has apparently been tested manually now.


docs set up

adjust color scheme; fix local jekyll set up;
example repo:
https://github.com/pmarsceill/jtd-remote
instructions:
https://pmarsceill.github.io/just-the-docs/docs/configuration/
https://pdmosses.github.io/just-the-docs-tests/

docs are set up, but not sure about format


Make mocks compatible with latest version of interface

Since we changed the signature in DBAL v3.x-dev we must apply the changes here too.

I'll just go YOLO here, things are green so it's all good 😂

Can you maybe check existing PRs first? #7065


Question: Speaker IDs overwritten when fine-tuning?

Hello,
If I understand correctly, RVC was trained on the VCTK using multi-speakers.
However, I can't seem to access any of the original 109 speakers after fine-tuning on a new voice - all speaker ids just return that new voice now.
Is the "emb_g" (speaker embedding) layer reset when fine-tuning or what is going on here?
Thanks in advance!

This is normal because you did not use the VCTK training set for training. If you want to use the voice of VCTK, you can use the pre trained model without fine-tuning it. The ids 1 to 108 corresponds to 0 to 107 in VCTK.

@RVC-Boss Thanks!
Does the .index file for the pre-trained model exist somewhere? I couldn't find it in the repo.
I'm also still curious as to why I can no longer access those speakers. I understand that I haven't trained on the VCTK training set, but shouldn't the weights from the pre-trained model (that has been trained on VCTK) still allow me to send in the speaker ids and get out the voices, even after fine-tuning?
Or does it have something to do with the .index file only containing the one new voice I've fine-tuned on?


Document how to load related data for a collection of constructed objects

PostModel
  .collection([
    new PostModel({id: 1})
  ])
  .fetch({
    withRelated: [
      'badges'
    ]
  })
  .call('toJSON');

Thats what I have tried.
This is the query that Knex makes.
select
  `badge`.*,
  `badge_post`.`post_id` as `_pivot_post_id`,
  `badge_post`.`badge_id` as `_pivot_badge_id`
from
  `badge`
inner join
  `badge_post` on `badge_post`.`badge_id` = `badge`.`id`
where
  `badge_post`.`post_id` in (?, ?, ?)

Where does it even pick up the 3 parameters from?

PostModel
  .query('where', 'id', 'in', [1])
  .fetchAll({
    withRelated: [
      'badges'
    ]
  })
  .call('toJSON')

Does the job.


Add WebHooks Integration Info

Post-merge LGTM 😁
Screenshot of addition

https://airbrake.io/docs/integrations/pivotal-tracker/


Remove deprecated TxtReader usage

Since RobotFramework v3.2.0 TxtReader (and RobotReader) are deprecated as such I copied from v3.1.2 the used methods
Closes https://github.com/boakley/robotframework-lint/issues/73

Downstream maintainer of the conda-forge feedstock for this... would love to see this merged and released!

@boakley Could we get this PR merged and a new robotframework-lint release pushed out, so that we can get upgrade to robotframework 3.2? Much appreciated 👍

We are anxiously awaiting the merge of this!

Please merge

would be nice to have fixed

Please merge

for i in range(10):
print("please merge")

Hey would be nice to finally be able to upgrade to 3.2.1. Could you merge?

Thank you!

@boakley can you make a release on pypi including this fix?

@boakley can you make a release on pypi including this fix?

Thx for robotframework-lint==1.1 release...


Allow searching by issue ID

Hey,
first of all thanks for creating and maintaining this repo :D
A user of our instance was trying to search for an issue via ID. Currently this does not work.
The alternative we have been using is opening any issue and changing the URL to the desired ID, but this workflow is not good for non technical users. (i.e. /go-gitea/gitea/issues/17927 -> replace 17927 with whatever ticket ID I want to search)
I came up with this simple solution, but I am not sure if it is good enough.
For example, it does not allow searching for issues starting with the keyword (search "1" and find issue 12 and 13)
Please let me know about your opinion and an alternative implementation :)

issue #3 is found although neither title nor content contains a 3

I would like to input #3 and enter so that we can just open the issue directly.

we had that idea too, but is it intuitive?
For you probably as you know #3 references issues, but less technical users maybe not

It is working now :D
(although I still don't know how to refreshed the search indexer)
I didn't test the elastic search part.
Please test and review as I am not a Go dev

is it normal for testing-amd64 test-mysql to fail?
What is the problem?

It is working now :D (although I still don't know how to refreshed the search indexer)
I didn't test the elastic search part.
Please test and review as I am not a Go dev

You can make some edits to an issue, then the search indexer will update the content.
ps: I think it's better to have some unit test code to guarantee the code works as expected. If you have any question, Gitea maintainers will help.

is it normal for testing-amd64 test-mysql to fail?

Some failures are caused by some bugs in Gitea test code, it doesn't matter.

I think it's better to have some unit test code to guarantee the code works as expected.

I added a case to bleve_test.go, is that enough?

That's fine. I just realized that there was no unit test for elasticsearch ...

To keep the compatible, we need to upgrade indexer version so that all index will be rebuilt.

To keep the compatible, we need to upgrade indexer version so that all index will be rebuilt.

How do I do that? Increase issueIndexerLatestVersion?

To keep the compatible, we need to upgrade indexer version so that all index will be rebuilt.

How do I do that? Increase issueIndexerLatestVersion?

Yes

I increased the issueIndexerLatestVersion.
Anything else left here? :)

Why did you close this?

Why did you close this?

Because this is taking too long

Because this is taking too long

consider that maintainers maintain this project in there free time, so yes it can take long - sometimes ~2years++ for big features.

so in your case it just fall out of the "manual merge queue" i guess

@zeripath @wxiaoguang @aceArt-GmbH  ->  #19646

so in your case it just fall out of the "manual merge queue" i guess

I think this is because github does not allow maintainers to "update pulls" because you created a pull from an repo owned by an organisation ...


[BEAM-8786] Fixes a link in readme

This PR fixes a broken link in .test-infra/jenkins/README.md (BEAM-8786)

Post-Commit Tests Status (on master branch)

Lang
SDK
Apex
Dataflow
Flink
Gearpump
Samza
Spark

Go

---
---

---
---

Java

Python

---

---
---

XLang
---
---
---

---
---
---

Pre-Commit Tests Status (on master branch)

---
Java
Python
Go
Website

Non-portable

Portable
---

---
---

See .test-infra/jenkins/README for trigger phrase, status and link of all Jenkins jobs.

R: @pabloem

excellent, thanks! I didn't even know this view existed.


Adding the sort functionality

Description
I added functionality to sort the recipes on the main page by rating, name, and date posted.
The default remains sorted by rating.
Also added a result counter to show the number of recipes presented.
Close #102
What's new

Wrote a method to get the sort value from the response, and sort by it. If no value is given then it will be sorted by rating.
Added a result counter on top of the recipes page.
Added tests to check the functionality.

hi @natifridman, I just squashed the commits.


Allow TCP traffic (from unsecure ports) to pass through IPv6 filter

This commit changes the ipv6_filter module to allow TCP traffic from unsecure dst port to pass through. It also adds a new module/class to parse TCP header and get different fields.

LGTM 👍


Is it possible to identify a Rule (or Cmd) in a "textual" way?

When a lot of commands are executed in parallel, the STDOUT of the entire process becomes an unintelligible mess. I"m trying to setup a central way of organizing the output of all the build steps.
I found shakeCommandOptions that could possibly help in this scenario (by passing [FileStdout fstdout, FileStderr fstderr], but it's going to end-up using the same two files for ALL commands.
It might be possible to have the conceptual equivalent of shakeCommandOptions :: Rules () -> [CmdOption], so that one could change the files based on the rule being evaluated, but that leads to three questions:

is such a change acceptable? is there any other way in which the same result can be achieved?
if we are talking about a change on these lines, how does one write a function that goes from Rules() -> FilePath (ref: this issue's title - how to identify a Rule in a "textual" way)?
is parallelism implemented at the Rule level or the Cmd level? If the latter, this could still result in interleaved output; and then the question would change to "how to identify a Cmd in a textual way"

PS: What exactly is the "unit of external computation" that Shake uses internally? how does that one associate it with the a Rule, or Cmd, or output file (whatever is appropriate)?

As a continuation of the original question, I discovered shakeTrace and traced. Is there any reason why:

shakeTrace doesn't also include another argument to indicate whether the action being traced was successful, or not?
And in case it threw an exception, also communicate the exception to shakeTrace?
Provide an extra argument (apart from "key" and filename) to identify the "rule"

As a continuation to point 3 above, I'm realizing that there is some impedance mismatch between my mental model and how Shake has been built (and this could be related to the problems that I've described in #758):

My mental model is similar to gulp (from the JS world), or capistrano (from the Rails world), where you have a bunch of build steps with dependencies between them. You specify which top-level build step you want, and the build-system executes each dependent step in the appropriate order.

This would allow the output of each build step to be recorded & reported separately -- even it it involved multiple different commands.
This would also allow the success/failure of each build step to be reported separately
Usually the number of build steps would be few (say, less than twenty)

It seems that shake's model is completely different. You specify which file you want to build / generate along with the file's dependencies. Then, based on the rules you provide, shake figures out the rest.

Does this mean that a rule like "*.css" %> \out -> -- compile SASS file here, is a single rule? Can it be given a name such that it approximately corresponds to a build step (from the gulp/capistrano world), called compile all SASS files? Or, internally, is it treated as N different rules, where N = number of CSS files that *.css matches?

From the screenshots in #771 it seems that each matching file is treated as a separate rule. If that's the case, what entity represents "*.css" %> \out -> ... independent of the files it matches?

The same rule may end-up being triggered during the build process of completely different top-level targets. Is the internal book-keeping (a) separate for each rule, (b) separate for each command ("traced action"), (c) separate for each top-level target, or (d) some combination of the above?

Have you seen EchoStdout - that would be a way of stopping everything going to stdout.
As to your question, Rule () are a set of rules, so they don't have any unique designation, and don't correspond to just one rule in many cases. Functions such as %> take an Action () and produce a Rule (). At their most primitive, these correspond to addUserRule, which doesn't take any naming information.
Usually parallelism operates at the Rule level, but within an Action, you can use the parallel function.
Each Rule is identified as a Key. So shakeTrace seems to do exactly what you want there. I agree that passing failure information or exceptions would be possible - but currently shakeTrace is not bracketing - if there is an exception it doesn't get called on the way out. To do so would require setting up stack frames, more stack usage, more time spent.
You might want to read through https://hackage.haskell.org/package/shake-0.19.1/docs/Development-Shake-Rule.html, which gives a fairly low-level view on what a Shake rule is.
I think the Shake model is mostly like you describe in gulp, but with the oddity that in many cases build steps are specified by files. But they equally don't have to be. There is a single rule type (at the addBuiltinRule level) which describes files, one for oracles, one for does-file-exist etc. Then there are user rules (with addUserRule) that can be matched on by a builtin rule to see how it should be customised. So "*.css" %> is a user rule, but as far as Shake is concerned, its not a thing that Shake deals with - builtin rules may decide to use them if they want (and the file builtin rule definitely does). Shake is concerned with keys, which might be "File foo.css", and that's the key that exists as a dependency in Shake.

Thanks for the question, and sorry it's taken so long to reply - personal stuff cropped up.

I'm already using that, but how do I capture the output of every individual command in a separate handle/pipe/file?
Let me rephrase my question to be more actionable, rather than being theoretical ==> In a parallel build (multiple rules/action/commands being executed in parallel), one, or more, commands fail. How does one display that particular rule/action/command's stdout & stderr in a fashion that makes sense to the user and allows him/her to debug things sensibly?

Each Rule is identified as a Key. So shakeTrace seems to do exactly what you want there. I agree that passing failure information or exceptions would be possible - but currently shakeTrace is not bracketing - if there is an exception it doesn't get called on the way out. To do so would require setting up stack frames, more stack usage, more time spent.

This was just an alternative that came to my mind because Shake doesn't seem to allow capturing the stdout/stderr of a rule/action/command at a granular level. What do you think of changing FileStdout FilePath to FileStdout (key -> FilePath) and similarly for FileStderr?

How does one display that particular rule/action/command's stdout & stderr in a fashion that makes sense to the user and allows him/her to debug things sensibly?

Is the information you are looking for in the exception message? Is being in the exception message sufficient?
(Regarding the key -> FilePath, there are a lot of variations on that, so happy to discuss those, but probably best to focus on one thread of solution, and then circle back if its not enough)

Is the information you are looking for in the exception message? Is being in the exception message sufficient?

for my current use-case the information in the exception may be sufficient. But I'm also thinking about my (ambitious) project - https://github.com/saurabhnanda/shake-ui. For a general terminal-UI for shake, I'm envisioning a viewing-pane for build errors which display the complete stdout+stderr from the specific rule that failed without interspersing  it with other outputs.
Sometimes an exception makes sense only with a log of all the actions/commands that led up that that exception.

I guess if you did had the key -> FilePath, would you put them in a temp dir, and have shakeTraced scan that directory to find them? I guess what's the plan to go from that to the more general UI?

I guess if you did had the key -> FilePath, would you put them in a temp dir, and have shakeTraced scan that directory to find them? I guess what's the plan to go from that to the more general UI?

Yes, provided that shakeTrace is also called for failures, which is why I said:

shakeTrace doesn't also include another argument to indicate whether the action being traced was successful, or not?
And in case it threw an exception, also communicate the exception to shakeTrace?

@ndmitchell Here's how I'm thinking of the general UI:

Change CmdOption (possibly in a backward compatible manner):

type RuleKey = String

data CmdOption = FileStdoutKey (RuleKey -> FilePath)
               | FileStdErr (RuleKey -> FilePath)
               | ...

Use these newly created CmdOtptions and also piggy-back on shakeTrace:

runBuild = do
  let myShakeOptions = shakeOptions
      { shakeThreads = 0
      , shakeCommandOptions = [FileStdoutKey (ruleLogFile "out"), FileStderrKey (ruleLogFile "err")]
      , shakeTrace = ruleTrace
      }
  shakeArgs myShakeOptions $ do ...

ruleLogFile :: String -> RuleKey -> FilePath
ruleLogFile ext key = "build-outputs" </> ext </> key

ruleTrace :: RuleKey -> String -> Bool -> IO ()
ruleTrace key c isStart = appendFile (ruleLogFile "out") $ "[ " <> (if isStart then "START" else "STOP") <> " ] " <> c <> "\n"

Concerns:

Should this be FileStdoutKey (RuleKey -> FilePath) or FileStdoutKey (RuleKey -> Handle)? Is using appendFile performant, or should ruleTrace use the underlying Handle directly?
Will this infra automatically log exceptions and errors?

What do you think? Should I attempt a PR for this?

@ndmitchell bump

I'm still a little concerned about putting the rule key into the CmdOption in that way - it feels wrong (I'll try and elucidate more when I've thought about it a little more). The concrete ask is that you want to produce a UI such that you can see which commands were run by which actions, and for any command see the stdout/stderr?

The concrete ask is that you want to produce a UI such that you can see which commands were run by which actions, and for any command see the stdout/stderr?

At a UI level the "grouping" of stdout/stderr will either be at a cmd-level, or at a rule-level. I need to determine that based on practical.usefulness.

I'm running into a similar need to @saurabhnanda's, I think, tho I haven't done as much homework as he did.
We moved from a less efficient system full of shell scripts and a large Jenkinsfile that made Jenkins' Blue Ocean look like:

To a more efficient one based on shake, that looks like:

The problem is those 20+ build steps output to stdout/stderr all at the same time, making debugging unapproachable for folks not intimately familiar with our shake code.
My needs differ a bit from his in how I want to use the data, I guess, but the data itself would be the same: either a hierarchical grouping of stdout/stderr by Rule->cmd, or at flat one by Rule.

The problem is those 20+ build steps output to stdout/stderr all at the same time, making debugging unapproachable for folks not intimately familiar with our shake code.

Could that be solved by simply buffering the stdout/stderr? That's a much more localised change.

At a UI level the "grouping" of stdout/stderr will either be at a cmd-level, or at a rule-level. I need to determine that based on practical.usefulness.

In most systems there tends to be at most one cmd per rule, which makes me think the rule level might be sufficient. Although grouping command information with commands is much easier to do, since its more localised.

Could that be solved by simply buffering the stdout/stderr? That's a much more localised change.

I'd definitely help, but I'd still look for ways to improve visibility over our pipeline.

In most systems there tends to be at most one cmd per rule

We might be using shake in an unorthodox manner then I guess, and we're using it a lot (14k LoC of shake or shake-adjacent code so far). One example is we run aws cli calls for setting up auth context, crane for pushing and tagging images, helm for deploying, plus a few kubectl calls, all in a single rule, to do blue/green deploys in kubernetes.
In this scenario, it'd still be difficult to understand what's going on if we only buffer per cmd.
I guess my needs would be totally satisfied if we had a view with rules -> cmds -> logs of all types, in shake's report.html, but it might too ambitious as a first step towards solving this :S


cannot control avatar in webaverse

upon loading app.webaverse.com i am unable to move around or look ,

@avaer fixed it , closing


Backport early abort ASG patch to 1.18.3

Upstream PR: https://github.com/kubernetes/autoscaler/pull/4489

All tests pass
Will roll out to test cluster first, repeat the test from upstream, and then roll out everywhere

@evansheng

@drmorr0 what do you mean exactly by "repeat the test from upstream"?


seafile: add optional seafdav service

Motivation for this change
add webdav support for seafile
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Configuration Example
{
  services.seafile.seafdavSettings = {
    enabled = true;
    share_name = "/seafdav";
  };
  services.nginx.virtualHosts."files.example.com" = {
    locations."/seafdav".proxyPass = "http://<IP_ADDRESS>:6001/seafdav";
  };
}

Result of nixpkgs-review pr 152069 run on x86_64-linux 1

2 packages blacklisted:

nixos-install-tools
tests.nixos-functions.nixos-test

2 packages built:

python38Packages.seafdav (python39Packages.seafdav)
python38Packages.seafobj (python39Packages.seafobj)

Thanks! I addressed most of the code review and fixed the commit messages.

I'm going to mark as draft until #153388 is merged

Thank you for the review! I applied everything and rebased.

@Pacman99 Is this done? You should sqash the last commit into the appropriate one and as said above, the third commit message should start with nixos/seafile.

@Pacman99 Is this done? You should sqash the last commit into the appropriate one and as said above, the third commit message should start with nixos/seafile.

I think so, I think I can deal with the setuptools issue in the future, hopefully with an upstream fix. And I believe I've addressed all your review, let me know if I'm missing anything else.

What's blocking this, any help needed?


Can you share code/resources for Self Knowledge learning?

I am curious about that part very much - tinkering with StableLM and trying to find a way to teach the assistant its' own name.
P.S.> a dirty hack that worked for me was running LORA for 3 epoch with just 16 records in the dataset (on top of SFT instruction tuned base model) that had the prompts with different versions of "what is your name" conversation. It worked yet did hit the overall quality of responses.


Solves #34: Upgrade JDK to 23

No, it will be inherited from the parent pom.

Good morning, are you able to merge now?

Good morning :)
Yes, merging now works. I was just not sure whether you want me to merge or to keep under your control.


main.py return an error

@vxfung Thanks for the study.
When I run the 'main.py' in INN/INN_forward, it return an error as:
-- 'TypeError: tuple indices must be integers or slices, not tuple'.--
I found the 'out_y' in line 88 of 'main.py' is a tuple comprised with two tensor. The size of out_y is ([500, 7],[500]).
And the out_x is in the same situation.
But line 69 of 'losses.py' :
--"output_block_grad = torch.cat((out[:, :c.ndim_z], out[:, -c.ndim_y:].data), dim=1)"--
except one tensor, not a tuple.
I don't know if anything went wrong. Looking forward for your reply.
Please don't mind my poor English.

I'm the same, do you guys solve it?


Fix typo in ERFilter

Noticed in http://docs.opencv.org/trunk/modules/text/doc/erfilter.html that "single" has been written as "sinle" instead. Fixed it at both locations found in the repo.

:+1:


[stable/datadog] Add podLabels for clusterAgent

Is your feature request related to a problem? Please describe.
Need custom labels for Cluster Agent pods.
Describe the solution you'd like
clusterAgent.podLabels: []
Describe alternatives you've considered
Use TF instead of Helm == more control and tighter integration with AWS resources.
Additional context
EKS + Fargate Profiles managed with labels.

Why is this being ignored?


GCC warnings

GCC complains that size_, userData_ etc are never used in this method:
ENKITS_API void  enki::DefaultFreeFunc(  void* ptr_,   size_t size_, void* userData_, const char* file_, int line_ )
{
#ifdef _WIN32
    _aligned_free( ptr_ );
#else
    free( ptr_ );
#endif
};

Not a big deal, but the fewer warnings the better :)

Thanks - looks like i left of the (void) casts on this one. Fixing now...


Feature/short operand syntax

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

173 of 200 (86.5%)  changed or added relevant lines in 1 file are covered.
5 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.2%) to 70.485%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

csly-cli-parser/CLIParser.cs
173
200
86.5%

Files with Coverage Reduction
New Missed Lines
%

csly-cli-parser/CLIParser.cs
5
87.25%

Totals

Change from base Build<PHONE_NUMBER>:
0.2%

Covered Lines:
3478

Relevant Lines:
4849

💛  - Coveralls


Do not show Transfer NFT history details

Describe the bug
Do not show Transfer NFT history details
To reproduce the bug
Steps:

Go to the NFT tab
Performing transfer NFT of the Kusama successfully
On the Result screen, click on "View transaction" to navigate to the history details
Actual:

[x] Do not navigate to history details screen
[x] On "All accounts mode" then detect incorrect account

https://github.com/Koniverse/SubWallet-Mobile/assets/117999489/16fd12da-82fa-4541-b9f3-5483f1693248

Version test: PR #1293 17:48 27/12/2023
Device test: IP 11
Validation passed.


[Feature request] Default props when creating components

Is your feature request related to a problem? Please describe.
When creating a component (e.g. in React Native) would like to have some default props passed to rendered component.
Describe the solution you'd like
Something like this would be nice:
const H1 = classed(Text, {
    variants: {
        intent: {
            primary: "text-gray-900",
            secondary: "text-gray-700",
        },
    },
    // ✨ Renders component with these props ✨
    defaultProps: {
        suppressHighlighting: true,
        role: "heading",
        "aria-level": 1,
    },
});

Thanks for the request. I like the API.
When attaching props, do we allow classed components to inherit? I.e
const Text = classed("span", {
    variants: {
        intent: {
            primary: "text-gray-900",
            secondary: "text-gray-700",
        },
    },
    // ✨ Renders component with these props ✨
    defaultProps: {
        suppressHighlighting: true,
        role: "heading",
        "aria-level": 1,
    },
});

const InheritsVariants = classed("h1", Text);

In this example, Variants are extracted from Text and outputted to a new variant config object for the h1. This would be the same as writing the Text component twice but with different tag names instead of wrapping two components inside of each other.
Do we also persist the defaultProps? I think that might lead to UB if people don't read the components.

IMHO since defaultVariants are inherited then it's consistent for defaultProps to be inherited too. Both can be easily overwritten anyway when the component is used.

Agreed. I think we can implement this, I will try this week and also compare with benchmarks. If performance stays consistent this will be a good feature!

Any progress on this yet?


Add Prettier

What does this PR do?
Prettier  apply to yorkie
How should this be manually tested?
npm run test
Any background context you want to provide?
What are the relevant tickets?
Fixes #41
Checklist

[ ] Added relevant tests
[x] Didn't break anything

This PR seems to contain a lot of commits that don't need to be separated. Can you organize your commits into one?

@hackerwins
oh ok I will do that~ https://github.com/yorkie-team/yorkie-js-sdk/pull/43


VSWhere stopped detecting visual studio

We have several build servers that are all identical and configured using PowerShell DSC. Today for some reason when using the command:
vswhere.exe -latest -requires "Microsoft.Component.MSBuild" -property installationPath

on one of the build servers, it no longer returns the installation path; it does not return anything. Using just:
vswhere.exe -latest -requires "Microsoft.Component.MSBuild"

also does not return anything.
This was working fine previously, and no updates were installed on the build servers recently. We were using an older version of vswhere.exe (v2.1.3), but still have the same problem when using the latest version (v2.4.1).

The same commands return the expected results on our other build servers.
Visual Studio 2017 is installed on the affected server, and I'm able to open it up without any issues. Here's the VS version info from the build server having the issue:

And it is installed at the standard default location:

Do you have any idea why VSWhere stopped working on this machine? Or suggestions for us to try to fix it?
Thanks!

It's possible there was an installation error or something. If you pass -all do you see it? The query API is registered based on the version found in the logo. You could get more information about why an instance isn't showing if you install https://github.com/Microsoft/vssetup.powershell and do:
get-vssetupinstance -all -pre | select InstanceId, State

Hmmm, this is very odd. I just checked again today and now the command is working properly on that server. My guess is that PowerShell DSC must be messing with the installation somehow, as I know we are using it to install VS and keep it up to date. I'm going to close this issue, but will report back if it happens again and I can determine that DSC isn't at fault. Thanks!

If the DSC resource isn't itself waiting for the process to finish and if it doesn't pass --wait, the install is asynchronous to the DSC resource, meaning when you are checking it the install may still be in progress. Based on your description, that may be the case (without knowing the command line you used). When scripting the install, you need to pass --wait to the bootstrapper which tells it to wait on the actual installer.

Thanks for the quick response @heaths. That would make sense, except we were seeing this issue for 12+ hours, and I wouldn't expect a VS install to take that long. Also, I was still able to open up VS without any problems while the issue was occurring, so I think that would indicate that there wasn't actually a VS installation in progress while we were experiencing the problem; I imagine I would have received some sort of error if I tried to open Visual Studio was it was updating/installing.

Did the server have to restart at some point? We don't report an instance is launchable if a reboot is required for that instance. Ignoring reboots has historically (for any app, really) caused problems that are difficult to diagnose and can manifest is completely unexpected and unsupported ways.

I hadn't noticed if the server needed a reboot, but that could explain what I was seeing. I haven't seen the problem again yet, but I'll keep that in mind in case I do. Thanks.

I'm having the same issue now (started today after months working fine). Rebooting the server made no difference. VS 15.9.28307.812.

@tellarin, please run https://aka.ms/vscollect and attach %TEMP%\vslogs.zip to a new issue on https://developercommunity.visualstudio.com.

@heaths I've completely re-installed the build agent where this was happening and it doesn't happen anymore. I'll follow your suggestion if it happens again.
Could this suggested steps be added in the FAQ in case other people face the same problem in the future?

I'm not sure what steps to which you refer. Since all EXEs we run as part of the install are windows subsystem applications, batch scripts (or powershell) will not wait automatically. We do document to pass --wait to the bootstrapper already, but you'll need to wait on that as well.


PyQt5

New releases of WinPython and Anaconda ship with PyQt5,
so we should probably shift from PyQt4 to PyQt5 at some point, too.
It seems it is not possible to install both in parallel.

It seems this would be easier if we drop Python 2 support.
For me, supporting only Python 3.5 and newer is OK.

A new development branch devel_v1 was opened. A lot of changes will happen here, but it will very soon break compatibility with the current master.
Already done:

drop support for python2
switch from PyQt4 to PyQt5

Can that branch be merged to the master?

closed by PR #6


New Service: DiscordServices

Website: https://discordservices.net/
Docs: https://discordservices.net/docs

Their API has two other POST methods: should I use super._request() or super._post()?

You should use super._request(). _post is only for stat posting.

👍


Update to

I think that this release broke the use of jinja2!

 venv/lib/python3.7/site-packages/amaranth/build/plat.py:6: in <module>
     import jinja2
 venv/lib/python3.7/site-packages/jinja2/__init__.py:12: in <module>
     from .environment import Environment
 venv/lib/python3.7/site-packages/jinja2/environment.py:25: in <module>
     from .defaults import BLOCK_END_STRING
 venv/lib/python3.7/site-packages/jinja2/defaults.py:3: in <module>
     from .filters import FILTERS as DEFAULT_FILTERS  # noqa: F401
 venv/lib/python3.7/site-packages/jinja2/filters.py:13: in <module>
     from markupsafe import soft_unicode
 E   ImportError: cannot import name 'soft_unicode' from 'markupsafe'

Environment:

Python version: python3.7
Jinja version: Jinja2-2.11.3

Duplicate of #1585
You are using an unsupported version of Jinja, please update to the latest version if possible. Additionally, please read https://hynek.me/articles/semver-will-not-save-you/, then use a tool like pip-tools to pin your dependencies and control when you get updates. Be sure to run your tests with deprecation warnings treated as errors so that you get notified of these types of changes early.


Pull replication skipped documents

Similar outcome to #1047 but the scenario is different and it happens on pull replications.
Scenario:

1 master device and 5 slaves. The slaves are running the Listener and master is pushing/pulling with each one (10 continuous replications in total).
Switch the WiFi off on each slave device.
Add 20 docs on each slave device.
Bring back all the slave devices online at the same time.

Result: The doc count on master is below the expected value (it should be = previous doc count + 100). All replications are still syncing documents after the initial catch-up but the doc counts don't match.
Expected: The doc count on every device to be the previous doc count + 100.
It seems that in this case the pull replications are skipping documents.

Adding logs/thread dump of master device:
Logs https://gist.github.com/jamiltz/830335d7693103a4c250
Thread dump https://gist.github.com/jamiltz/b40814dd0360b2778c82
And same for slave device:
Logs https://gist.github.com/jamiltz/919d45590e8de2dd8c65
Thread dump https://gist.github.com/jamiltz/70fc1001f8fc1e34f103

Note to self:
From thread-dump master:

4 ChangeTrackers are running: It should be 5.
Observed 4 CBLPusherInternalExecutor threads: It should be 5.
Two out of all replicators are still processing. Actually batcher is sleeping. There is another network error??
Observed 45 CBLRequestWorker threads: It should be 50 if 10 repls are running. or 40 if 8 repls are running (because of 4 active pull repls and 4 active push repls)

master

"CBLRequestWorker-5ed49-1@23800" prio=5 runnable
	at com.couchbase.lite.support.RemoteRequest.executeRequest(RemoteRequest.java:182)

From thread dump - 4 change tracker is running.
http://<IP_ADDRESS>:5984/ek0073@23793
http://<IP_ADDRESS>:5984/ek0073@23795
http://<IP_ADDRESS>:5984/ek0073@23809
http://<IP_ADDRESS>:5984/ek0073@23789

Acme.Utils.ThreadPool(1)
Acme.Utils.ThreadPool(5)

Thread-2295@23756" prio=5 waiting
	at com.couchbase.lite.support.RemoteRequestRetry.get(RemoteRequestRetry.java:339)
"Thread-2296@23757" prio=5 waiting
"Thread-2300@23758" prio=5 waiting
"Thread-2298@23759" prio=5 waiting
"Thread-2302@23760" prio=5 waiting
"Thread-15624@23761" prio=5 waiting
"Thread-15657@23762" prio=5 waiting
"Thread-15730@23763" prio=5 waiting
"Thread-18918@23771" prio=5 waiting
"Thread-26430@23772" prio=5 waiting
"Thread-26428@23773" prio=5 waiting
"Thread-26434@23774" prio=5 waiting
"Thread-26436@23775" prio=5 waiting
"Thread-26489@23776" prio=5 waiting
"Thread-33856@23777" prio=5 waiting
"Thread-36637@23782" prio=5 waiting
"Thread-36639@23783" prio=5 waiting
"Thread-36641@23784" prio=5 waiting
"Thread-39018@23838" prio=5 waiting

"CBLManagerWorkExecutor@23754" prio=5 waiting

"CBLRequestWorker-87d18-0@23764" prio=5 waiting
"CBLRequestWorker-87d18-1@23765" prio=5 waiting
"CBLRequestWorker-87d18-2@23766" prio=5 waiting
"CBLRequestWorker-87d18-3@23767" prio=5 waiting
"CBLRequestWorker-87d18-4@23768" prio=5 waiting

"CBLRequestWorker-5ed49-0@23785" prio=5 waiting
see above
"CBLRequestWorker-5ed49-2@23805" prio=5 waiting
"CBLRequestWorker-5ed49-3@23814" prio=5 waiting
"CBLRequestWorker-5ed49-4@23816" prio=5 waiting

"CBLRequestWorker-a6e67-0@23786" prio=5 waiting
"CBLRequestWorker-a6e67-1@23803" prio=5 waiting
"CBLRequestWorker-a6e67-2@23826" prio=5 waiting
"CBLRequestWorker-a6e67-3@23830" prio=5 waiting
"CBLRequestWorker-a6e67-4@23834" prio=5 waiting

"CBLRequestWorker-491a2-0@23787" prio=5 waiting
"CBLRequestWorker-491a2-1@23801" prio=5 waiting
"CBLRequestWorker-491a2-2@23806" prio=5 waiting
"CBLRequestWorker-491a2-3@23813" prio=5 waiting
"CBLRequestWorker-491a2-4@23815" prio=5 waiting

"CBLRequestWorker-857d8-0@23791" prio=5 waiting
"CBLRequestWorker-857d8-1@23802" prio=5 waiting
"CBLRequestWorker-857d8-2@23804" prio=5 waiting
"CBLRequestWorker-857d8-3@23818" prio=5 waiting
"CBLRequestWorker-857d8-4@23820" prio=5 waiting

"CBLRequestWorker-ed898-0@23792" prio=5 waiting
"CBLRequestWorker-ed898-1@23827" prio=5 waiting
"CBLRequestWorker-ed898-2@23831" prio=5 waiting
"CBLRequestWorker-ed898-3@23835" prio=5 waiting
"CBLRequestWorker-ed898-4@23836" prio=5 waiting

"CBLRequestWorker-d5e5c-0@23807" prio=5 waiting
"CBLRequestWorker-d5e5c-1@23810" prio=5 waiting
"CBLRequestWorker-d5e5c-2@23812" prio=5 waiting
"CBLRequestWorker-d5e5c-3@23817" prio=5 waiting
"CBLRequestWorker-d5e5c-4@23819" prio=5 waiting

"CBLRequestWorker-ea2a4-0@23808" prio=5 waiting
"CBLRequestWorker-ea2a4-1@23822" prio=5 waiting
"CBLRequestWorker-ea2a4-2@23823" prio=5 waiting
"CBLRequestWorker-ea2a4-3@23825" prio=5 waiting
"CBLRequestWorker-ea2a4-4@23829" prio=5 waiting

"CBLRequestWorker-22a6c-0@23788" prio=5 waiting
"CBLRequestWorker-22a6c-1@23824" prio=5 waiting
"CBLRequestWorker-22a6c-2@23828" prio=5 waiting
"CBLRequestWorker-22a6c-3@23832" prio=5 waiting
"CBLRequestWorker-22a6c-4@23833" prio=5 waiting

"CBLPusherInternalExecutor-41@23797" prio=9 waiting
"CBLPusherInternalExecutor-42@23798" prio=9 waiting
"CBLPusherInternalExecutor-43@23799" prio=9 waiting
"CBLPusherInternalExecutor-44@23821" prio=5 waiting

"Thread-39031@23706" prio=5 sleeping
	at com.couchbase.lite.replicator.ReplicationInternal.waitBatcherCompleted(ReplicationInternal.java:1785)
"Thread-39032@23708" prio=5 sleeping

@jamiltz,
Notes from thread-dump and log files

Thread-dump from master indicates still one of replicator is RUNNING state. Actually the thread was waiting response from listener. There is possibility network issue happened with one slave device. Or network is really slow.

Notes from code review

waitForAllTasksCompleted(): There is possibility exits from waitForAllTasksCompleted() method before pull replication tasks are completed. And set IDLE state to continuous pull replicator. I assume this wrong replicator state does not cause skipping document. But needs to investigate.

Request to @jamiltz
Next time encounter the issue, can you ask them to call /_active_tasks REST API to check replication progress on master device? http://developer.couchbase.com/documentation/mobile/1.1.0/develop/references/couchbase-lite/rest-api/server/get-active-tasks/index.html


Add Rna-transciption

Not started

I have a WIP here: https://github.com/tgecho/xelm/commit/d8278c98709080664b5d828c911c337e75ea06f7
I'm a bit concerned about requiring someone to dive into Result in such an early exercise... but I'm an Elm newbie myself, so maybe it's not too bad? Assuming this test/example seems reasonably idiomatic, what do you think?


Confusing Sentence Under "Step 2. Install UCP" That May Lead to Errors

File: ee/dtr/admin/install/index.md
Under "Step 2. Install UCP" is the following: "Since DTR requires Docker Universal Control Plane (UCP) to run, you need to install UCP on all the nodes where you plan to install DTR."
This makes it appear that the user should install DTR on the same nodes that are running UCP. This is not recommended as it could cause resource and port conflicts. We generally recommend customers install DTR on worker nodes (not UCP nodes). This sentence seems to indicate otherwise.

PR submitted for approval.

#10120 merged and closed.


Unable to connect to grammarly: auth authentication failed 401 Headers

I noticed that the (excellent!) extension stopped working, checking out the log I noticed the following output (slightly redacted):
...
2020-01-28T11:28:12.815Z grammarly:auth authenticating as <username> {
  accept: 'application/json',
  'accept-language': 'en-GB,en-US;q=0.9,en;q=0.8',
  'content-type': 'application/json',
  'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) ' +
    'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 ' +
    'Safari/537.36',
  'x-client-type': 'funnel',
  'x-client-version': '1.2.1082',
  'x-container-id': '<some_id>,
  'x-csrf-token': '<some_token>',
  'sec-fetch-site': 'same-site',
  'sec-fetch-mode': 'cors',
  cookie: 'gnar_containrId=some_value; ' +
    'grauth=some_bigger_value; ' +
    'csrf-token=some_token_value'
}

2020-01-28T11:28:13.509Z grammarly:auth authentication failed 401 Headers {
  [Symbol(map)]: [Object: null prototype] {
    date: [ 'Tue, 28 Jan 2020 11:28:13 GMT' ],
    'content-type': [ 'application/json' ],
    'content-length': [ '19' ],
    connection: [ 'close' ],
    'x-frame-options': [ 'DENY' ],
    'x-xss-protection': [ '1; mode=block' ],
    'x-content-type-options': [ 'nosniff' ],
    'content-security-policy': [ "default-src 'none'" ],
    'strict-transport-security': [ 'max-age=31536000' ],
    'cache-control': [ 'max-age=0, no-store, no-cache' ],
    'x-robots-tag': [ 'noindex, nofollow' ]
  }
}
(node:20470) UnhandledPromiseRejectionWarning: Error: Cannot connect to grammarly, no cookie found.
...

I made sure that my username and password were correct. Is there anything I can do to diagnose it? Please let me know if I can provide more information

I have noticed the same issue and originally thought it was due to code in my PR (#50), but it looks like it may have been introduced in 0.62; which is what my PR is based on.

After a little digging, I highly suspect the 401 is due to the CAPTCHA requirement when logging in. I found that I was rate-limited while developing #50. Ever since that point, logging via the browser requires me to check that I'm not a robot.
@hmemcpy can you confirm if you see the CAPTCHA screen via logging in with a browser? When you upgrade/when it stops working, does the login flow when using a browser change for you to incorporate a CAPTCHA screen?

When I try to login to my account I see the Authentication requires captcha message. I've also confirmed that when I login in the browser I need to do a captcha. Are we not able to login with this extension if we have Premium?

@mwq27 I have noticed the same issue. I have gotten around it by logging in via the browser and answering the captcha when it requires it. It will then work, for a while, until you are required to enter captcha again. Not great, but I'm not sure of an easy fix for this.


Object wrapper type

Introduce the ability to tag any variable with an id::UUID field, allowing for more object-oriented behaviours within OpticSim.
https://github.com/microsoft/OpticSim.jl/blob/87a61c701f005a203a26f0805c128626c032f062/src/Object.jl#L9-L14
This implementation preserves backwards compatibility: due to multiple dispatch, existing functions for a given type T will work as before, but we can now write new functions for Object{T} to specify enhanced behaviours. For example, the following new draw! code in Visualization.jl will extract color properties from the object before unpacking and delegating to another existing draw! function.
https://github.com/microsoft/OpticSim.jl/blob/235a61e1404d30d3833951d8175dcb2f42986c72/src/Vis/Visualization.jl#L271-L274
Example usage of this feature can be seen in draw_lensconstruction.
https://github.com/microsoft/OpticSim.jl/blob/87a61c701f005a203a26f0805c128626c032f062/src/Examples/docs_examples.jl#L133-L139
Object types and non-Object types can be used in tandem - everything has been written in order to cause minimal disruption to existing code. However, OpticSim has a very broad codebase, and there are many more functions that will need extending to support full usage of Object types in all possible scenarios. This PR includes a small subset of extensions for demonstrative purposes, but we can add to this over time (e.g. for multidetectors).

It might be worth adding benchmarks for surface intersection of planarshape
Currently we just have tracing of a system with these in:
planar_shapes() = trace, (TestData.planarshapes(), optray())
It could be useful to decouple this from allocs just in intersecting the shape directly similar to this:
rectangle() = surfaceintersection, (Rectangle(1.0, 1.0, SVector(0.0, 0.0, 1.0), SVector(0.0, 0.0, 0.0)), rayz())

Thanks for the review @friggog, I agree with the comments and will take them into account. Closing this PR for now as I'm focusing on another task. Will get back to this later in the week with another rewrite most likely.


Sublime Text

An error occurred while trying to unzip the package file for Tabnine . Please try installing the package again

a problem when installing
The same problem. Tackle it by downloading the code from github, then unzip..
But the effetion seems not good...I dont know whethere My settings is wrong.

I'm not sure what TabNine can do to fix this, since it isn't responsible for unzipping the package. I'm sorry for the trouble and I'm glad you found a workaround.


Restricting Storage account to Outbound IP addresses of App Service

Hi team,
For Azure App Services (PAAS resources that uses a load balancer) and restricted the default internet access to storage account, could you add "Do not use the public OUTBOUND IP addresses of the PAAS resources (for example: Azure App Services) when configuring your storage account firewall when the resources are in the same region."
https://docs.microsoft.com/en-us/azure/load-balancer/load-balancer-faqs?source=recommendations
How do connections to Azure Storage in the same region work?
Having outbound connectivity via the scenarios above isn't necessary to connect to storage in the same region as the VM. Use network security groups (NSGs) as explained above to prevent this behavior. For connectivity to storage in other regions, outbound connectivity is required. The source IP address in the storage diagnostic logs will be an internal provider address, and not the public IP address of your VM when connecting to storage from a VM in the same region. To restrict access to your storage account to VMs in one or more virtual network subnets in the same region, use Virtual Network service endpoints. Don't use your public IP address when configuring your storage account firewall. When service endpoints are configured, you'll see your virtual network private IP address in your storage diagnostic logs and not the internal provider address.
The solution is to configure VNet integration and configure the VNet in the storage firewall.

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

ID: 51543d24-fcc3-3f16-dc5a-8b08b0d9030e
Version Independent ID: 51543d24-fcc3-3f16-dc5a-8b08b0d9030e
Content: Storage Accounts and security - Microsoft Azure Well-Architected Framework
Content Source: well-architected/services/storage/storage-accounts/security.md
Service: architecture-center
Sub-service: well-architected
GitHub Login: @v-stacywray
Microsoft Alias: robbymillsap

Hi @nelroosevelt
Sorry for the delay.
To use private storage account from an AppService you could:
1-  Use AppService Vnet Integration.  You could define NSG and , for example, you will be able to decide if you are going to access the  internet or not.
2-  Restrict access from all networks in the storage account
3- Create a private endpoint on your vnet to allow private access to storage account service. It must include a Private DNS zone in your vnet: Azure Private Endpoint DNS configuration
The application doesn’t need any change, it will use the fully qualified domain name (FQDN) of the connection string, which now is going to resolve to the private endpoint internal IP.
I will close the ticket, but feel free to re-open if additional clarification is needed.

#please-close


Details loaded even for images already in the MD5 list

When you batch download and it gets a URL with the md5 already in it why should it need to load the details if the file already exists on the md5 database and in the hard drive with the Path/Folder/Filename?
It keeps throwing [Info] Details limit reached (HTTP 503). New try. and slow the batch download by pointlessly loading details when it's just not needed, the file already exists so it should just start the next download on the list.

There are situations where a user may want to load the details, even if the md5 is already in the database and the file is already on the hard drive at that path.
For instance, I have database hooks that run for each image that insert that image's metadata into a custom DB. If I download the same file from different sources, I don't want that process to be skipped: I want my custom DB to have a separate entry for each source that contains the file.
I'm still learning how to use Grabber, but I'm worried that skipping loading details when an image is already in the md5 list might skip these DB commands, and I want to make sure that won't happen.

@solipsis-project in those cases, you can simply set your download settings always download the file. But today, the file will be skipped anyway after loading the details, and the SQL commands won't run. This is just an optimization.

@Bionus Nope, c6b22e2 didn't fix it so I'm guessing that my metadata setting is still somehow forcing it to load the details even though it's already in the MD5 list and on the disk.

Seems to be because of the "same dir" MD5 setting. Pushed a second fix, sorry about that 👍

Yep, 70073d6 fixed this bug for me. 👌


Maker BinaryState is always 0

I'm trying to control a Wemo Maker - but having problems getting the switch state back.
The sensor state, and other attributes come back fine.
Looking at the request coming back from the device (even though in the WeMo app (and on the physical device) the switch is on:-
<WeMo Maker "Skylight">
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): <IP_ADDRESS>
b'<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body>\n<u:GetBinaryStateResponse xmlns:u="urn:Belkin:service:basicevent:1">\r\n<BinaryState>0</BinaryState>\r\n</u:GetBinaryStateResponse>\r\n</s:Body> </s:Envelope>'

The Wemo app works fine - so I wonder if they are using a different call. Anyone experimented with this?
I have a couple of Makers - and they both do the same.
(Firmware is 2.00.9403.PVT-ORWT-Maker)

I tracked down the problem. BinaryState always returns 0 on the Maker - so you need to pull the switch state from the attributes.
I've fixed the fork here - https://github.com/balloob/pywemo/pull/10/files
Will do the same here when I get a chance.

PR now added https://github.com/iancmcc/ouimeaux/pull/101


Support glTF 2.0

Consider using kotlinx.serialisation for this instead of gson. (I can set something up against the gltf branch if it's too much hassle).

Sure, go ahead 🙂


guides: cannot upload in non-compat mode

A tracking issue for https://github.com/play-with-docker/play-with-docker/issues/418

This can be seen by running up #32 and trying to "click" the upload in the basic-go-modules-example guide.

Per https://github.com/play-with-docker/play-with-docker/issues/418#issuecomment-703126669 this is just pending a fix for the permissions of the uploaded file.

This is now resolved.


AttributeError: 'ShardInfo' object has no attribute 'ws'

Error Message:
Ignoring exception in command join:
Traceback (most recent call last):
  File "/home/decave27/.local/lib/python3.8/site-packages/discord/ext/commands/core.py", line 85, in wrapped
    ret = await coro(*args, **kwargs)
  File "/home/decave27/dev/discodo-test/cogs/music.py", line 99, in join
    VC = await self.audio.connect(ctx.author.voice.channel)
  File "/home/decave27/.local/lib/python3.8/site-packages/discodo/client/DPYClient.py", line 291, in connect
    await self.getWebsocket(channel.guild.shard_id).voice_state(
  File "/home/decave27/.local/lib/python3.8/site-packages/discodo/client/DPYClient.py", line 245, in getWebsocket
    return self.client.shards[id].ws
AttributeError: 'ShardInfo' object has no attribute 'ws'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/decave27/.local/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 939, in invoke
    await ctx.command.invoke(ctx)
  File "/home/decave27/.local/lib/python3.8/site-packages/discord/ext/commands/core.py", line 863, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "/home/decave27/.local/lib/python3.8/site-packages/discord/ext/commands/core.py", line 94, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'ShardInfo' object has no attribute 'ws'

Using discord.ext.commands.AutoShardedBot when setting discodo.DPYClien doesn't seem to work.
(If I use discord.ext.commands.Bot instead, it works.)
Is there any way to solve this?

Sorry for late response.
The structure of discord.py seems to have changed.
However, I'm so busy that I can't afford to do this.
If you can, please make some pr


create-react-app start script logs a ton of info in the terminal after Local/On Your Network output

Describe the bug
Upon using npx create-react-app and running yarn start, there are many lines of outputted code about static/js/bundle.js and index.html and asset-manifest.json (items in the public folder) and cached modules. I have a print out of the logs below.
Did you try recovering your dependencies?

(Write your answer here.)
Which terms did you search for in User Guide?

(Write your answer here if relevant.)
Environment

  System:
    OS: macOS 11.5.2
    CPU: (8) x64 Intel(R) Core(TM) i5-8257U CPU @ 1.40GHz
  Binaries:
    Node: 17.0.1 - /usr/local/bin/node
    Yarn: 1.22.17 - /usr/local/bin/yarn
    npm: 8.1.4 - ~/.npm-packages/bin/npm
  Browsers:
    Chrome: 97.0.4692.71
    Edge: Not Found
    Firefox: Not Found
    Safari: 14.1.2
  npmPackages:
    react: Not Found
    react-dom: Not Found
    react-scripts: Not Found
  npmGlobalPackages:
    create-react-app: 5.0.0

Steps to reproduce

(Write your steps here:)

Run npx create-react-app
Delete node_modules folder and re-install it with yarn install
Start app with yarn start
Once the app is running, there is a ton of outputted info about what is in the /public folder and is filling up the terminal, almost like a log

Expected behavior

The terminal would just stop with the line after To create a production build, use yarn build like the below:
Compiled successfully!

You can now view election in the browser.

  Local:            http://localhost:XXXXX
  On Your Network:  http://XXXXX

Note that the development build is not optimized.
To create a production build, use yarn build.

Actual behavior

There is this output logged here:
Compiled successfully!

You can now view election in the browser.

  Local:            http://localhost:XXXXX
  On Your Network:  http://XXXXX

Note that the development build is not optimized.
To create a production build, use yarn build.

asset static/js/bundle.js 1.46 MiB [emitted] (name: main) 1 related asset
asset index.html 1.67 KiB [emitted]
asset asset-manifest.json 190 bytes [emitted]
cached modules 1.35 MiB [cached] 101 modules
runtime modules 28.1 KiB 13 modules
javascript modules 3.42 KiB
  ./src/index.js 1.83 KiB [built] [code generated]
  ./src/App.js 1.59 KiB [built] [code generated]
webpack 5.66.0 compiled successfully in 5304 ms

Reproducible demo

I am using the create-react-app template here: https://github.com/facebook/create-react-app

Duplicate of #11871


Required privileges on datacenter level for multi-tenancy within a VCenter

Hi guys
We try to set up multiple CloudFoundries in a single VCenter. To achieve the best isolation possible, we would like to have a separate VCenter user for each CloudFoundry, and each user should be granted only the least privileges possible. The goal would be that user for CloudFoundry A can not access stuff from CloudFoundry B.
To separate the different CloudFoundries, we created a folder in VCenter for each CloudFoundry. On this Folder we applied the necessary permissions as listed in the docs.
However, some of the permissions can not be set on a Folder level but must be set on Datacenter level. We had to grant the users these privileges on Datacenter level to get basic deployments working:
Datastore.AllocateSpace
Datastore.Browse
Datastore.FileManagement
Datastore.DeleteFile
Datastore.UpdateVirtualMachineFiles
Network.Assign
Resource.AssignVMToPool
VirtualMachine.Config.AddNewDisk
VApp.Import

However, if we grant one user these privileges on a global level, it can access other user's data in the datastores or access other user's networks, breaking the separation.
Is there a way to still achieve the desired isolation?
We're aware that for some of these privileges, we could work around by separating resources (i.e. create separate data stores for each cloudfoundry), but then we lose some of the 'Cloudy' properties.

@MatthiasWinzeler i suspect that vsphere doesnt have more fine grained controls around these resources. will try to reach to someone from vmware to find out more.

Previous link is broken. This is the correct link to the documentation.

The document shared above provides a complete set of permissions. It also does away with most of the permissions at the Datacenter and global level.
Feel free to open the issue if the document is unsatisfactory.


Add CONTRIBUTING.md

We should have our reuse contributing guide from the main website, which is gonna be resolved by this https://github.com/astrolicious/dotdev/pull/45 very soon.


Color ROS overlay warning message

Purpose

Coloring the warning message for the ROS overlay is good for UX.
Changes

Change the following line:
https://github.com/UBCSailbot/sailbot_workspace/blob/2b1bf8ca3e9b3f615a10091a7dc608a340e36565/.devcontainer/base-dev/update-bashrc.sh#L19
To this:
echo "    echo -e \"\\\e[1;33mWARNING: Can't find the ROS workspace overlay: build then run 'source $ROS_WORKSPACE/install/local_setup.bash'\\\e[0m\"" >> $HOME/.bashrc

To test this, rather than rebuilding the base image, manually run update-bashrc.sh in your terminal and then resource the bashrc:
./.devcontainer/base-dev/update-bashrc.sh
source ~/.bashrc

Important: This warning message is only thrown when the ROS overlay doesn't exist. If you have already built any ROS packages in your copy of sailbot workspace, run the purge task in vscode before following the above steps.

Last step after verifying your changes is to build a new dev image: https://github.com/UBCSailbot/sailbot_workspace/tree/main/.devcontainer/base-dev#how-to-build


Setting up package environment

I know this is a first step, but I think we should start properly. I think it is a great idea to use Poetry or similar package manager for ensuring reproducible dependencies. I am not an expert on Python library development, but I feel that it is necessary to start with a reproducible environment. Let me know what you think.

Totally agree that we should start properly.
I didn't have a first good experience with poetry on a large project, but I'm willing to give it another chance!
Are you familiar with it?

Totally agree that we should start properly. I didn't have a first good experience with poetry on a large project, but I'm willing to give it another chance! Are you familiar with it?

I am not too familiar with it and it worked well for my relatively simple use-cases. I think we should ask authors of MLX for an advice how to:

Set up Python package development environment
Set up CI/CD for tests and deployment

Very good idea!

Using git-flow with features/* branches would be good to separate our developments, what do you think?

Using git-flow with features/* branches would be good to separate our developments, what do you think?

Seems great.

Setting up the installation of the mlx-graphs package locally with pip install -e . has to be done before diving into writing any tests and implementations. Do you consider working on that @gboduljak ?

Setting up the installation of the mlx-graphs package locally with pip install -e . has to be done before diving into writing any tests and implementations. Do you consider working on that @gboduljak ?

I cannot work on that until Friday :(

Ok! No prob :)

I'm happy to start setting that up and can allocate some time today.

Packaging with poetry set up in https://github.com/TristanBilot/mlx-graphs/pull/9

NB, building and publishing on pypy is straightforward with poetry but let's first set up CI/CD and add some juice to the package.

Setup for local dev should be ok as of ad915d2409e585abd7f7153c0476bb378c278582. Shall we close this? And maybe open a new one later on to setup some CI and the actual publishing on Pypy?

Added initial CI in https://github.com/TristanBilot/mlx-graphs/pull/22

Are we done here?

Probably yes, we just need to setup how we release the package. Ideally we'd setup a Github action for that but since we'll need to build it on Apple Silicon we'll likely have to do it manually for the moment.

Ok, yes it seems logical for the moment to build releases locally. For the Pypi repo, idk if we have to do it or we wait once we add mlx-graphs to ml-explore organization?

I think it's usually better to release it on Pypi so that it can be easily installed.

Closing this and moving the package release and documentation publication to a new one.


Hide internal details from our API

One thing that really pushes back stabilization for me is that all our struct fields are public. This makes sense in a lot of cases because we want compositors to have a lot of freedom. However exposing too many fields could paint us in an API compatibility corner. In particular, wl_listener fields shouldn't be exposed IMHO.
Additionally, our internal fields clobber the header files and make it difficult for compositor writers to know what fields they should use (example: xdg-shell geometry fields).

I agree, but would also posit that simply having some details available via structs is not necessarily a bad thing, even if they're read-only and writing them would be considered a programming error. I agree that our internal wl_listeners are a good candidate for privatization.
One thing I don't want to do is start guaranteeing ABI stability, ever.

I agree, but would also posit that simply having some details available via structs is not necessarily a bad thing, even if they're read-only and writing them would be considered a programming error.

Yes. I'm not advocating for adding a bunch of getters and setters everywhere. :P

Would we just apply libweston's strategy - hide all currently unused APIs and then expose them again if needed in the future?

Yeah. In case of doubt, it's always easier to make a field private, and then decide to make it public later. Doing it the other way around is an API breakage.

Some other possible (but not necessarily good or bad) ideas:

Prefix our private fields with _ (suggested by ericonr)
Have a macro hack like this:

#ifdef WLR_SHOW_PRIVATE
#define WLR_PRIVATE_BEGIN
#define WLR_PRIVATE_END
#else
#define WLR_PRIVATE_BEGIN char private[sizeof(struct {
#define WLR_PRIVATE_END }];
#endif


Elasticsearch version issues

When adding data sources, connect es. If you add elasticsearch-sql version 6.2.4, how does its driver write?

https://edp963.github.io/davinci/docs/zh/1.1-deployment#3-数据源配置


"Source / Remove trailing spaces" removes newline at the end of file

From<EMAIL_ADDRESS>on 2011-03-10T07:24:34Z
What steps will reproduce the problem?

Have some Python code with the required blank newline at the end of file.
Klick "Source / Remove trailing spaces".
Empty newline at the end of the file is gone.
Pep8/flake8 complains about this. What is the expected output? What do you see instead? - Want to keep the newline. What version of the product are you using? On what operating system? - v2.0.8 on Ubuntu 10.10.

Original issue: http://code.google.com/p/spyderlib/issues/detail?id=576

From pierre.raybaut on 2011-03-10T06:45:53Z
This issue was closed by revision f227609523 .
Status: Fixed

From pierre.raybaut on 2011-04-24T07:38:30Z
This issue was closed by revision f22760952344 .


Synology Docker bash terminal fails

I noticed this on the previous releases as well but didn't submit. Within the Synology Docker UI, an error is thrown when trying to create a terminal/bash session in the container. The error is: rpc error: code = 2 desc = oci runtime error: exec failed: container_linus.go:247: starting container process caused "exec: "/bin/bash": stat /bin/bash: no such file or directory.
The image of the error message is attached.

It’s because bash is not part of the image.
Launching shell with /bin/sh would work.  However, I don’t know if it’s possible to configure that on Synology...

I don't think this can be configured on the Synology. As a reference, this did work with the patters Crashplan distro on Synology.  Would a symbolic link inside the container to /bin/bash work? Not sure where that link would need to be created.

It’s because bash is not part of the image.
Launching shell with /bin/sh would work. However, I don’t know if it’s possible to configure that on Synology...

Using command sh works just fine on Synology.

The default in Synology Docker UI, when click on Create, is bash. However, running sh as you mentioned works fine. Thanks.

Ok.  This container works just fine on the Synology.  I chose to use the GUI and it’s very simple but there is one constraint and one quirk you need to know.
Here are the steps from start, to running, to upgrading:
Start:

Open the Docker configuration tool
Select the Registry tab, search for and download jlesage/crashplan-pro. Choose the “latest” image
Go to the Image tab, select the crashplan-pro image and select Launch
I set my CPU priority to Medium and memory limit to about to 1.5 MB
Go into the Advanced tab, then the Volume tab and then Add folder
*   Here is where you find the constraint that I mentioned. You will see the first level children of volume1, not volume1 itself.  My personal opinion is that this is a lot better than mounting volume1 directly to the container.  volume1 is fully under the control of the Synology’s configuration system.  It’s owned by root and it’s theirs.  They will change it if they see fit.
*   Just add each folder that you want Crashplan to see.  Mount them all under /storage; e.g. My “Idrive” folder is mounted to /storage/I.  Note that I chose a different mount point name than the original name of the folder.  This allows me to relocate Idrive to another volume on the Synology, and remount it to the same mount point.  CrashPlan will see no change so resync will not occur.
*   Don’t forget to define the “config” mount point and set it to read/write.
You can ignore the Port Settings and Links tabs.
On the Environment tab, follow jlesage’s notes.
*   However I decided to set the USER_ID to my ID number (use the id command from a console to get your ID number.  I set the GROUP_ID to 101, the default ID for the Synology ADMIN group.  Running as root is always a bad idea.  This avoids running as root while providing CrashPlan all the permissions it needs.
*   If you worry about the CrashPlan app’s behavior, you can set your mount points to read only with the exception of the config mount point.
*   I use high-res monitors so I set the DISPLAY WIDTH and HEIGHT to something more appropriate for a 4k monitor.
Finally, make sure the Network tab is set appropriately for your network. Most networks should be fine using a “host” network.

Start it up and check it out.  Logs are in the config folder.  The first run may take a while to resync your new mappings but it goes fast and if the files are already on Crashplan, they won’t be resent.  Note the terminal window into the container does not work from the GUI.  I haven’t tried it from a command line.  I actually have never felt the need to use it.
Upgrades:
Upgrades are a really easy.

Select the container and stop it
Go to the Settings pulldown and export the container’s settings.  Put them in a folder on your Synology, or you can download them to your local machine.  The settings file for the container is a JSON file.  The GUI can use it to recreate your container.
Delete the container.
Select the Registry tab, search for and download jlesage/crashplan-pro, choose the “latest image”.
You will see a little marker on the existing image that tells you it is downloading.
When the download is finished, Go to the Container tab and import the container using the settings file you exported.
Start the container and it’ll start right back up.

Finally, there is a quirk with Synology regarding file watching. The article jlesage pints us to at CODE42 is accurate however the Synology keeps its configuration in /etc.defaults/sysctl.conf .  This is not the usual place to find sysctl.conf.
So, add this line:
fs.inotify.max_user_watches=1048576
to /etc.defaults/sysctl.conf
IMPORTANT: Make a note that you need to check /etc.defaults/sysctl.conf after installing DSM upgrades.  Sometimes the rewrite the file wiping out your change.  Just read the line and restart the Synology.
Follow this plan and it should work.
Cheers
From: cgradone<EMAIL_ADDRESS>Sent: Monday, February 5, 2018 1:42 PM
To: jlesage/docker-crashplan-pro<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: Re: [jlesage/docker-crashplan-pro] Synology Docker bash terminal fails (#50)
I don't think this can be configured on the Synology. As a reference, this did work with the patters Crashplan distro on Synology. Would a symbolic link inside the container to /bin/bash work? Not sure where that link would need to be created.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/jlesage/docker-crashplan-pro/issues/50#issuecomment-363214749, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AHjxRn0IZHVKAnIONmelT7sktXlpQkagks5tR2eUgaJpZM4R6AUm.

@bigtfromaz, the only comment I have with what you said is that I would recommend using a "bridge" network type.  It's the default Docker network and it offers better security by isolating the container from the host.  Thus, internal processes that are listening on <IP_ADDRESS> are not visible by the host.
Also, a "bridge" network makes possible to run multiple containers at the same time even if they use the same ports internally.

Point taken and it’s a good one.
I haven’t researched the Synology setup’s effect on routing the container’s outbound requests for DNS and gateway services.  I started there using some defaults, but the way  Synology set it up, the container couldn’t reach the internet.  I saw enough to know that it put the container in a different subnet.   In the interest of time I switched to Host mode and figured I would sort it out later.  But…I haven’t gotten around to it.  Maybe I’ll play around with it tonight.
From: Jocelyn Le Sage<EMAIL_ADDRESS>Sent: Monday, February 5, 2018 6:23 PM
To: jlesage/docker-crashplan-pro<EMAIL_ADDRESS>Cc: Tom Hebert (HCI<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [jlesage/docker-crashplan-pro] Synology Docker bash terminal fails (#50)
@bigtfromazhttps://github.com/bigtfromaz, the only comment I have with what you said is that I would recommend using a "bridge" network type. It's the default Docker network and it offers better security by isolating the container from the host. Thus, internal processes that are listening on <IP_ADDRESS> are not visible by the host.
Also, a "bridge" network makes possible to run multiple containers at the same time even if they use the same ports internally.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/jlesage/docker-crashplan-pro/issues/50#issuecomment-363278594, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AHjxRhHoHV--Cd6VD70fJEn29LGbKaVnks5tR6logaJpZM4R6AUm.

I'd also add that if you have more than 1048576 files in your backup set, you'll keep getting the iNotify message.  Simple fix is to use a number greater than the number of files in your backup set instead of 1048576.


LND gateway implementation doesn't specify max fee

We need to set a fee limit when we pay invoices: https://lightning.engineering/api-docs/api/lnd/lightning/send-payment-sync/index.html#lnrpcfeelimit
Related to https://github.com/fedimint/fedimint/discussions/2392

how/where is the gateway fee configured currently? i think i've seen some 1% limit mentioned but is that hard-coded or configured by the gateway or federation?
maybe worth thinking about a clean fee interface where the federation and/or gateway can specify/advertise min/max fees?
for example say a gateway is willing to pay LN invoices as long as they receive the ecash + 1% minimum fee so in practice they might set feeLimit to 1% but the actual routing fees might be 0.5% after the payment succeeds so they end up pocketing 0.5% in ecash. It may not be clear to the gateway that configuring 1% as a minimum fee means that they need to use that to pay routing fees...
is this how the gateway logic works or am i missing something?


TEST: Support Android 15 16kb pages

:scroll: Description

Test if 16KB page sizes can be supported
:bulb: Motivation and Context

Relates to #2237
:green_heart: How did you test it?
:pencil: Checklist

[ ] I reviewed submitted code
[ ] I added tests to verify changes
[ ] No new PII added or SDK only sends newly added PII if sendDefaultPii is enabled
[ ] I updated the docs if needed
[ ] All tests passing
[ ] No breaking changes

:crystal_ball: Next steps

@denrase can we close this?


License issues and CLA

What open source licenses are compatible with the Google CLA or is it possible at all to add e.g. GPL code to this repository? If each author has to agree on the CLA then the only alternative to include compatible open source code is to pack it as an external dependency I guess. This might get a little hairy if there are patches to external code that need to be applied before building.
What is your take on that?
Bye,
Bogdan

Disclaimer: I'm not a lawyer, so this is no legal advice.
I don't think we can generally add GPL'ed code to this repo. The license for BinNavi is Apache2 which is compatible with the more permissive end of the license spectrum (think 2-/3-clause BSD, MIT, etc.).
That said, GPL'ed code can IMO be added to a sub-directory, if any of the following is true
The code that's added

is not an integral part of BinNavi,
is one of several components which use the same interface or
is a stand-alone work unrelated to BinNavi and just happens to be located in its repo.

Guess it should be then discussed on a case by case basis but sounds good to me from a non-lawyer to a non-lawyer :).
My concrete example would have been the binary file format parsers (ELF, PE ...) code, which is based on code using the Eclipse public license.
Feel free to close this issue as I got my answer. Or then you can wait for a more authoritative lawyer answer :).

Note that the EPL is not compatible with the GPL (any version) unless the code is dual licensed. No idea about the interactions with the Apache license, though.


Always set to off state when in pressMode.

Thanks for making this @eiryu and for making the repo @ewebdev ! Would there be any chance you accept this pull request because it will enable Switchbot bots to be in 'push' mode, toggling back to 'off' once pressed which is handy for some uses. Thanks!


Link by refno

What does this change?
This links Archivematica METS files to CALM records via the CALM id.  It also changes the source of the identifier for Archivematica METS files to use the CALM Refno instead of the unstable UUID that gets regenerated by Archivematica on each ingest.
Should fix https://github.com/wellcomecollection/catalogue-pipeline/issues/2623 after a reindex
How to test
In a new pipeline (this change requires a reindex), push through a CALM record and corresponding Archivematica METS record (e.g. ARTCOO/A/3/1).
The records should merge
How can we measure success?
We should get Born Digital content on the website (for those records with the appropriate access)
Have we considered potential risks?
Because I am changing the identifier for these Archivematica-sourced records, their URLs will change.  However, they would not have been reachable anyway as METS files only result in a record at the end of the pipeline in consort with whatever they merge into, and never on their own.
The ID I have chosen is (I think) guaranteed to be unique in our context. I don't believe it is possible for two records to come through the pipeline with the same RefNo, because it corresponds to a position in a directory tree (I suppose it may be possible to put a record in the "wrong" position in the tree, but I think that would be a different problem).
This ID is not guaranteed to be stable.  It is a value managed by humans which is meaningful - it governs the position of a record in a hierarchy - and as such may change if someone decides it belongs in a different position.  However, it is considerably more stable than the UUID, and only ever changed deliberately, so if someone changes it on one side, it is not unreasonable to expect them to change it on the other.

I think this change means we no longer really use metsIdentifier for either GoobiMetsXml or ArchivematicaMetsXML so it may be worth just removing it entirely and refactoring so the metsIdentifiers is removed from MetsXml`?


Fax on Service Detail Page should not be clickable (i.e. triggers a call on the mobile device)

Users should not be able to click on Fax row/card on the Service Detail Page, which then triggers a call on the mobile device. From the user experience perspective, we should not provide functions/options that are not usable for the users (i.e. can't send a fax from the app).
Acceptance Criteria

[ ]  Users should not be able to click on Fax row/card on the Service Detail Page

Steps for QA:

Open a service record that has a fax number (e.g. select the Topic "Contact workers at your local settlement agency > click "Find related services near me" > select "YMCA of Greater Vancouver - Connections Program" from the service listing)
On the Service Detail Page, scroll down to the Fax number
Click the Fax row - you should not be able to click it and it should not trigger a call on your mobile device

The card is clickable but no phone call event is triggered.

QA Passed 1.43.0, Fax number no longer has icon does not trigger the phone app. The opacity still changes but does not trigger any behaviours.

After confirming with @cherrielam, it is preferred that the touchable opacity of the fax number to be removed entirely to avoid any touch feedback.

Staging version 1.44.0 - PASS


Impala Scripts no longer work on latest CDH

The scripts fail on the latest CDH release with the newest Impala version.  All files created have this error:
ERROR: option 'FILTER' or its argument unknown.
USAGE: dsdgen [options]
Note: When defined in a parameter file (using -p), parmeters should
use the form below. Each option can also be set from the command
line, using a form of '-param [optional argument]'
Unique anchored substrings of options are also recognized, and
case is ignored, so '-sc' is equivalent to '-SCALE'
General Options
ABREVIATION =         -- build table with abreviation
DIR =                 -- generate tables in directory
HELP =                -- display this message
PARAMS =              -- read parameters from file
QUIET =  [Y|N]           -- disable all output to stdout/stderr
SCALE =               -- volume of data to generate in GB
TABLE =               -- build only table
UPDATE =              -- generate update data set
VERBOSE =  [Y|N]         -- enable verbose output
PARALLEL =            -- build data in  separate chunks
CHILD =               -- generate th chunk of the parallelized data
RELEASE =  [Y|N]         -- display the release information
_FILTER =  [Y|N]         -- output data to stdout
VALIDATE =  [Y|N]        -- produce rows for data validation
Advanced Options
DELIMITER =           -- use  as output field separator
DISTRIBUTIONS =       -- read distributions from file
FORCE =  [Y|N]           -- over-write data files without prompting
SUFFIX =              -- use  as output file suffix
TERMINATE =  [Y|N]       -- end each record with a field delimiter
VCOUNT =              -- set number of validation rows to be produced
VSUFFIX =             -- set file suffix for data validation
RNGSEED =             -- set RNG seed

See comments in #19


Baseline MAINTAINERS, CODEOWNERS, and external collaborator permissions

Follow https://github.com/opensearch-project/.github/issues/125 to baseline MAINTAINERS, CODEOWNERS, and external collaborator permissions.
Close this issue when:

MAINTAINERS.md has the correct list of project maintainers.
CODEOWNERS exists and has the correct list of aliases.
Repo permissions only contain individual aliases as collaborators with maintain rights, admin, and triage teams.
All other teams are removed from repo permissions.

If this repo's permissions was already baselined, please confirm the above when closing this issue.

Confirming that MAINTAINERS.md and CODEOWNERS are in sync. @dblock Can you update the repo permissions?
https://github.com/opensearch-project/opensearch-dsl-py/blob/main/.github/CODEOWNERS
https://github.com/opensearch-project/opensearch-dsl-py/blob/main/MAINTAINERS.md

bump @dblock

Done and verified.


I've got this error after the project updating to swift 3

Hi,
I've got this error after the project updating to swift 3
2016-10-26 11:35:04.832709 Example[1249:237392] -[_SwiftValue alpha]: unrecognized selector sent to instance 0x170241b90 2016-10-26 11:35:04.836544 Example[1249:237392] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[_SwiftValue alpha]: unrecognized selector sent to instance 0x170241b90' *** First throw call stack: (0x18d3a41c0 0x18bddc55c 0x18d3ab278 0x18d3a8278 0x18d2a259c 0x100155c3c 0x1001558f0 0x10015529c 0x10015b664 0x100153074 0x100152d9c 0x1000f7bc8 0x1000f72c4 0x1000f6c1c 0x1000f618c 0x1000f6224 0x1931ed3dc 0x1932a6fcc 0x1932a6ea4 0x1932a61ec 0x1932a5c38 0x1932a57ec 0x1932a5750 0x1931ea54c 0x1906b240c 0x1906a70e8 0x1906a6fa8 0x190623c64 0x19064b0d0 0x19064baf0 0x18d3517dc 0x18d34f40c 0x18d27e068 0x1932585dc 0x193253360 0x1000f9420 0x18c2605b8) libc++abi.dylib: terminating with uncaught exception of type NSException
Thanks
Have a nice day

Already discussed: https://github.com/ealeksandrov/EAIntroView/issues/186