Is transaction.submit security critical API?

The security critical watcher  allows you to use /transaction.submit Sends transaction to Child chain. but it does not allow you to retrieve any of the UTXOs or balances.
/account.get_utxos Gets all utxos belonging to the given address.

The question is...

[ ] should we remove transaction.submitfrom the security critical watcher?
[ ] what do we do with tests (for example OMG.Watcher.Integration.BlockGetterTest) that are part of the "secure" implementation of Watcher but cross the border to informational api specs (this goes well with another issue https://github.com/omisego/elixir-omg/issues/1122)

Or the other way around, /transaction.submit is a security critical API, plus bring /account.get_utxos into security critical API. Since both are required to make a transaction. And misinformation/unavailability of these two endpoints could inability to interact with the funds?
This would leave the rest of the Informational APIs purely for data retrieval, except for maybe /transaction.submit_typed.

@InoMurko - this is correct. Security critical API is not for transacting on the network, but to provide network's security data. So if one wants utxo selection features for transacting it's InfoApi piece of cake. (Security Api provides however all addresses utxos for exit)
/transaction.submit is considered security critical because it checks validity of the chain before it forward the tx to the child chain. (Note: checking validity isn't yet implemented there - so it might confuse you).

as we found out with @unnawut
/account.get_utxos

actually use PG to retrieve utxos per account. So that would be rather non trivial to use on the "security" side of watcher.
Hm... so @pnowosie so one should use informational watcher to retrieve UTXOs and than if he wants to securely transact, he should use  /transaction.submit on security watcher? But then your statement is contradicting itself
Security critical API is not for transacting on the network, but to provide network's security data.

why is /transaction.submit there if API's purpose is to provide network's security data?

So if one wants utxo selection features for transacting it's InfoApi piece of cake

Note that that's /transaction.create though which I agree to have it in informational.
But /transaction.submit can't be done unless it at least has info from /account.get_utxos. Which makes a security API dependent on info API, hence my suggestion to move /account.get_utxos into security.

account.get_utxos is quite informational too, at least from a block-explorer perspective. Might this be one of the few, if not only, apis where we can allow a little overlap?

account.get_utxos is purely PG implemented. So that would be a BIG overlap in terms of code.

Ah two things I missed earlier that contribute to this. One was noted by Paweł :point_up:

/transaction.submit is considered security critical because it checks validity of the chain before it forward the tx to the child chain

And to chime in on this part:

Security critical API is not for transacting on the network, but to provide network's security data.

Maybe I and Paweł we've done a mental shortcut here. I think security critical is necessary but not sufficient to transact on the network.

Security Critical ensures you don't run into security issues when transacting (hence transaction.submit there)
Information API actually provides you with fast APIs to efficiently transact (by finding out the balance and utxos)

.
The other comment is that for the security critical Watcher, there is the account.get_exitable_utxos version of the informational-flavored account.get_utxos, for the purpose of getting the utxos in order to exit. But this endpoint should not be used in conjunction with attempts to transact on the child chain, because it can be very slow - it should only be good enough to fire once (when exiting) and be done with it.
I'm bringing account.get_exitable_utxos up only to emphasize, that this is not the endpoint you're looking for here.
I'm not sure yet though, how to move forward here  :thinking: .

@pdobacz were there ever attempts to store UTXOs per account in RocksDB - as part of Security Critical Watcher?

@pdobacz were there ever attempts to store UTXOs per account in RocksDB - as part of Security Critical Watcher?

nope, since the security features did not require that strongly yet.

So how would a customer of ours normally have this setup @Pongch @pdobacz ?
Lets say you're an institutional client that want's to trade securely using our software.
Would you run the security and informational watcher side by side? And use the UTXO data provided by the informational watcher to transact on the security watcher? If yes, why not use transaction.submit on the informational watcher since the implementation is the same?

Maybe I and Paweł we've done a mental shortcut here. I think security critical is necessary but not sufficient to transact on the network.
Security Critical ensures you don't run into security issues when transacting (hence transaction.submit there)
Information API actually provides you with fast APIs to efficiently transact (by finding out the balance and utxos)

Does this assume that the two APIs will always belong to the same application and both APIs will always be started and served together?
Because if we want to plan for starting/enabling them separately, we won't be able to do so from a business/user-perspective, because the security API is not really unusable without the informational API. So even though we achieve separation of concerns code-wise, we don't achieve a separation of concerns usage-wise in this case.
(Not trying to argue for one approach or another yet but just want to lay out all perspectives)

though we achieve separation of concerns code-wise, we don't achieve a separation of concerns usage-wise in this case.

That's correct @unnawut - @pdobacz & I don't argue with it. Unfortunately before the split previous design anticipated that one can have Watcher in these modes:

security-critical only
security-critical & informational API
...and now you see why it was separated this way.

@pnowosie Thanks! That's totally understandable.
Now with the split, assuming these are the 3 start modes? These would be their users?

security-critical only <- I'm not sure
informational only <- Block explorer
security-critical & informational AP <- Mobile wallets, most integrators/partners

I hope identifying the users would help draw the line. But feel free to flag me if my questions are getting too sidetracked from the topic 😂

I tihnk this is very valuable!
Just to correct you a little bit @unnawut. The codebase at the moment does not allow you

security-critical only <- I'm not sure
Code shows that this isn't supported. (for example BlockGetter and EthereumEventListeners https://github.com/omisego/elixir-omg/issues/1130)
informational only <- Block explorer
You can't run informational without the security properties.
both security-critical & informational <- Mobile wallets, most integrators/partners
Thats what we have when you standup watcher now.

By the way, the reason I'm asking all this is because I'm helping out on the split, and so I want to get a sense of the ideal architecture going forward, and less so on the things as is. All these info from @pnowosie & @pdobacz and your opinion on the ideal way forward will help me a lot down the line 🙇

The codebase at the moment does not allow you ...

Yes yes. Sorry those 3 points were more about the ideal case forward (or if they're not, what would be).

If yes, why not use transaction.submit on the informational watcher since the implementation is the same?

It might have become clearer already, but to straighten out more: the truly "security related" bit of transaction.submit is not implemented, only planned for. The informational API might not have all the data/means/responsibility to block tx submission when it is not safe to submit.

the security API is not really usable without the informational API

I see that we're deferring to product inputs here (:+1: !) but my understanding so far was:

security critical only - run by separate security-oriented teams, possibly on separate infra, with different privileges. So possibly it can be seen as a separate use case, just in the same organization (e.g. mobile wallet operator). It will also most likely be run by the operator, all the entities interested in challenging. Also entities that hold funds on plasma but aren't transacting (hmmm, are there ones like that?). They can hold their "dormant" UTXO ids in something lighter than an informational Watcher, or use the slow account.get_exitable_utxos once to "awaken" their funds and do sth.
security + informational - any typical entity doing txs, but not caring about separation of concerns internally that much. Developers
informational only - BE, but I'm not 100% sure if BE wouldn't like to know the security oriented data (like status.get) too.

Funnelling conversations back here:

API usage requirements, #1000 for the eWallet, and #1001 for block explorer (thanks @pnowosie for reminding)
@Pongch's opinion:

IMO, informational should have enough information for clients to make deposit, transfer and exit.
Security-critical should serve everything else that wants to engage in activities that preserve security of their funds or Network. This includes all sorts of challenges

I have no further inputs for now. Mainly looking forward to see the personas.

If I may ask a näive question...
If we were starting from scratch, wouldn't it make sense that security API has everything we are discussing + transaction.create/submit? Transaction submission seems very tied to security.
The informational API would be purely for querying.
Are we doing the split the way we are because of previous design decisions that are not easy to undo right now. Or are we doing the split the way we are because that's what we think the logically 'correct' way to do it is?

Catching up on this conversation now. IMO, defining whether a Watcher API belongs in security critical or informational basket is at the moment a false dichotomy since the purpose of the Watcher is to allow users to make transactions on Plasma in a secured manner. Which is why everything does indeed tie back to security.
From the consumer application side, they are not at the moment opinionated whether an API they are consuming is coming from security or informational, as long as its coming from the same service.
If a split is indeed a service level (1 service for Security, 1 for informational). Then, generally a wallet requirements is for deposit, send and exit operations coming from one service. And that another set of applications would perform challenges or communicate w/ wallet applications to perform other operations ie, getting funds out of the Network in mass exit scenario.
Not sure if this made this discussion more complicated
Coming back @unnawut first question:

should we remove transaction.submitfrom the security critical watcher?

Consumer app cares only that the deposit/transact/exit API coming from one service and is agnostic about separation of concerns internally.

So, maybe to throw in an alternative idea:

informational keeps transaction.create (which belongs there, as it relies heavily on rich queries) and gets transaction.submit and submit_typed
security drops transaction.submit_typed, renames its transaction.submit to transaction.submit_secure. The latter eventually gets the security features implemented
informational/transaction.submit and submit_typed only talk to security/transaction.submit_secure underneath (which in turn does chch/transaction.submit)

...or (alternative within an alternative) informational/transaction.submit first calls security/transaction.can_submit_now immediately before chch/transaction.submit
In both cases informational remains the only service the "wallet-like" client talks to, on a day-to-day job of deposit/transact/exit

Swagger definitions is where I take the truth from. So a correction on:

security drops transaction.submit_typed, renames its transaction.submit to transaction.submit_secure. The latter eventually gets the security features implemented

submit_typed is not part of security watcher.
Info apis: https://developer.omisego.co/elixir-omg/docs-ui/?url=master%2Foperator_api_specs.yaml&urls.primaryName=master%2Finformational_api_specs
Security: https://developer.omisego.co/elixir-omg/docs-ui/?url=master%2Foperator_api_specs.yaml&urls.primaryName=master%2Fsecurity_critical_api_specs
One thing I observed and want to repeat: is that an informational node has security endpoints and informational.
A security node has ONLY security endpoints.
I don’t see a reason why informational endpoint would need to strip out security endpoints.

The reason I see for informational API dropping all security endpoints is it means zero attack surface for the Informational API.

Elaborate pls...

In response to @pdobacz:

Settled:

security drops transaction.submit_typed

☝ As Ino mentioned this is already part of informational, so we're good here. 🎉

informational keeps transaction.create (which belongs there, as it relies heavily on rich queries)

☝ Yup agree. I think this one is generally agreed upon. 🎉

Ongoing:

security renames its transaction.submit to transaction.submit_secure. The latter eventually gets the security features implemented
informational gets transaction.submit and submit_typed
informational/transaction.submit and submit_typed only talk to security/transaction.submit_secure underneath (which in turn does chch/transaction.submit)

I was proposing this idea to @InoMurko as well. But the main issue is that while /transaction.submit is in security-critical API/subapp, it requires /account.get_utxos in informational API/subapp to make a transaction, so we can't cleanly split the security vs. info boundary.
And having a cleanly split security vs. info boundary asap means that we can start strong enforcements, e.g. compile time checks complaining any code or tests illegally crossed the border. Where we can then start trusting that any change to informational is really not touching security.
And there're only two ways to enforce strong boundaries for this case:

/transaction.submit and /account.utxos both are in security-critical

/transaction.submit and /account.utxos both are in informational

As far as I understand, option 1 is a huge effort, so option 2 seems more promising. Basically sacrificing by having /transaction.submit in informational (both I and @InoMurko agree it's reallyyyy #^&*%!) in exchange for achieving strict boundaries now.
In medium term, the safe_submit and getting utxos into security can go together...

This one is sidetracking but kinda related...
I see 3 interpretations of informational being used throughout various conversations:

informational -> deposits/transfers/exits, /transaction.create, basic transaction listing, utxo listing
informational -> deposits/transfers/exits, /transaction.create, basic transaction listing, utxo listing, plus network stats, BI (business intelligence), data aggregations, advanced search and filtering
informational -> network stats, BI (business intelligence), data aggregations, advanced txn search

It's really hard to reach a conclusion because the criticality between 1, 2 and 3 are so far apart.
Can we agree on terms that can differentiate them? How about:

wallet -> deposits/transfers/exits, /transaction.create, basic transaction listing, utxo listing
data -> network stats, BI (business intelligence), data aggregations, advanced search and filtering, /utxo.history, etc.
wallet + data -> deposits/transfers/exits, /transaction.create, basic transaction listing, utxo listing, network stats, BI (business intelligence), data aggregations, advanced search and filtering, /utxo.history, etc.

Then we know exactly that @Pongch's comment here https://github.com/omisego/elixir-omg/issues/1129#issuecomment-553771714 is actually wallet, while @jrhite's comment here https://github.com/omisego/elixir-omg/issues/1129#issuecomment-553860623 is data. The two interpretations of informational are vastly different.

I'm not familiar enough with the security API. Can a malicious actor do anything, say if they can access the security APIs through the watcher instance that's publicly serving the block explorer?

Note that I'm not helping to push the conversation back to "Is transaction.submit security critical API?" here but I think we can close this "informational-only" mode in a few more comments then back to the original question I hope.

I'm not familiar enough with the security API. Can a malicious actor do anything, say if they can access the security APIs through the watcher instance that's publicly serving the block explorer?

Not really right? Even the security part is all read-only? Maybe except for /transaction.submit which is also not directly writing anything, at most it will be a sanity checker and relayer?

I'm not familiar enough with the security API. Can a malicious actor do anything, say if they can access the security APIs through the watcher instance that's publicly serving the block explorer?

Not really right? Even the security part is all read-only?

Current implementation is read-only. transaction.submit, after the security checks on it are added, will not be, and accessing it by an unauthorized actor could have security implications (for example, one could turn those security checks off and always push the transactions, to cover up the byzantine condition).
This is the first thing that comes to my mind, but not entirely sure if this is all if the features of the security Watcher keep evolving, and it becomes even less "read-only".

Oh, no, no - I think we have a misunderstanding here.
I got @unnawut question, the way he is asking what happens if someone discovers the Watcher address that is providing data to BE and tries to use its security API (consume the API).
If this was the question - the answer is no harm could be done - security critical API is open publicly. (but I can think of DoS vector...)

I'm not helping to push the conversation back to "Is transaction.submit security critical API?" here but I think we can close this "informational-only" mode in a few more comments

I think @Pongch make it clear: InfoApi should allow for depost, transfer and (standard) exit. It's simple and we should make it happen.
We put some effort to decide in which of these two buckets tx.submit belongs to but it was indeed a "false dichotomy". It does not matter how and when I made my transaction if nobody will challenge an invalid exit.
To summarize it I'd say if I've deposited some funds to plasma chain I either have trust that somebody will keep it secure (so I can go with InfoApi alone) or I will take care of the security myself (and I'm runing Watcher). The approach depends probably more of the amount of the funds than the purity of the separation of concerns. (and it hurts me but 👐 )
I'm not helping either, what do you think @unnawut @pdobacz @InoMurko ❓

Oh, no, no - I think we have a misunderstanding here.
I got @unnawut question the way, he is asking what happens if someone discovers the Watcher address that is providing data to BE and tries to use its security API (consume the API).
If this was the question - the answer is no harm could be done - security critical API is open publicly. (but I can think of DoS vector against BE)

Yes that was my original intention. But the answers to both were equally useful though!

I think what we can close now from @pdobacz's https://github.com/omisego/elixir-omg/issues/1129#issuecomment-553412020, @InoMurko's https://github.com/omisego/elixir-omg/issues/1129#issuecomment-554245907, @Pongch's https://github.com/omisego/elixir-omg/issues/1129#issuecomment-553771714 and @pnowosie's https://github.com/omisego/elixir-omg/issues/1129#issuecomment-556462644 is that....
These two modes continue to exist:

security only
security + informational

And this mode will not be supported:

informational only

Now back to "Is transaction.submit security critical API?"...

So coming back to /transaction.submit. I think these are the options?

Move /transaction.submit into informational API
✅ Minimal changes
✅ Boundary is respected, boundary checks can be enforced right away
🔴 /transaction.submit security checks coming soon

Keep /transaction.submit in security-critical (call it submit_secure), and add a new /transaction.submit to informational API that forwards to security-critical.
✅ Boundary is maintained
🔴 /transaction.submit_secure is still unusable in security-only mode
🔴 The original issue still remains with security + informational needed to transact

Keep /transaction.submit in security-critical. Nothing changes.
✅ It is what it is, no changes
🔴 Boundary is loosened, but only in tests?

Move /account.get_utxos into security-critical.
✅ Boundary respected
🔴 Huge effort
🔴 Doesn't belong in security-critical(?)

The info in this conversation staled quite a bit by now. Starting a new ticket to collect similar conversations from different places.


disk_util: allocate the maximum number of usable inodes

This change changes the default 'bytes-per-inode' ration from 16K to 4K,
the block size. To prevent this from wasting too much space change the
inode size from the default 256 to the minimum size, 128. Larger inodes
are used to store extended attributes more efficiently but since we do
not use SELinux the majority of files do not have security attributes.
These defaults may be modified via the new bytes_per_inode and
inode_size options.
Fixes https://github.com/coreos/bugs/issues/264

LGTM


Consider adding PEP 484 (Type Hints) to Python Code Style

Would it be possible to add PEP 484 (Type Hints) to the Python Code Style standard?
In my opinion, type hints, for the most part, greatly improve code reusability by enabling function annotations. It makes it much easier to catch errors already during development, and understand and work with other people's code. I read that large companies such as Dropbox and Microsoft also use it.
I would also recommend mypy. It's a linter that uses function annotations and in this way allows for static type-checking while writing code. Alternatively, pyright could be used - but I don't have any experience with it.
It could be added to the standards as a "soft" recommendation, since in some specific cases, it is really hard to apply type hints. But even then, there are ways to "cheat" as a last resort, for example by using the Any type.
Thank you for the fantastic documentation of standards and practices, by the way.

Closed, see #237 .


Work with the default layout which contains reactive elements

GenieStatic can write pages using the default layout, which contains code for WebSockets, channels, Vue, Quasar, and other reactive elements. However, the output HTML does not render correctly. A workaround is to use a layout without reactive elements. https://KwatMDPhD.com is made using such a custom layout and this plugin.

https://github.com/GenieFramework/GenieStatic.jl/issues/2#issuecomment-2477069774


User Interruption causes indexing error.

FIx by detecting user interruption and changing the file you try to index acordingly.

This might require forking inquirer to have inquirer.Text do something different in response to a KeyboardInterruptException.

This problem belongs to the inquirer.


Ability to check how much pages/results for each search

Umm this isn't really like a suggestion that you might be looking for, but like it would be cool if we can check how much pages and number of results each search returns. Like im using it to make it pull out a random webm each search, but if it hits a page number that exceeds the page number, or it hits a number that exceeds the number of search results, it errors lol.

@DeathPhase It will fail because the page doesn't exists / have any results. You can do something like
let length = 0;
try {
  length = (await Pornsearch.gifs()).length;
} catch (e) {
  //
}

And then do whatever you want with the length (you don't need to use async / await for this, .then and .catch should work fine xd)


Fix doxygen documentation for CCM encryption

Fix valid IV length values for mbedtls_ccm_encrypt_and_tag() function.
Signed-off-by: Mathieu Briand<EMAIL_ADDRESS>Hi,
I believe the range currently described for the mbedtls_ccm_encrypt_and_tag() function is wrong.
It is said that the iv_len parameter (nonce size) must be in the [2, 8] range.
https://github.com/ARMmbed/mbedtls/blob/888fedea06bfa267b81237ab4d2f336621b536da/include/mbedtls/ccm.h#L81
However, according to rfc3610, nonce is "15-L" bytes where L must be in [2, 8] range, thus nonce size must be in [7, 13] range. This seems to be confirmed by the following line in ccm_auth_crypt() where the given iv_len is verified to be in the [7, 13] range.
https://github.com/ARMmbed/mbedtls/blob/888fedea06bfa267b81237ab4d2f336621b536da/library/ccm.c#L162

Hi @mbriand Thank you for pointing this!
I believe you are correct with your analysis

Hi @hanno-arm, do you have any thought on this PR ?

The initial issue addressed by this PR has been fixed by #1305, but other issues remain:

Comment on tag length is incomplete.
Some comments are missing for the mbedtls_ccm_auth_decrypt() function.

I have rebased my patch on up-to-date development branch to account for changes introduced by #1305.

@mbriand Thanks very much!


[emacs-support] Speed up doc-comment-detail hiding

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves SR-NNNN.

@swift-ci Please smoke test and merge


Account for functor port

Backlink to purescript/purescript#3942

Superceded by the approach proposed by rhendric. He hasn't submitted a PR here yet, so I can't link to it in this one.

(#22, for future readers.)


JSON logging configuration for Cassandra

This is an enhancement request to have the option of configuring Cassandra server to generate logs in json format
As I understand the only way to do this today is use a modified version of cass-management-api image with json loggng enabled (Add necessary jars in classpath, update logback.xml)
if this ability already exist please share links to how this can be achieved without custom image

@anoopps79, in cass-operator v1.15.0 we now use Vector for the server-system-logger container. You can now customize Vector's configuration to push los in JSON format to the destination you want (if Vector supports it of course).
@burmanm, can the container be configured to modify the console output to json then?

Yes, here's an example that would do it:
https://github.com/k8ssandra/cass-operator/blob/master/tests/testdata/configs/vector-config.yaml
And an example how to use it in the deployment:
https://github.com/k8ssandra/cass-operator/blob/master/tests/testdata/default-single-rack-single-node-additional-volumesources.yaml

nice!
@anoopps79, let us know if that suits your needs.

Closing this due to inactivity, the requested functionality exists  in the current version.


MAINT: Pin scikit-image under 0.17 to avoid requiring Cython

A new release of skimage is breaking or tests. Also, remove leftovers of dependencies pinned for Python < 3.6 (#486)

I don't see 0.17 on PyPI. Where are the tests breaking?

https://app.circleci.com/pipelines/github/oesteban/niworkflows/76/workflows/b9c076b1-b346-427d-b361-ce40d5b683e4/jobs/1602/steps
And weirdly, this one https://travis-ci.org/github/nipreps/niworkflows/builds/684491403 was failing yesterday.

I don't see 0.17 on PyPI. Where are the tests breaking?

May they have removed the release overnight? I'm pretty sure (100%) travis was pulling 0.17 from pypi yesterday.

Okay, not crazy:
Collecting scikit-image (from niworkflows==1.2.0rc5+37.gfcfc43a)
  Downloading https://files.pythonhosted.org/packages/56/e0/c9f0ee148ca9b5d65c3971bfb4f2dba6df65b67dfb3a6c88a11deb31a73d/scikit_image-0.17.0-cp37-cp37m-manylinux1_x86_64.whl (12.3MB)

Okay, rolled back the scikit-image pin. Only removing the python <3.6 leftovers. Thumbs-up?

Okay, they just did it and it broke our builds - https://pypi.org/project/scikit-image/0.17.1/

Okay, so issues:

The cython issue is a scikit-image dependency called imagecodecs, which releases its wheels as manylinux2010 and manylinux2014, not manylinux1. This means we need pip 19 or higher. Unclear why the build environment is not being created properly
Now scikit-image creates a directory on import, which fails in parallel as pytest-xdist (https://github.com/scikit-image/scikit-image/issues/4660). The failing call is in a project called Pooch (https://github.com/fatiando/pooch/issues/170) and is fixed in master (https://github.com/fatiando/pooch/pull/171). A short-term fix is to add a python -c "import skimage" before testing. The long-term fix is waiting for pooch to release, which I suspect will be soon.

I'll make a quick PR.

Great sleuthing @effigies and apologies for the churn here! We are making pooch an optional dependency in scikit-image/scikit-image#4666, (and backporting to 0.17.2) which should hopefully fix all the directory creation issues as long as you aren't running the full skimage test suite.
imagecodecs comes via tifffile which is harder to avoid. I hope you were able to work around that?


Replace AngularJS based login page

This patch replaces the AngularJS based login page. Since the code was extremely simple, this does not need any external libraries. A few lines of native JavaScript is sufficient to get the same functionality.
This also simplifies the CSS quite a bit. Although, you could probably still do a better job if you redo this from ground up with modern CSS. But this should already be much simpler.
The login page is now also somewhat responsive.
Finally, this will cause the default credentials to be pre-filled into the login form if this is detected to be a test or development installation. Meaning, either this run on localhost or on a opencast.org domain.
Your pull request should…

[x] have a concise title
[x] close an accompanying issue if one exists
[x] be against the correct branch
[x] include migration scripts and documentation, if appropriate
[x] pass automated tests
[x] have a clean commit history
[x] have proper commit messages (title and body) for all commits

Fixed the merge conflict


NaturalNeighboursMethod fail

Hi @asinghvi17 - the NaturalNeighboursMethod seems to fail, already e.g. in the general.md docs example I get a
ERROR: TaskFailedException

    nested task error: KeyError: key (10, 9, 8) not found

Any idea whats going on?

@asinghvi17 any points on this, else I will take out that example for now. I dont have time to debug that code

@behinger If you still want to fix it, you can send me the example code that led to that error I can debug it. Usually it's the same cause everytime but a bit hard to explain


As an editor it makes more sense to change 'ATTRIBUTION' to 'Credit' when adding photographers name to Image component

Change Attribution field to Credit

Change of lable. Should be a quicky!

@wenche can you check changes?

Looks good to me! As long at @meols agrees, we are good to go :thumbsup:

@wenche @fernandolucchesi - yes - great and thank you! :clap:
(not sure where I can check it, but agree to the change)

LGTM @fernandolucchesi


CLN: invoice status check

For CLN only: Incoming invoices that haven't been paid return "Failed" (status False) while they should return "In-flight" (status None). Failed should be used for invoices that do not exist or are expired.

Handled here: https://github.com/lnbits/lnbits/pull/2396
get_invoice_status() returns Failed only if invoice_resp["status"] == "expired"


SMS Baby?

can you explain this part?

When you want your victim's phone to sync it's data(location,sms,etc) to your server, just send "Baby?" text message to his/her phone.


contour replies to all XTGETTCAP with FFFFFF

Contour Terminal version
0.3.0-unreleased-master-f764fb6f
Installer source
Github: source code cloned
Operating System
Debian Linux Unstable
Architecture
x86-64
Other Software
notcurses 3.0.5-prerelease
Steps to reproduce
echo -e '\eP+q687061\e\'
Expected Behavior
 :0+r^[\ if hpa is unsupported
:1+r687061=5c455b2569257031256447^[\ (or something similar) if it is
Actual Behavior
:1+r687061=FFFFFFFF^[\
Additional notes
this seems to be returned for all XTGETTCAP requests.
this now causes a problem, because notcurses 3.0.5 will be pulling hpa's definition from XTGETTCAP if it's defined there. technically, FF would be an invalid byte, since there should not be any bigger than 7F, so i can ignore this and throw it out. you probably want to fix it, though.

Oh sorry @dankamongmen . I will have that fixed by tonight.

I had tcap generally unit tested. but apparently not enough. I'll merge the fix ASAP.

"commented yesterday" ... WHAT? And I just noticed this afternoon? Sorry....


feat: introduce the Limiter in frontend to limit the requests by in-flight write bytes size.

I hereby agree to the terms of the GreptimeDB CLA.
Refer to a related PR or issue link (optional)
What's changed and what's your intention?
Introduce the Limiter in frontend to limit the requests by in-flight write bytes size.
PR Checklist
Please convert it to a draft if some of the following conditions are not met.

[ ] I have written the necessary rustdoc comments.
[x] I have added the necessary unit tests and integration tests.
[x] This PR requires documentation updates.
[ ] API changes are backward compatible.
[ ] Schema or data changes are backward compatible.

@waynexia client may still get tcp level error like send buffer is full if it sends faster than server can read.


remove "void" for Class's constructors those are identified by same method name wth Class's name

verified locally

latest updates:
auto generation of imports and inner definitions
assumption: user select a root view of whole package for generation
for example, user select "Local View" to general all types under this view. Then we can automatically generate imports for each type
ed3de2


feat(material/chip): Add focus indicator

Background: The chip's focus indicator needs to be offset from the chip itself in order to be sufficiently contrastive because the chip can have a primary/accent fill.  However, given mat-chip has overflow: hidden, any offset focus indicator will be hidden. The reason mat-chip has its overflow hidden is because it also acts as a ripple target. Thus, in order to add a focus indicator to chip, this PR does the following:

Instead of using the mat-chip as the ripple target, dynamically create an element and add it as a child node of the mat-chip. This element will be the chip's new ripple target. This element will have its overflow hidden, and the mat-chip will have that style removed.
Add the .mat-focus-indicator class to the mat-chip.

Can I accept the new api golden?

You can go ahead and make the public API gold update and I can merge the PR


Omnia remake

Removing all settings features

Remove all Card Edit add-ons

Adjust how all badges are rendered

Move the list rendering to below title to not force title to wrap

Adjust CSS with different colors etc

Adjust icons to use SVGs

Add card counter on list and in total

Features still here are

Handle {x}y in title and render badges on card for it
Summarize on list and on board level
Card counter on list and on board level

Added to wrong master :)


[DOCS] Adds Connecting section to Go docs

Overview
This PR adds a Connecting section to the Go Clients docs.
Preview
Connecting

LGTM!


useParam doesn't return expected value

I just updated to v.1.0.10 and I noticed that useParam is not giving me the expected value in React Native when I use the following code:
Login screen that calls router.push:
import { useRouter } from "solito/router";

export const LoginScreen: React.FC => {
  const router = useRouter();

  const signIn = useCallback(async () => {
    router.push(`/home/foobar`);
  }, [router]);

  return <Button onPress={signIn}>Login</Button>;
}

Home screen that gets id using useParam:
import { createParam } from "solito";

const { useParam } = createParam<{ id: string }>();

export const HomeScreen: React.FC => {
  const [id] = useParam("id");

  return <Text>{`User ID: ${id}`}</Text>
}

In version 0.0.29 useParam returns "foobar"
In version 1.0.10 useParam returns {id: "foobar"}
Is this expected or a bug? I couldn't find any reference to changes to the API in the release notes or in the docs.

Oh wow, that’s not good. I’m pushing a fix now. Sorry about that.

Should be fixed in 1.0.11. Can you let me know?

Confirmed fixed in v.1.0.11, thanks for the quick fix!

great!


Add filename friendly date format

Summary of the Pull Request
This is an addition to the Date & Time plugin in PowerToys Run. It adds a new entry yyyy-MM-dd_hh-mm-ss into the list of date formats for date and time that:

is easily human-readable
allows for good file sorting by name (year -> month -> day -> hour -> minute -> second)
omits any characters forbidden in Windows file names (e.g. forward slashes and colons)

PR Checklist

[x] Closes: #24911
[x] Communication: I've discussed this with core contributors already. If work hasn't been agreed, this work might be rejected
[ ] Tests: Added/updated and all pass
[x] Localization: All end user facing strings can be localized
[ ] Dev docs: Added/updated
[ ] New binaries: Added on the required places

[ ] JSON for signing for new binaries
[ ] WXS for installer for new binaries and localization folder
[ ] YML for CI pipeline for new test projects
[ ] YML for signed pipeline

[ ] Documentation updated: If checked, please file a pull request on our docs repo and link it here: #xxx

Detailed Description of the Pull Request / Additional comments

Validation Steps Performed

@Picazsoo please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.
@microsoft-github-policy-service agree [company="{your company}"]

Options:

(default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.

@microsoft-github-policy-service agree

(when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.

@microsoft-github-policy-service agree company="Microsoft"

Contributor License Agreement

@microsoft-github-policy-service agree


32 "Cannot find type" errors after instaling via CocoaPods

Hey, i'm encountering a lot of errors like this right after instaling the library via CocoaPods. It seems like Xcode is getting confused with the classes, as it's asking wheter i'd like to import "SwiftUI". Here's my podfile:
platform :ios, '14.1'
source 'https://github.com/CocoaPods/Specs.git'
target '#####' do
use_frameworks!
ignore all warnings from all pods
inhibit_all_warnings!
...
pod 'Contentful', '~> 5'
pod 'ContentfulRichTextRenderer'
...
end
Here some print:

Getting this same error, but I installed with SPM. Did you find out how to work around this?

Getting this same error, but I installed with SPM. Did you find out how to work around this?

In my case was an issue with the Contentful library version. After install exactly versions all worked fine. I'm using the following versions:
pod "Contentful", "5.0.11"
pod "ContentfulRichTextRenderer": "0.2.0"


[IDE][Sema] Fix code completion unreachable/hang in TypeBase::getContextSubtitutions

There are paths from code completion giving it an UnboundGenericType, which it doesn't expect.
This patch:

Updates the code completion paths to not attempt substitution on UnboundGenericTypes
Updates getContextSubstitutions to assert and break out of the loop when given an unhandled type to avoid hanging release builds if a similar bug occurs in future.

Resolves rdar://problem/53959978

@swift-ci please test

Thank you Nathan!


Can't analyze local AV1 bitstream

Hi!
Thanks for the great work.
I'd be interested into analyzing local AV1 bitstreams. However I am experiencing difficulties into loading them. I have read the previous issue concerning VP9 bitstreams. I am trying to adapt the different solutions without success for now.
For instance, I am having a "Downloading files failed" error when using a local http server.
http://aomanalyzer.org/awcy/analyzer.html?decoder=decoder.js&file=localhost:8000/AOM_Prop_aom_proposed_ParkDancers_79.ivf
Similarly, I am having a "Drag at least one decoder.js" error when I am trying to use local mode with a decoder.js file and the ivf file into the first square.
http://aomanalyzer.org/awcy/analyzer.html?local=1
For information, I retrieved the decoder.js file from
http://aomanalyzer.org/awcy/decoder.js
Do you have any idea where is my mistake?
Thanks in advance,
Franck

Hi Franck,
Can you paste the errors you're seeing in your browser's error console. I believe this is an issue with CORS on your local web server, if so you'll need to do the following:

Prefix both decoder.js and the .ivf file with the full path.

http://aomanalyzer.org/awcy/analyzer.html?decoder=http://localhost:8000/decoder.js&file=http://localhost:8000/default.ivf&maxFrames=4

Setup a local server what provides CORS headers. Create a server.py file with the following contents, and run it with python. The solution comes from this stackoverflow question: http://stackoverflow.com/questions/21956683/python-enable-access-control-on-simple-http-server

#!/usr/bin/env python2
from SimpleHTTPServer import SimpleHTTPRequestHandler
import BaseHTTPServer

class CORSRequestHandler (SimpleHTTPRequestHandler):
    def end_headers (self):
        self.send_header('Access-Control-Allow-Origin', '*')
        SimpleHTTPRequestHandler.end_headers(self)

if __name__ == '__main__':
    BaseHTTPServer.test(CORSRequestHandler, BaseHTTPServer.HTTPServer)

You'll need to make sure that your decoder.js file is compatible with the video you're trying to analyzer. You may need to build it yourself, using the ./tools/build_inspector.sh in the AV1 source tree. You'll need emscripten installed to do this.

P.S. The local drag and drop feature has recently regressed, so creating a local web server is the best option for now.


Added us/pa/york

Fixes #1977.

Fantastic!  My home county, I had been looking for this data for awhile.

re-run this please

Looks like there was a time out on some of the requests.
Not sure I can do this but I'll try...
re-run this, please

There's some messy data in there but a great addition overall!


Saturation command

I was wondering if it would be possible to implement a saturation command. It seems like a very common use case that unfortunately this package doesn't provide.

Hi,
I create a command
<?php

namespace Intervention\Image\Imagick\Commands;

class SaturateCommand extends \Intervention\Image\Commands\AbstractCommand
{
    /**
     * Changes image brightness
     *
     * @param  \Intervention\Image\Image $image
     * @return boolean
     */
    public function execute($image)
    {
        $level = $this->argument(0)->between(-100, 100)->required()->value();

        return $image->getCore()->modulateImage(100, 100 + $level, 100);
    }
}

How can I register this command in my app ?

I would rather extend the library with the filter architecture.

@reeslo Did you find out? Really interested in finding out how to do it.

nope sorry :/


customer phone number variable in mail templates missing

Description:
The old variable, defaultBillingAddress.phoneNumber has been unavailable for a while (and prevents mails being sent in general now). Instead, shop owners had used {{ order.addresses.at(0).phoneNumber }} to get the phone number into mail templates. However, it appears that this one no longer works either.
Environment: prod
Steps to reproduce:

Have customer with phone number in an address
Have mail template incl. {{ order.addresses.at(0).phoneNumber }} - order confirmation is optimal for testing
Login as customer with phone number and place order in storefront
Check mail

Expected result:
{{ order.addresses.at(0).phoneNumber }} is filled with customer phone number.
Actual result:
Variable remains empty.

[public] Hello,
Within our company roadmap and work capacity, we try to address each bug or improvement request but admit that not each one will be resolved. To continue our culture of honesty and openness, we are closing this issue to focus on our roadmap on behalf of all Shopware users.
If you feel like this issue is still impacting you, please create a new issue and let us know. Thank you again for your valuable feedback.
[created from NEXT-33019, comment 501295]


Adding methods for default / implicit behavior in storage.

Addresses part of #337.

Changes Unknown when pulling 2d87f34670b7dee2a32e99a5cdc283841d17d143 on dhermes:add-implicit-behavior-in-storage into ** on GoogleCloudPlatform:master**.

LGTM aside from my note about imply vs infer.

Rebased and merging.

Coverage remained the same at 100.0% when pulling 9b69c8e3dcb179dbb32a77bc88430fe894e3cbd3 on dhermes:add-implicit-behavior-in-storage into 85e7b147951259ef1b88af91608f7d6ace686188 on GoogleCloudPlatform:master.


feat(kit): datetime's ToLocalTime now support value already in time

Sometimes we implement a listener that already convert uint32 time into time.Time{}. And since we can only convert timestamp to local time after retrieving Activity mesg which typically located at the end of the file, it is make sense to accept time.Time{} to proceed the conversion later on.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (87dfeb6) 100.00% compared to head (16a975a) 100.00%.

Additional details and impacted files
@@            Coverage Diff            @@
##            master       #37   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           19        19
  Lines         2539      2542    +3
=========================================
+ Hits          2539      2542    +3

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


Reduce the p.createdConns when failed to create new connection

The number of created connections was not being decreased when p.newConn() returned an error. As a result, p.createdConns could reach the maximum allowed connections, causing new connections not to be created. This issue resulted in borrowConn() always returning timed out waiting for free conn in pool because there were no available connections in the pool and no new connections could be created since p.createdConns was already at the maximum.

Fixed in #11. Thank you.


allow editing of plain text files

another file -> open menu item that opens any text file allows you to edit it as one big cell, without execution.

should we also allow editing of markdown files?

need to use file extension or mime type or something to identify the code mirror mode. but not markdown w preview.


[DO NOT MERGE] Test action branch

Testing https://github.com/open-rmf/rmf_ci_templates/pull/16

Upstream PR merged, closing


Add a 'wordwise' option for the diff inline view

As kind of requested in issue #103285 and visible in the mentioned issues attached image I'd like the option to only display the changed part of the line.
The idear is to not have a read line and a green line underneeth each other but rather a single line where only the parts are highlighted that have acually changed.
Maybe the option could be added to the "More Actions..." drop down menu as "Inline Word View", "Wordwise View" or "Word Diff View"

I think this makes sense for the inline view!
I reopened the original issue.
/duplicate https://github.com/microsoft/vscode/issues/103285


Discrepency between saffron and pepper spectra

I was notified by Claudia that the FT transform echo simulated with pepper does not match the pepper spectrum for a system with an orthorombic g tensor, and instead appears to have the shape of an axially symmetric g tensor. It appears that this is an issue with the rotatesystem subfunction of saffron.
Here is a MWE:
% Two-pulse echo simulation (saffron)
%========================================================================== % simulates an echo of a nitroxide using saffron
% (adapted from EasySpin (version 6) example custom_2p_echo.m)
clear; clc;

% Spin system
Sys.g = [2.009 2.006 2.002];
Sys.A = [11 11 95]; % MHz
Sys.Nucs = '14N';
Sys.HStrain = 0.1; % MHz

Exp.Field = 324.9; % mT

[v0,spec0] = pepper(Sys,Exp); % use pepper to obtain frequency-sweep spectrum to set pulses

% Pulse definitions
P90.tp = 0.002; % mus
P90.Flip = pi/2; % rad

P180.tp = 2*P90.tp; % mus
P180.Flip = pi; % rad

tau = 0.6; % mus

Exp.Sequence = {P90 tau P180 tau};
Exp.PhaseCycle{1} = [0, 1; pi, -1];
Exp.mwFreq = 9.1; % GHz
Exp.Field = 324.9; % mT
Exp.DetWindow = [-1 1]*tau; % us
Exp.DetPhase = pi; % rad, for proper phasing of the signal

Opt.nKnots = 81;
[t,y] = saffron(Sys,Exp,Opt);

% Fourier transform to get spectrum
win = apowin('ham',numel(y)).';
y_apo = y.*win;
nzf = numel(y);
y_zf = [zeros(1,nzf) y_apo zeros(1,nzf)];
yft = abs(fftshift(fft(y_zf)));
f = fdaxis(t(2)-t(1),numel(yft));

% Plot results
figure;
sgtitle(sprintf('Nitroxide spin echo and FT (nKnots = %i): saffron',Opt.nKnots),'FontSize',10)
subplot(2,1,1)
plot(t,real(y),t,imag(y))
xlabel(['t (',char(181),'s)'])

subplot(2,1,2)
hold on; box on;
plot((v0-Exp.mwFreq)*1e3,spec0/max(spec0),'k')
plot(f,yft/max(yft))
legend('pepper','echo FT')
xlim([-200 200])
xlabel('\nu - \nu_{mw} (MHz)')

Correct, this is a bug in saffron/rotatesystem (a missing transpose on one of the rotation matrices).


Replace NSNotFound for kCFNotFound in NSRange

CoreFoundation returns a "not found"  range as {-1, 0}.
This needs to be represented as {NSNotFound, 0} in Foundation.
Included all but four tests from test_complexRegularExpression
in TestNSRegularExpression (the excluded depend on PR 278)
Added four new tests as well.

@swift-ci Please test


Update mitigation pattern

Reason:
Need to update the mitigation pattern
Validation:
Lab tested

Hi All,
The mitigation listed in this merge request "(?=.*autodiscover)(?=.*powershell)" is different to whats described on the msrc-blog site "(?=.*autodiscover.json)(?=.*powershell)"
Are you sure the mitigation in this script is correct?

@skygrip Thanks for the catch. It looks like the blog is actually wrong. EEMS and the script are both using the correct one. I've notified the relevant people to get this corrected. Thank you!


Python bidask==0.1.1 doesn't support "sign"

The docs for the Python version of bidask mention sign=False. This kwargument however is not supported by the current latest version of bidask which is 0.1.1. The following exception occurs:
TypeError: edge() got an unexpected keyword argument 'sign'

Yes, version 0.1.1 currently on PyPI does not support the argument sign.
All the implementations at this repo have been updated and now use a revised version of the estimator. I'll upload the new implementations on PyPI for Python and on CRAN for R as soon as I'll update the paper on SSRN. This is expected to happen soon. If you would like to use the new implementation now, please install the version that is on github.
I'll keep this issue open and close it as soon as I'll release the new packages and paper. Thanks!

New preprint now available at SSRN
Version 2.0.0 now available at PyPI


Wrap type definitions on one line per variant

Closes #546.

This more or less moves into the opposite direction to #569.
This PR is more liberal with newlines whereas the other compacts the code more. Opinions?

I still think that if the type definition is short enough to fit on one line and not self-evident enough, add comments, then it won't fit on one line anymore.  If the type definition is short and clear, it's easier to read the code as a whole if the definition is short, since it allows more context to be seen at once.

Let's make this be configurable then. Next, we can focus on having per project formatting settings since this kind of thing is going to come up often.

Configuration feels like a slippery slope (see all the ESLint rules)?

@AppShipIt How so? Surely, not everyone would agree on a single width to wrap source code at, right?

@jordwalke I would prefer us to make the decision as it would prevent countless of useless coding style discussions in the future.

Surely, not everyone would agree on a single width to wrap source code at, right?

Right but as a former UX lead I look for the XY problem. Why do people wrap at different widths. One reason is readability similar to constraining website copy to 960 pixels. Another is display device. I code on my laptop with split editors and occasionally present with larger font for readability at a distance. If only those two use cases I'd suggest configurability is the wrong solution. Just constrain to content width. Except the final factor is consistency. A configurable width enables a team (using a shared editor config) to discourage complex expressions.
On the other hand this issue feels more semantic. Perhaps keeping simple statements on a single line will discourage nesting complex. But you could theoretically configure everything. What don't you configure? How do you name properties? How do you migrate their names as convention necessitates? That's the slippery slope I'm alluding to. Hash these TIMTOWTDI once so teams never have to.

Getting back to this. I personally think we should be more opinionated about configs so Reason code across projects can be more consistent and predictable. If people have really strong and different opinions about one specific behavior, we should then make it a configurable variable (like print-width).
In this specific case, I think breaking them into multiple lines makes it much easier to read for me. If you consider the following test case:

vs

With the new change, I can instantly tell the type has three different constructors.
Let's get this merged. We can continue our discussion in the issue.

Closed via : https://github.com/facebook/reason/commit/0479a2b7e64716f2dd69ec46d8343e4139c5865b (fixed a test case on top of this).

This unnecessary expansion of type definitions makes them more heavyweight, which discourages them, and is exactly the wrong direction.

Yeah, this change is indeed in the wrong direction if you look at: https://github.com/facebook/reason/pull/571/files#diff-9055ce1ca76486a2757c3aa92264647cL42. My preference would go to only breaking typing definitions if the constructors contain arguments.


edgedriver: Update to version 108.0.1462.20 and fix checkver

What type of Apps related PR is this? (check all applicable)

[ ] ✨ Add Manifest
[ ] ♻ Refactor
[x] 🐛 Bug Fix
[ ] 👷 Optimization
[x] 🚩 Other

Description
Update the edgedriver to the newest version, add arm64 support. Also, the response from the edgedriver LATEST_BETA is now in unicode, so we need to change how checkver is obtained
Related Tickets & Documents
None, except the excavator wasn't able to obtain the new version
[optional] What gif/emoji best describes this PR or how it makes you feel?
:alien: :bug: :package:
Did you verify the followings
Add/Modify a description in the manifest?

[x] 👍 yes
[ ] 🙋 yes, but I need help
[ ] 🙅 no, because they aren't needed

Check URLs?

[x] 👍 yes
[ ] 🙋 yes, but I need help
[ ] 🙅 no, because they aren't needed

Update to the latest version?

[x] 👍 yes
[ ] 🙋 yes, but I need help
[ ] 🙅 no, because they aren't needed

Update Hashes?

[x] 👍 yes
[ ] 🙋 yes, but I need help
[ ] 🙅 no, because they aren't needed

Format the json manifest?

[x] 👍 yes
[ ] 🙋 yes, but I need help
[ ] 🙅 no, because they aren't needed

Did you identify extra steps
Notes in the manifest?

[x] 👍 yes
[ ] 🙋 yes, but I need help
[ ] 🙅 no, because they aren't needed

Application Dependencies?

[ ] 👍 yes
[ ] 🙋 yes, but I need help
[x] 🙅 no, because they aren't needed

Application Suggestions?

[ ] 👍 yes
[ ] 🙋 yes, but I need help
[x] 🙅 no, because they aren't needed

Pre-installation steps to perform?

[ ] 👍 yes
[ ] 🙋 yes, but I need help
[x] 🙅 no, because they aren't needed

Post-installation steps to perform?

[ ] 👍 yes
[ ] 🙋 yes, but I need help
[x] 🙅 no, because they aren't needed

File persistence to perform?

[ ] 👍 yes
[ ] 🙋 yes, but I need help
[x] 🙅 no, because they aren't needed

Your changes do not pass checks.
edgedriver

[x] Description
[x] License
[x] Hashes
[ ] Checkver
[x] Autoupdate

/verify

All changes look good.
Wait for review from human collaborators.
edgedriver

[x] Description
[x] License
[x] Hashes
[x] Checkver
[x] Autoupdate

/verify

All changes look good.
Wait for review from human collaborators.
edgedriver

[x] Description
[x] License
[x] Hashes
[x] Checkver
[x] Autoupdate

/verify

All changes look good.
Wait for review from human collaborators.
edgedriver

[x] Description
[x] License
[x] Hashes
[x] Checkver
[x] Autoupdate

/verify

All changes look good.
Wait for review from human collaborators.
edgedriver

[x] Description
[x] License
[x] Hashes
[x] Checkver
[x] Autoupdate

/verify

All changes look good.
Wait for review from human collaborators.
edgedriver

[x] Description
[x] License
[x] Hashes
[x] Checkver
[x] Autoupdate

/verify

/verify

All changes look good.
Wait for review from human collaborators.
edgedriver

[x] Description
[x] License
[x] Hashes
[x] Checkver
[x] Autoupdate


Show proper error when data not enabled on Ledger

A user reported that they get "Confirmation transaction failed".
After opening the browser console it turned out that there was an error message saying that they didn't enable data on their Ledger.
Since we have the info, we should improve the error message to let the user know what actually went wrong.

Will be addressed as part of #1059


Add the possibility to create conda packages of current master

@goanpeca, this is what we need to create conda packages without doing releases if that's not needed.
Please take a look at RELEASE.md to see how it works. I'll merge it to keep going :-)


No RTL support in flutter_adaptive_scaffold package

No RTL support in flutter_adaptive_scaffold.
How to reproduce?
Easy, just wrap the AdaptiveScaffold widget with the Directionality widget
Directionality(
        textDirection: TextDirection.rtl,
        child: AdaptiveScaffold(
        ....
        ),
      )

Thanks for the report. I think this is more of a current limitation than a bug, so I'll treat this as a proposal to support RTL.

RTL support would be great, any update on this?

@kyleorin I have filed PR https://github.com/flutter/packages/pull/4204


how to load a local pruned model

@Mistobaan @richhankins @pminervini @jeffhsu3 @polm i use following manners to save a pruned model:
model.half()
torch.save({
'model': model,
'tokenizer': tokenizer,
}, logger.best_checkpoint_path)
the local saved model is following:

so i want to know how to load this model and its tokenizer by using lm-evaluation-harness, in orther words, i want to get where this project load a model。

Assuming you are using a huggingface code base for llama, you can export the model in huggingface format and use the huggingface interface.
Check this notebook for a working example: https://colab.research.google.com/drive/1XS9m9k0-5g5sJz5xQWP9HxyLunDs5yhG

Hi, the code in the notebook only solve the problem when i only want to load the existed model class. If I want to load a pruned model with the model architecture modified, how should i do?

Hi @qxpBlog , it's difficult to be more helpful without more info, but,
If you have code to load your model, and its interface and tokenizer are compatible with Huggingface AutoModelForCausalLM, you can load the model yourself, and run lm-eval-harness externally using the simple_evaluate() or evaluate() functions--we allow for pretrained and tokenizer to be passed as already-initialized HF model objects already to HFLM's initialization.
See https://github.com/EleutherAI/lm-evaluation-harness/blob/main/docs/interface.md#external-library-usage for an example of using the library's external API. your script would then look like initializing your model and tokenizer, passing them into the creation of HFLM, and running simple_evaluate().

Hi @qxpBlog , it's difficult to be more helpful without more info, but,
If you have code to load your model, and its interface and tokenizer are compatible with Huggingface AutoModelForCausalLM, you can load the model yourself, and run lm-eval-harness externally using the simple_evaluate() or evaluate() functions--we allow for pretrained and tokenizer to be passed as already-initialized HF model objects already to HFLM's initialization.
See https://github.com/EleutherAI/lm-evaluation-harness/blob/main/docs/interface.md#external-library-usage for an example of using the library's external API. your script would then look like initializing your model and tokenizer, passing them into the creation of HFLM, and running simple_evaluate().

thanks i have solved this problem

Hello @haileyschoelkopf ,
I'm have pruned and further finetuned model of Llama-7B.
Original model contains the 32 layers but my pruned model contains just 11 layers.
when I run the simple_evaluate, I'm using issues.

tokenizer = AutoTokenizer.from_pretrained(
                 model_name,
                cache_dir = self._cfg.llm.cache_dir)
 lm_eval_model = LMEvalAdaptor(pruned_llama7b_model, tokenizer)
results = evaluator.simple_evaluate(
            model=lm_eval_model,
            tasks=[dataset_name],
            batch_size=128,
            no_cache=True,
        )

# taken from https://github.com/mit-han-lab/offsite-tuning/blob/main/offsite_tuning/eval_harness.py
class LMEvalAdaptor(BaseLM):

    def __init__(self, model, tokenizer, batch_size=1):
        super().__init__()

        assert isinstance(batch_size, int)

        self.model = model
        self.model.eval()

        self.tokenizer = tokenizer

        self.vocab_size = self.tokenizer.vocab_size

        self._batch_size = batch_size
        self._max_length = -1

    @property
    def eot_token_id(self):
        return self.tokenizer.eos_token_id

    # @property
    # def max_length(self):
    #     if hasattr(self.model.config, 'n_ctx'):
    #         return self.model.config.n_ctx
    #     elif hasattr(self.model.config, 'max_position_embeddings'):
    #         return self.model.config.max_position_embeddings
    #     else:
    #         return 2048

    @property
    def max_length(self):
        if self._max_length != -1:
            return self._max_length
        if hasattr(self.model.config, 'n_ctx'):
            return self.model.config.n_ctx
        elif hasattr(self.model.config, 'max_position_embeddings'):
            return self.model.config.max_position_embeddings
        elif hasattr(self.model.config, 'n_positions'):
            return self.model.config.n_positions
        # Jerry: need to check these defaults
        # elif 'bloom' in self.model_name:
        #     return 2048
        # elif 'llama' in self.model_name:
        #     return 2048  # TODO: did not check this
        # elif 'mpt' in self.model_name:
        #     return 2048
        # elif 'falcon' in self.model_name:
        #     return 2048
        else:
            print(self.model.config)
            raise NotImplementedError

    @property
    def max_gen_toks(self):
        return 256

    @property
    def batch_size(self):
        return self._batch_size

    @property
    def device(self):
        return "cuda"

    def tok_encode(self, string: str):
        return self.tokenizer.encode(string, add_special_tokens=False)

    def tok_decode(self, tokens):
        return self.tokenizer.decode(tokens)

    def _model_call(self, inps):
        """
        inps: a torch tensor of shape [batch, sequence]
        the size of sequence may vary from call to call
        returns: a torch tensor of shape [batch, sequence, vocab] with the
        logits returned from the model
        """
        with torch.no_grad():

            # out = self.model(inps)[0]
            # return out  # [:, :, :self.tokenizer.vocab_size]

            print(inps)

            out = self.model(inps)
            return out.logits  # [:, :, :self.tokenizer.vocab_size]

    def _model_generate(self, context, max_length, eos_token_id):
        return self.model.generate(
            context,
            max_length=max_length,
            eos_token_id=eos_token_id,
            do_sample=False
        )

The errors is as below:

  File "/home/krishna/2024/FederatedScope/federatedscope/llm/offsite_tuning/server.py", line 282, in eval
    self.llm_evaluate()
  File "/home/krishna/2024/FederatedScope/federatedscope/llm/offsite_tuning/server.py", line 304, in llm_evaluate
    results = evaluator.simple_evaluate(
  File "/home/krishna/miniconda3/envs/fs-llm/lib/python3.9/site-packages/lm_eval/utils.py", line 161, in _wrapper
    return fn(*args, **kwargs)
  File "/home/krishna/miniconda3/envs/fs-llm/lib/python3.9/site-packages/lm_eval/evaluator.py", line 86, in simple_evaluate
    results = evaluate(
  File "/home/krishna/miniconda3/envs/fs-llm/lib/python3.9/site-packages/lm_eval/utils.py", line 161, in _wrapper
    return fn(*args, **kwargs)
  File "/home/krishna/miniconda3/envs/fs-llm/lib/python3.9/site-packages/lm_eval/evaluator.py", line 247, in evaluate
    resps = getattr(lm, reqtype)([req.args for req in reqs])
  File "/home/krishna/miniconda3/envs/fs-llm/lib/python3.9/site-packages/lm_eval/base.py", line 185, in loglikelihood
    return self._loglikelihood_tokens(new_reqs)
  File "/home/krishna/miniconda3/envs/fs-llm/lib/python3.9/site-packages/lm_eval/base.py", line 295, in _loglikelihood_tokens
    self._model_call(batched_inps), dim=-1
  File "/home/krishna/2024/FederatedScope/federatedscope/llm/trainer/trainer.py", line 141, in _model_call
    out = self.model(inps)
  File "/home/krishna/miniconda3/envs/fs-llm/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1538, in _call_impl
    result = forward_call(*args, **kwargs)
  File "/home/krishna/miniconda3/envs/fs-llm/lib/python3.9/site-packages/peft/peft_model.py", line 1083, in forward
    return self.base_model(
  File "/home/krishna/miniconda3/envs/fs-llm/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1538, in _call_impl
    result = forward_call(*args, **kwargs)
  File "/home/krishna/miniconda3/envs/fs-llm/lib/python3.9/site-packages/peft/tuners/tuners_utils.py", line 161, in forward
    return self.model.forward(*args, **kwargs)
  File "/home/krishna/miniconda3/envs/fs-llm/lib/python3.9/site-packages/accelerate/hooks.py", line 165, in new_forward
    output = module._old_forward(*args, **kwargs)
  File "/home/krishna/miniconda3/envs/fs-llm/lib/python3.9/site-packages/transformers/models/llama/modeling_llama.py", line 1183, in forward
    outputs = self.model(
  File "/home/krishna/miniconda3/envs/fs-llm/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1538, in _call_impl
    result = forward_call(*args, **kwargs)
  File "/home/krishna/miniconda3/envs/fs-llm/lib/python3.9/site-packages/accelerate/hooks.py", line 165, in new_forward
    output = module._old_forward(*args, **kwargs)
  File "/home/krishna/miniconda3/envs/fs-llm/lib/python3.9/site-packages/transformers/models/llama/modeling_llama.py", line 1070, in forward
    layer_outputs = decoder_layer(
  File "/home/krishna/miniconda3/envs/fs-llm/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1538, in _call_impl
    result = forward_call(*args, **kwargs)
  File "/home/krishna/miniconda3/envs/fs-llm/lib/python3.9/site-packages/accelerate/hooks.py", line 165, in new_forward
    output = module._old_forward(*args, **kwargs)
  File "/home/krishna/miniconda3/envs/fs-llm/lib/python3.9/site-packages/transformers/models/llama/modeling_llama.py", line 798, in forward
    hidden_states, self_attn_weights, present_key_value = self.self_attn(
  File "/home/krishna/miniconda3/envs/fs-llm/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1538, in _call_impl
    result = forward_call(*args, **kwargs)
  File "/home/krishna/miniconda3/envs/fs-llm/lib/python3.9/site-packages/accelerate/hooks.py", line 165, in new_forward
    output = module._old_forward(*args, **kwargs)
  File "/home/krishna/miniconda3/envs/fs-llm/lib/python3.9/site-packages/transformers/models/llama/modeling_llama.py", line 408, in forward
    key_states, value_states = past_key_value.update(key_states, value_states, self.layer_idx, cache_kwargs)
  File "/home/krishna/miniconda3/envs/fs-llm/lib/python3.9/site-packages/transformers/cache_utils.py", line 130, in update
    return self.key_cache[layer_idx], self.value_cache[layer_idx]
IndexError: list index out of range

Any idea to resolve this issue? Thank you in advance.

Hi @qxpBlog , it's difficult to be more helpful without more info, but,
If you have code to load your model, and its interface and tokenizer are compatible with Huggingface AutoModelForCausalLM, you can load the model yourself, and run lm-eval-harness externally using the  or  functions--we allow for  and  to be passed as already-initialized HF model objects already to 's initialization.simple_evaluate()``evaluate()``pretrained``tokenizer``HFLM
See https://github.com/EleutherAI/lm-evaluation-harness/blob/main/docs/interface.md#external-library-usage for an example of using the library's external API. your script would then look like initializing your model and tokenizer, passing them into the creation of HFLM, and running .simple_evaluate()

thanks i have solved this problem

I meet the same problem. Can you tell me how to solve it?

Thank you @haileyschoelkopf for the prompt response.
I was able to solve this by setting model.config.use_cache to False
# load HF model
model = AutoModelForCausalLM.from_pretrained(
        model_name,
        cache_dir = cache_dir,
        **kwargs)

# adding below line fixed this
model.config.use_cache = False

I'm not sure about complete reasons for this error. But somehow, cached model information was the issue (error was coming from transformers/cache_utils.py script).
Thanks

Could you please tell me how to modify the config of a pruned model?


tacto headless setup errors

Note: I uncommented the following code: https://github.com/facebookresearch/tacto/blob/master/tacto/renderer.py#L21 which is equivalent to your suggestion on using EGL Mode
Below is the error I get when attempting to run tacto headless:
Traceback (most recent call last):
  File "demo_pybullet_digit.py", line 23, in main
    digits = tacto.Sensor(**cfg.tacto, background=bg)
  File "/viscam/u/small02/tacto/tacto/sensor.py", line 80, in __init__
    self.renderer = Renderer(width, height, background, config_path)
  File "/viscam/u/small02/tacto/tacto/renderer.py", line 77, in __init__
    self._init_pyrender()
  File "/viscam/u/small02/tacto/tacto/renderer.py", line 115, in _init_pyrender
    self.r = pyrender.OffscreenRenderer(self.width, self.height)
  File "/sailhome/small02/miniconda2/envs/tacto/lib/python3.8/site-packages/pyrender/offscreen.py", line 31, in __init__
    self._create()
  File "/sailhome/small02/miniconda2/envs/tacto/lib/python3.8/site-packages/pyrender/offscreen.py", line 149, in _create
    self._platform.init_context()
  File "/sailhome/small02/miniconda2/envs/tacto/lib/python3.8/site-packages/pyrender/platforms/egl.py", line 177, in init_context
    assert eglInitialize(self._egl_display, major, minor)
  File "/sailhome/small02/miniconda2/envs/tacto/lib/python3.8/site-packages/OpenGL/platform/baseplatform.py", line 402, in __call__
    return self( *args, **named )
  File "/sailhome/small02/miniconda2/envs/tacto/lib/python3.8/site-packages/OpenGL/error.py", line 228, in glCheckError
    raise GLError(
OpenGL.error.GLError: GLError(
	err = 12289,
	baseOperation = eglInitialize,
	cArguments = (
		<OpenGL._opaque.EGLDisplay_pointer object at 0x7f00379bbdc0>,
		c_long(0),
		c_long(0),
	),
	result = 0
)

Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.

Hi @shivanimall ,
Could you provide information about your OS, NVIDIA driver, cuda version? Just a quick check, in order to use EGL mode, it needs GPU acceleration. If no GPU available, it needs to be set for "OSMesa" backend for headless rendering.

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.66       Driver Version: 450.66       CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  TITAN RTX           On   | 00000000:88:00.0 Off |                  N/A |
| 41%   31C    P8    34W / 250W |      1MiB / 24220MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.1 LTS
Release:	20.04
Codename:	focal

Hi @shivanimall ,
Got it, will this be helpful?
https://github.com/mmatl/pyrender/issues/7
and one solution pointed to this link:
https://github.com/mcfletch/pyopengl/issues/27

Hi @wx405557858
thanks for pointing those I followed the solution in link but now getting the following error:
Python 3.8.8 (default, Apr 13 2021, 19:58:26)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tacto
pybullet build time: Jun  2 2020 06:49:02
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/viscam/u/small02/tacto/tacto/__init__.py", line 6, in <module>
    from .sensor import (  # noqa: F401
  File "/viscam/u/small02/tacto/tacto/sensor.py", line 18, in <module>
    from .renderer import Renderer
  File "/viscam/u/small02/tacto/tacto/renderer.py", line 28, in <module>
    import pyrender
  File "/sailhome/small02/miniconda2/envs/tacto/lib/python3.8/site-packages/pyrender/__init__.py", line 3, in <module>
    from .light import Light, PointLight, DirectionalLight, SpotLight
  File "/sailhome/small02/miniconda2/envs/tacto/lib/python3.8/site-packages/pyrender/light.py", line 10, in <module>
    from OpenGL.GL import *
  File "/sailhome/small02/miniconda2/envs/tacto/lib/python3.8/site-packages/OpenGL/GL/__init__.py", line 4, in <module>
    from OpenGL.GL.VERSION.GL_1_1 import *
  File "/sailhome/small02/miniconda2/envs/tacto/lib/python3.8/site-packages/OpenGL/GL/VERSION/GL_1_1.py", line 14, in <module>
    from OpenGL.raw.GL.VERSION.GL_1_1 import *
  File "/sailhome/small02/miniconda2/envs/tacto/lib/python3.8/site-packages/OpenGL/raw/GL/VERSION/GL_1_1.py", line 7, in <module>
    from OpenGL.raw.GL import _errors
  File "/sailhome/small02/miniconda2/envs/tacto/lib/python3.8/site-packages/OpenGL/raw/GL/_errors.py", line 4, in <module>
    _error_checker = _ErrorChecker( _p, _p.GL.glGetError )
AttributeError: 'NoneType' object has no attribute 'glGetError'

Hi @shivanimall ,
Any chance these might be helpful?
Someone says changing the pyopengl version, or apt-get install python-opengl
https://github.com/MPI-IS/mesh/issues/23
https://githubmemory.com/repo/TimoBolkart/TF_FLAME/issues/10

Hello @wx405557858,
I could not exactly try the above solution since I do not have access to sudo on the server.
But I tried installing directly from their source tar package and their github repo. neither of those worked. I continue to get the same error.
In parallel, I asked an admin to do apt-get install of this package. But in case, none of these work, what are the alternatives?
I do have to run tacto on this server for my experiments.
Thank you so much for your continued support with these.

Hi @shivanimall ,
I see, the alternatives would be using osmesa, it might not as fast as egl, but should also work headless. Our circleci test is using osmesa headless:
https://github.com/facebookresearch/tacto/blob/master/.circleci/config.yml
# packages for headless rendering
apt-get install -y libgl1-mesa-glx libosmesa6 freeglut3 freeglut3-dev

Here's the instructions from pyrender:
https://pyrender.readthedocs.io/en/latest/install/index.html
Here's an example:
https://github.com/facebookresearch/tacto/blob/master/tests/test_render_from_depth_osmesa.py

thank you  @wx405557858
I also wanted to note below:
that my collaborator tried out an option using xvbf and it magically finally works on a different GPU partition which we can request. I can ask him to post his solution below in case it may help the community.
so we finally have this working, thank you again for your support with this.

Hi @shivanimall ,
That's awesome!!! Really appreciate it if your teammate could post his solution! Thank you!

posting solution below:
0. used napoli gpu
created conda environment and installed all the required packages, then:
1. pip install pyrender
2. pip install pyopengl
3. use egl mode
5. Xvfb :99 -screen 0 640x480x24 &
6. export DISPLAY=:99

Thank you! Appreciate it!

export DISPLAY=:99

@shivanimall  dear shivanimall excuse me which version of  nvidia driver you used


Put the AppContainer id between quotation marks

Without quotations I got this error:
PS C:\WINDOWS\system32> CheckNetIsolation.exe LoopbackExempt -a -n=microsoft.desktopappinstaller_8wekyb3d8bbwe
Error: Invalid Parameters

Usage:
   CheckNetIsolation LoopbackExempt [operation] [-n=] [-p=]
      List of operations:
          -a  -  Add the AppContainer or Package Family to the loopback
                 exempted list.
          -d  -  Delete an AppContainer or Package Family from the
                 loopback exempted list.
          -c  -  Clear the list of loopback exempted AppContainers and
                 Package Families.
          -s  -  Show a list of loopback exempted AppContainers and
                 Package Families.

      List of arguments:
          -n= - AppContainer Name or Package Family Name.
          -p= - AppContainer or Package Family Security Identifier (SID).
          -?  - Displays this help message for the LoopbackExempt module.

The error went away when I added double quotations to the id like so:
PS C:\WINDOWS\system32> CheckNetIsolation.exe LoopbackExempt -a -n="microsoft.desktopappinstaller_8wekyb3d8bbwe"
OK.

@mijacobs The PR passed the acceptance checklist. Please evaluate further and approve/complete the PR if appropriate. Thanks!
Mike if this isn't assigned properly please advise. Thanks 👍


Connection to server refused

I'm running Ubuntu on a Raspberry Pi 3 B+ as per this tutorial: https://ubuntu.com/tutorials/how-to-kubernetes-cluster-on-raspberry-pi#1-overview
This is what's happening when I run sudo microk8s.enable dns:
Enabling DNS
Applying manifest
The connection to the server <IP_ADDRESS>:16443 was refused - did you specify the right host or port?
Failed to enable dns

The api server does look like it's running, it says active (running).
A solution to the same message is provided in this issue: #61
It says to remove the current microk8s version and install it from the edge channel with sudo snap install microk8s --edge --classic.
I'm getting this error having installed it with that command still. Any help is appreciated?
microk8s inspect results:
inspection-report-20201114_000239.tar.gz

@JacobBN you may want to get the cluster ready first before enabling any addons.
Try microk8s kubectl get no see what gives.  Based on the logs you provided, the api server seems to be still starting.
Another thing, as far as i can tell, 1GB RAM is pretty small though.

The tutorial implies that a raspberry 3 is sufficient, so I figured it is even though there's only 1GB of ram.
I triggered the microk8s kubectl get no command, it's taking ages to execute though I'll put what it says here when it does.

IIRC the recommendation is around 4G RAM.


Issue in installing pcfdev1.8 for windows

Hi,
I am installing the pcfdev-v0.18.0 for windows 7. However , on executing the command ->
./pcfdev-v0.18.0+PCF1.7.0-windows.exe
I got the following error
Installing plugin pcfdev-v0.18.0+PCF1.7.0-windows.exe...
FAILED
exit status 2
I have cf install & running. I also tried running with the command  cf install-plugin <.exe file>, but the result is same.
Could , some one please guide where I am making wrong?
Thanks.

same failure  as mine.
commands used as follows
PS C:\CloudFoundry> $PSVersionTable
Name                           Value

PSVersion                      4.0
WSManStackVersion              3.0
SerializationVersion           <IP_ADDRESS>
CLRVersion                     4.0.30319.18444
BuildVersion                   6.3.9600.16406
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion      2.2
PS C:\CloudFoundry> vagrant --version
Vagrant 1.8.5
PS C:\CloudFoundry> vboxmanage --version
5.1.2r108956
PS C:\CloudFoundry> cf --version
cf version 6.20.0+25b1961-2016-06-29
PS C:\CloudFoundry> .\pcfdev-v0.18.0+PCF1.7.0-windows.exe
Installing plugin pcfdev-v0.18.0+PCF1.7.0-windows.exe...
FAILED
exit status 2
PS C:\CloudFoundry>

Could each of you provide the output of cf install-plugin ./pcfdev-v0.18.0+PCF1.7.0-windows.exe?
Also, can you confirm that you can install other cf CLI plugins?

Hello sclevine ,
Please find the o/p : ->
$ cf install-plugin pcfdev-v0.18.0+PCF1.7.0-windows.exe
Attention: Plugins are binaries written by potentially untrusted authors. Install and use plugins at you           r own risk.
Do you want to install the plugin pcfdev-v0.18.0+PCF1.7.0-windows.exe? (y or n)> y
Installing plugin pcfdev-v0.18.0+PCF1.7.0-windows.exe...
FAILED
exit status 2
Also, cf CLI plugins are working perfectly, though I haven't installed any plugin.
$ cf plugins
Listing Installed Plugins...
OK
Plugin Name   Version   Command Name   Command Help
Is their any bug on the 0.18 release ..
Regards,
Suman

It seems like there was a regression in the cf CLI related to plugins that they fixed in 6.20.0. As @mssh2001 is running 6.20.0, I wonder if this fix actually ended up breaking compatibility with our plugin. Could each of you install cf CLI 6.19.0 and 6.21.0 and see if it works with either of them?

I will install CLI 6.19.0 /6.21.0 & will let you know the result.

Hi,
I tried installing with CF CLI version 6.16.1. But getting the same error:
cf -v
cf version 6.16.1+924508c-2016-02-26
C:\pcfdev-v0.18.0+PCF1.7.0-windows.exe
Installing plugin C:\Users\ECTYSAN\Documents\pcfdev\pcfdev-v0.18.0+PCF1.7.0-wind
ows.exe...
FAILED
exit status 2
I think the issue might not be with the CLI version.

let me update my installations with cf version going through from v6.17 to v6.21 . it means it does not work with the same failed information as follows
PS C:\pcfdev> cf version
cf version 6.21.0+dff2cf8-2016-07-27
PS C:\pcfdev> .\pcfdev-v0.18.0+PCF1.7.0-windows.exe
Installing plugin pcfdev-v0.18.0+PCF1.7.0-windows.exe...
 Install and use plugins at your own risk.
Do you want to install the plugin .\pcfdev-v0.18.0+PCF1.7.0-windows.exe? (y or n)> y
Installing plugin pcfdev-v0.18.0+PCF1.7.0-windows.exe...
 Install and use plugins at your own risk.
Do you want to install the plugin .\pcfdev-v0.18.0+PCF1.7.0-windows.exe? (y or n)> y
Installing plugin pcfdev-v0.18.0+PCF1.7.0-windows.exe...
FAILED
exit status 2
PS C:\pcfdev> .\pcfdev-v0.18.0+PCF1.7.0-windows.exe
Installing plugin pcfdev-v0.18.0+PCF1.7.0-windows.exe...
 Install and use plugins at your own risk.
Do you want to install the plugin .\pcfdev-v0.18.0+PCF1.7.0-windows.exe? (y or n)> y
Installing plugin ./pcfdev-v0.18.0+PCF1.7.0-windows.exe...
 Install and use plugins at your own risk.
Do you want to install the plugin .\pcfdev-v0.18.0+PCF1.7.0-windows.exe? (y or n)> y
Installing plugin ./pcfdev-v0.18.0+PCF1.7.0-windows.exe...
FAILED
exit status 2
PS C:\pcfdev>

and we did not find what the error code "exit status 2 " means in google :)

Any update on this issue ? It seems it is persistent across every other CLI versions.
I also tried with pcfdev-v0.17.0 release, but getting the same error.

I am not able to replicate this issue in any version of Windows. Can you see if you experience this issue while installing other cf CLI plugins? (Install the plugins from your disk, not from the plugin repository.)

Which cf version are you using here??
Get Outlook for Androidhttps://aka.ms/ghei36
On Mon, Aug 1, 2016 at 9:54 PM +0530, "Stephen Levine" <notifications<EMAIL_ADDRESS>wrote:
Could each of you provide the output of cf install-plugin ./pcfdev-v0.18.0+PCF1.7.0-windows.exe?
Also, can you confirm that you can install other cf CLI plugins?

You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/pivotal-cf/pcfdev/issues/115#issuecomment-236631189, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ATy7fAwiWi8QlhVroh01n4U1biWRwvMHks5qbh2mgaJpZM4JZElz.

I am trying multiple times with the pcf version on Windows, but getting same error with Exit status 2.
Even I tried with latest pcf version, but no result :(
C:\workspace>".\pcfdev-v0.19.0+PCF1.7.12-windows.exe"
Installing plugin pcfdev-v0.19.0+PCF1.7.12-windows.exe...
 Install and use plugins at your own risk.
Do you want to install the plugin pcfdev-v0.19.0+PCF1.7.12-windows.exe? (y or n)> y
Installing plugin pcfdev-v0.19.0+PCF1.7.12-windows.exe...
FAILED
exit status 2
I am using latest CF version
C:\Users\ECTYSAN>cf -v
cf version 6.21.0+dff2cf8-2016-07-27

@suchakra012 We were able to reproduce when we tried to install the plugin as a non-admin user and fix it by installing as an admin user. Is your user an administrator?
We've added a story to allow the plugin to be installed by non-admin users.

@mdelillo .. Tried with administrator in command prompt & run the .exe file . But it is throwing the same error.

Ok, we've added a story to the top of our backlog to investigate this some more. Hopefully fixing the issue we discovered will also fix the issue you are experiencing.

@suchakra012 We've investigated the issue and discovered that the command:
wmic computersystem get numberofprocessors
will deny access without proper permissions. If you run the command and it outputs access denied, then you can attempt to get proper permissions on your account. Otherwise it will be fixed in the next release.

Note that the plugin runs that command to get the number of host CPU cores. Apparently access to that information can be denied by restrictive user account settings on the host. If that command fails, the next release (0.20.0) will install successfully, but you will have to set the number of cores manually with -c if you want the PCF Dev VM to take advantage of more than a single processor core.

Fixed in 0.20.0. Please re-open if you continue to experience this issue.


float32 input not working with celer_path

Does celer_path support float32 inputs? I'm using celer v0.6.1 and with the following code receive an error:

from celer import celer_path
import numpy as np
X = np.zeros([3,4],np.float32)
y = np.zeros(3, np.float32)
celer_path(X,y, 'lasso')

ValueError: Buffer dtype mismatch, expected 'float' but got 'double'

Thanks for the feedback. The culprit is a missing dtype specification in the cython code, @Badr-MOUFAD is sending a PR to fix this. When this is merged into main, you'll have to work with the development version (0.7dev) until 0.7 is released to PyPI.

@cruyffturn the 0.7dev version from the main branch should support float32 X now. Let us know if you encounter any issue


Merge branch 'scenemanagement' into 'link-hierarchy'

Finally, the GameObject Constructor has been implemented in this way ("GameObject(const char* name, GameObject* parent = nullptr)") to be able to encapsulate two ways of calling it.
In case of needing a root GameObject this is the correct way to call the constructor: GameObject("root-name").
Otherwise, it will be called like this: GameObject("node-name", parent).

Regarding your instructions:

I have created the two GameObject Constructors following the rule "C.48: Prefer in-class initializers to member initializers in constructors for constant initializers" and use "explicit" in the constructor with one parameter, as you have indicated.
In the SetParent() method, as you have pointed out, the root should not be moved around, so an if-statement that guarantees it is necessary.
It is desirable to minimize the use of "break" within loops, as indicated by the Statement Rules of the C++ Standard Guidelines (https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#es77-minimize-the-use-of-break-and-continue-in-loops). Currently, the body of the loop is trivial, however, in the future it may not be the case, and it is easy to overlook it. That is why I have decided not to use "break" in the RemoveChild() method.
IsADescendant() method was implemented because I considered that it was necessary for GameObjects to not to be a descendant of itself. I just checked Unity and I think it might be possible for a GameObject to be a descendant of itself, so I've changed the IsADescendant() method to IsAChild(), with the appropriate implementation.
I changed the forward declaration of GameObject to an "include" because in line number 14 ("root = new GameObject("Root");") incomplete type is not allowed.

Thank you for your feedback!

Thank you for your changes,

Now, the condition if(this->parent != nullptr) in the GameObject constructor is not necessary because, as stated, every GameObject that uses this constructor will always have parent, and the root will use a different constructor.
In the SetParent method I do not understand why you say that this method prevents the root by being moved around, if SetParent is called in the root and is dragged to another GameObject, neither RemoveChild nor AddChild will be called, that is true, but the parent of the root will change regardless and the structure will be broken. To avoid this, what I thought is making the root not draggable (I myself will do this later), so it will be static in the hierarchy and thus both if statements of the SetParent method will have no meaning.
About the break, thanks for pointing out the C++ standard guidelines about this, I did not check them before writting the last changes, but I strongly suggest about a break instead of a boolean is better, not only because it will be less verbose and will increase the readability of the function, but also because, as you said, now this loop is trivial, and as it is inside a function and a funcion ideally only does one task, I doubt that we will add later such funcionality to the loop to make it not trivial (and in that case, the break could always be changed to a variable, but for now I find it very verbose.
And for the last point, as you said the "incomplete type not allowed" triggers in the ModuleScene.cpp, not in ModuleScene.h, so a forward declaration should be the correct thing to do in the .h and then in the .cpp the #include "GameObject/GameObject.h" will avoid the error if I am not mistaken.

Another thing about the commits, when making a change to a script that improves performance, you should write perf: instead of fix: at the beginning of the commit (for example, in your second commit in this branch), and when renaming a function (like in your last commit), refactor: should be written instead of fix:. Only write fix: in a commit when fixing a bug existent for the user, not a fix for a build script, as stated in the programming rules (https://github.com/Pre-SuperAwesomeEngine/Engine/wiki/Programming-rules#github).

Regarding your last feedback,

I consider that checking that the parent pointer is not nullptr in the GameObject Constructor doesn't hurt hugely in terms of performance and prevents errors in case the Constructor is used to create a root pointer.
Thank you for your recommendation about the "break", but I think that it is not possible to know if the loop will be modified in the future, so I think that said break is not necessary. I believe that the method is readable as is.
I just modified the SetParent() method so that in no case can root be moved around.
Regarding your comment about the "include" in the .cpp, I refer you to the Source Files rules in the C++ Standard Guidelines (SF.5: A .cpp file must include the header file(s) that defines its interface, https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#sf5-a-cpp-file-must-include-the-header-files-that-defines-its-interface). I understand that sometimes it is strictly necessary because the header could contain a lot of "includes", but in this context I understand that it is not.

Thank you again!

Okay, I accept your changes.
For the last point, I think that we are in different pages. What I am saying is that forward declaring should be used in "ModuleScene.h", and instead of #include "GameObject/GameObject.h", use a forward declaration of the GameObject class, so, as Carlos told us when revising the first assignment, we avoid including header files in other header files.
Now, to solve up the error "incomplete type is not allowed" that the ModuleScene.cpp will trigger, the #include "GameObject/GameObject.h" will be added to the ModuleScene.cpp.
What you refered me only says that every .cpp file must include its .h interface file, and that is correct, but it is not what I am trying to say to you.
That is all, ty! :)

Wait, in the RemoveChild(), as indicated by the Statement Rules of the C++ Standard Guidelines (https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#es77-minimize-the-use-of-break-and-continue-in-loops) why not, instead of defining a boolean, use a return when the desired child is met? The Standard Guidelines state that it is correct to exit the loop inside a function using a return statement (in this case just a return because it is a void function).

I personally don't like using return except at the end of a method, because it breaks the sequentiality of the method, but I understand that it is possible to include it. I have just updated the code with the respective changes.

@diegusmejia117 Thank you very much Diego. I really appreciate your comment.


Datetime format fixes (encoding)

Fixes: https://github.com/Azure/autorest.csharp/issues/302
Fixes: https://github.com/Azure/autorest.csharp/issues/303
Fixes: https://github.com/Azure/autorest.csharp/issues/304
This fixes the encoding for the datetime types. It does not do decoding (will do in separate PR). Unblocked a few more tests in body-complex.

@pakrym I think I've addressed all the comments. Also, there are 3 tests failing... which is odd because those tests are ignored. Any ideas?
Test Run Failed.
  ! UrlStringNullAsync [< 1ms]
  ! UrlStringUnicodeAsync [< 1ms]
  ! UrlUrlDateNullAsync [< 1ms]

https://github.com/Azure/autorest.csharp/blob/1e868271db1c44a04657a4bfc481a10fdf373f60/test/AutoRest.TestServer.Tests/url.cs#L30-L32
https://github.com/Azure/autorest.csharp/blob/1e868271db1c44a04657a4bfc481a10fdf373f60/test/AutoRest.TestServer.Tests/url.cs#L34-L36
https://github.com/Azure/autorest.csharp/blob/1e868271db1c44a04657a4bfc481a10fdf373f60/test/AutoRest.TestServer.Tests/url.cs#L56-L58

@pakrym I think I've addressed all the comments. Also, there are 3 tests failing... which is odd because those tests are ignored. Any ideas?

Those are not the failed tests. Scroll up and you'll see the one that actually fails.


[SU-36] Allow for data tables to be renamed

New menu option "Rename table":

New modal:

https://broadworkbench.atlassian.net/browse/SU-36
<!--
Hello, friend!
Remember to mention what sort of testing/verification you performed in the course of building this PR, i.e. checking functionality in the browser locally.
Also, so if a screen recording [1] and/or screenshots would be a helpful way to communicate context, please consider including some in your PR description.
Thanks!

[1] https://support.apple.com/guide/quicktime-player/record-your-screen-qtp97b08e666/mac
--!>

fyi I am trying to track down the cause of a react console warning that I must have missed when testing this out (or I introduced it in a staged commit that I haven't pushed yet- tbd)

Does the table rename also update bindings in method configs? If not, I think it's worth putting a note in the modal mentioning that existing method configs (and other references) may need to be updated.

You are correct - method config bindings are not updated. That's a good catch!

heads up that https://github.com/broadinstitute/rawls/pull/1747 may move this API, making this PR invalid - let's coordinate!