Providing content with a pin request

We were evaluating protocol/web3-dev-team#58 in the of protocol/web3-dev-team#62 and the subject of "where is pinning service going to get content from" came up. Assumption is that pinning service will fetch content from ipfs network raises some concerns:

What if node that just added content is behind the NAT that pinning service can't punch through ?
What if the service is used from the web browser, in which case it is highly unlikely pinning service will be able to deal it ?
If all you want is to add some content to IPFS and get it pinned, spinning up a full IPFS node and waiting until content is fetched from it is an overkill.

I remember @lidel  was telling me about de facto hack of encoding content in an identity hashed CID, which might overcome some of the above listed concerns but raises whole new ones:

Given that it is not specified how reasonable it is to expect that it would be even supported by a pinning service ?
Does that supposed to work with multi-blocks scenarios ?

I thought that was a case, but more I think about it less sense it makes to me.

Do we have a CID size limit / request payload size limit to consider ?

Either way, uploading content as identity hashed CID encoded in base64 string in JSON feels like a very impractical solution to meet specific requirements. It seems like we need to consider extending this specification to support  this use case or it will not be practical for cases where just putting content on IPFS is desired.
It is also worth pointing out here that e.g. pinata  has own API for such a use case https://pinata.cloud/documentation#PinFileToIPFS
/cc @alanshaw @mikeal  @jnthnvctr

We should just PUT a CAR file with a single root (standard Filecoin CAR file). It’s pretty clean and we already have code to pin a CAR file in Go and the JS client libraries were just updated to be smaller and faster. We have nice library infrastructure to leverage here and we end up with some really thin client libraries you can build without IPFS in the client at all.

This is a duplicate of #18 and #22 which are already closed and resolved.
Problems 1 and 2 are solved if you assume the remote pinning service is dialable which IMO is both fair and is a prerequisite for this solution to work.
Problem 3 I think is a non-issue. Given that you have a blockstore (FlatFS, badger, S3, a CAR file, etc.) spinning up a libp2p node that supports Bitswap and only makes a single connection to the pinning service node is not a huge ask and helps us plan for the future.

spinning up a libp2p node that supports Bitswap and only makes a single connection to the pinning service node is not a huge ask and helps us plan for the future.

To a Web developer working in the browser, this is a huge ask.

To a Web developer working in the browser, this is a huge ask.

I mean we could just provide a library that does this, if asking developers to include a library is a huge ask then I don't see how they get any real benefit out of IPFS since they can't get the IPLD data to send to the pinning service without using some library for working with IPLD data.

Applications are a little more complicated than that. The client/user that needs to upload the content has different needs than the consumers of that data who need it available in a decentralized network.
In some NFT use cases an artist needs to put their content into a website and then never touch the site again. There are other users who might bid, buy, trade and do other authentication against the NFT.
IPFS is still very much a critical part of this application, but the thing standing in the way of getting more content into IPFS is that loading content you’re just trying to hand to a remote provider to run IPFS for you requires such a substantial client.

the thing standing in the way of getting more content into IPFS is that loading content you’re just trying to hand to a remote provider to run IPFS for you requires such a substantial client.

To be convinced of any value in this argument I'd need to see some evidence that the "substantial client" of a minimal libp2p client is much more burdensome than the IPLD (and likely UnixFS) libraries needed to process the data to the point that it would have a noticeable impact on a user's choices.
Additionally, while there are some nice aspects in terms of ease of implementation using HTTP to send the data to be pinned we have issues like #9 and #7 which become impossible when you start adding in HTTP specific features (e.g. PUT for a CAR file) into this spec. You also lose out on any deduplication benefits of a protocol like Bitswap or GraphSync.
Overall, IMO this proposal is pushing us in the wrong direction. If there is some major hurdle (e.g. with using js-libp2p in the browser) with the existing API's support for this use case, then I could potentially get behind this but otherwise I don't think it's worthwhile.
Curious if @lidel has a different perspective here.

Bit late to this party, but here are my condensed thoughts:

Like @aschmahmann noted, data transfer from client behind NAT and other limiting network topologies is solved by provider hints in origins and delegates (both sides attempting to connect to each other using those addrs in best-effort fashion).

This is a simple but really powerful primitive: removes the need for any DHT lookup from the picture, and works out of the box when pin remote commands are used in IPFS node because it fills origins and pre-connects to delegates out-of-the-box.
Moreover, if pinning service returns /wss/ multiaddr in delegates then js-ipfs running on a web page will be able to connect to the service and start bitswap immediately. This means content routing is no longer an issue when pinning happens in the browser  (assuming https://github.com/protocol/web3-dev-team/pull/58 happens).

Getting data into IPFS  is out of scope of this API, so I am closing this issue.

This API operates on CIDs + optional provider hints and is not concerned by HOW data is imported to IPFS.

I believe that "import API" should integral part of HTTP Gateway.
If you feel strongly about this, please propose specific mechanics in https://github.com/protocol/web3-dev-team/pull/1

In practice, I see two solutions for importing data to IPFS:

Web app running full js-ipfs node and import happening via ipfs.add  + pin.remote.add for true persistence and content routing  (needs https://github.com/protocol/web3-dev-team/pull/58)
Web app delegating import to some backend service running go-ipfs, and getting CID in return OR running js-ipfs-http-client in web app itself and doing pin.add with go-ipfs  that way

"PUT a CAR file" or "PUT file to HTTP Gateway"  would be the implementation detail that falls under one of above.

IMO only "HTTP PUT file to HTTP Gateway and get a CID" improves anything, because it does not require ANY library.
"Put a CAR" means I still need to run IPFS-aware chunker and CAR generator, which most likely won't be smaller than running full js-ipfs on a page.

I have spend little more time thinking about this and I came to following conclusions that I would like get feedback on:
There are two very different user groups that are potential pinning service API users:

Users who run IPFS nodes and want things to be pinned remotely.
Users who just want to put content on IPFS.

I think current API does poor job at meeting either of those user needs. For group operating IPFS node libp2p based API would be a more effective and efficient avoiding lot of HTTP roundtrips etc...
For a group that just wants to add file to IPFS network having to run IPFS node just to add a file is a huge burden and sometimes constraints of the runtime also get in the way (e.g. serverless is a good example).
I think there is an opportunity to enable that second group and significantly reduce upfront costs (education, etc...) to get them into IPFS. I think doing it as part of pinning services is good idea because:

It makes services swapable, removing platform lock-in.
It make IPFS dead-simple choice for storing data.

I’d like to pause this discussion for now.
It would seem that the entire purpose of a remote pinning API would be to hire a third party to run IPFS for you, and that effectively requiring a client to run IPFS in order to get content into that remote would be a barrier to maximizing the usefulness of the remote pinning service.
That said, you’re right to question how useful this would be and compare it to other work streams. I don’t think it would be a productive use of your time to send you all the NFT user research we’ve done and invite you to several more meetings where we’ve been discussing such things.
If we’re confident enough of the user need we can just build something to satisfy it ourselves. Once it’s deployed and used by these target users we can iterate on it and take what we’ve learned back to you and recommend changes to the pinning API with much more confidence in their usefulness. Then we can update anything we have already deployed to match what ends up being formally specified.

I think there’s a simpler path that we’re missing here. If we conceptualize this feature in simpler terms:

Write the blocks in this CAR file to your Blockstore.
Pin the root.
Return when the pin is available

we can defer most of this complexity. Maybe we do need a way to pin partial graphs and a bunch of other features, but let’s not complicate this feature with a lot of new complex behavior. Let’s just avoid changing the behavior of pinning at all.
If you send a partial graph then the request won’t return until we’ve pulled the rest of that graph out of the network.
If the codecs aren’t available the pin call with fail, cause that’s how the pinner already works.
Pinning partial graphs would be cool, but let’s have that conversation in a new feature request because that may involve a bigger rethinking of the pinner, or maybe not, but we can make progress here without taking that on.

Write the blocks in this CAR file to your Blockstore.
Pin the root.
Return when the pin is available

This is exactly what I am asking for, however there are few nuances that I do think need to be defined.

we can defer most of this complexity. Maybe we do need a way to pin partial graphs and a bunch of other features, but let’s not complicate this feature with a lot of new complex behavior. Let’s just avoid changing the behavior of pinning at all.

So it’s not about complex behavior, it’s about what does pinning service do if some blocks from the root are missing ?
it can either

not care (which is your partial graph pinning)
It can error (only full graphs allowed)
It can try look fro block on the network.

I think we should define expected behavior regardless of choice. I also think 3rd is the worst option. And I can see reasonable arguments in favor of 1st and 2nd. That is why I suggest to let user specify desired behavior between 1 and 2. If that is too much , I’d say 1st is less limiting & it puts bit more burden on user to assemble car file properly

If you send a partial graph then the request won’t return until we’ve pulled the rest of that graph out of the network.

I think this is really bad option. What if it can’t find blocks. I really think if user is omitting blocks it on user & there might be good reasons to do so, maybe they’re just coming with next request or were already pinned by last request.
This is what introduces complexity here. It also makes untraversable  graphs unpinnable. On the other hand just pinning provided blocks simplifies this and makes service codec agnostic, you hive it blocks it pins them that’s all.

Pinning partial graphs would be cool, but let’s have that conversation in a new feature request because that may involve a bigger rethinking of the pinner, or maybe not, but we can make progress here without taking that on.

i think this is wrong framing, it is not about partial graph support but rathe making service graph agnostic, you give blocks it pins, doesn’t need to know or care about graphs, codecs or any of that.

Pin objects become somewhat meaningless to the end user

Instead of storing a DAG with pin name myGraph instead we store many block bundles with names like myGraph-1-of-10.

I do share general concern here that multiple pins that collectively form a single graph is a real concern as relationships between them are not encoded. Originally my thinking here was that subgraps could be temporal until the rest of the graph is imported at which point those could be dropped, but now I am realizing that can not be accomplished if service does not care / traverses graphs.

I have thought bit more about these and here few not fully fleshed out notes:

Most of the problems in "Storing bundles of blocks" has to do with the fact that it introduces "myGraph-X-of-Y" style pins. Maybe that could be addressed by merging imports that share the root. As in if I import n car files and they all declare root bafy...graph all the imported blocks could be made part of it. This would:

💚 Allow chunked graph uploads and overcome mentioned limitations in constrained environments like cloudfare workers.
💚 Would avoid myGraph-X-of-Y bundle names & required management.
💚 Would provide atomic transactions.
💚 Would not require service to know codecs or do any graph traversal.
💔 Would not provide a good sync primitive. As in pin this new version of mfs with some files edited.

There are valid use cases for importing car files that omit blocks because they are known to be available, which no 1 will not cover. But I think that serves a sync use case and maybe a separate future endpoint could provide an adequate API for it. In the meantime combination of existing APIs and import as described in no 1 could probably fill that gap.
I think @aschmahmann is proposing something really interesting here

A true "here it is" equivalent of a provider hint would be allowing the user to send the pinning service a CAR file filled with blocks that they can choose to use or discard that would occur after a remote pin add operation had already been started. In this "provider hint" model it literally would not matter what data was in the CAR files as long as they were in a readable format (one/many roots, in/complete DAGs, un/supported codecs are all irrelevant).
It addresses:

💚 Allow chunked graph uploads and overcome mentioned limitations in constrained environments like cloudfare workers.
💚 Avoid myGraph-X-of-Y stuff.
💔 No transactional guarantees, things may fail and only thing user can do is keep retrying.
❤🩹 Would require service to support specific codecs.
💜 Might provide a reasonable sync solution.

I wonder if some hybrid of 1 and 3 could provide a reasonable compromise with some transactional guarantees. E.g. what if:

car imports would associate all blocks to the roots. So multiple imports would just pile up blocks for specific CID.
We had a version of pin this CID or fail API. It would assume that clients have already imported or otherwise pinned all the necessary blocks ahead of time. In this endpoint service would not queue or search network, it either has all blocks and can do the pin or if it can't find some block it errors pointing out missing block. Which would allow client to import missing blocks and try again.

This would

💚 Allow chunked graph uploads and overcome mentioned limitations in constrained environments like cloudfare workers.
💚 Avoid myGraph-X-of-Y stuff.
💚 Provide transactional guarantee.
💛 Import would not require codec support. Pining would require, but this limitation could be overcome by pining additional index blocks with links to relevant nodes.
💜 Might provide a reasonable sync solution.

it (pinner) can either

It can only do the current behavior if we refrain from changing the pinner. There’s lots of good ideas in here but they should be their own feature requests against the pinner. As a first step we should just add the blocks and then call the existing pinner, with all of its current behavior and limitations.

I think what most people would tell us they want is "here let me post you some files, you give me a CID or fail, take my money". Pinata and Infura offer already, but through custom apis.... we could pave that cowpath, but we've become focused on car files.
To verify what feels implicit in this thread, I think we are trying to nudge people to use car files here:

as having users create their own CIDs as good practice for trustless block shuffling.
as a workaround for fitting in with the original vision of the pinning service.

I'm a just about sold on using car files here, but we should be clear that we'd be offering users what we think they really need, not what they would tell us they want. We should be very clear about why we would do that and how we intend to message it. Can we state why POSTing files is out of scope?

We're writing the thing to car up your files. We'll get that working nicely and then report back on if it's something we would want to put as a minimum requirement to playing the pinning service game.

From reading through this thread, it seems like the original desire here was to allow users an easier way to directly upload their NFT data to a pinning service in a way that doesn't rely on async pinning through the network.
I'm seeing a lot of added functionality/complexity being discussed here, and while I think there's a place for a lot of this, I worry that it's overcomplicating things in the near term.
I would really like to see a simple "golden path" where "user has a file, uploads it to pinning service, gets CID". My guess is that most users/devs aren't going to know what a .car file is, or care about anything such as partial pinning. And I don't think they should have to know.
I don't necessarily care one way or the other if things like CAR files are used behind the scenes to get the job done, but anything that's created is going to need to be massively automated to work "automagically" with easy-to-use libraries in order for this to be successful.

I think most people would tell us what they want is "here let me post you some files, you give me a CID or fail, take my money". Pinata and Infura offer that already, but through custom apis.... we could pave that cowpath, but we've become focused on car files.

This is definitely a sentiment I had when opening this issue. And I absolutely agree that if what you have is file or set of them nothing beats simple multipart/form-data POST. And that is pretty much what pinatas https://api.pinata.cloud/pinning/pinFileToIPFS provides.
I think reason why car files got pulled into discussion is because building nft.storage we found ourselves needing to pin not just files but also non file dags and car files seem to provide a reasonable and simple way to upload those.
That said maybe it should be a separate discussion / API extension because I do not see a a good reason for complicating simple case of uploading files with cars.

To verify what feels implicit in this thread, I think we are trying to nudge people to use car files here:
* as having users create their own CIDs is good practice for trustless block shuffling.

I think primary reason is it supports dags beyond unixfs
There is a bit of extra utility as it eliminates inconsistencies that could arise from different chunking or hashing preferences.

* as a workaround for fitting in with the original vision of the pinning service API.

I'm a just about sold on using car files here, but we should be clear that we'd be offering users what we think they really need, not what they would tell us they want. We should be very clear about why we would do that and how we intend to message it. Can we state why POSTing files is out of scope?

I think it would be best:

To address simple case by POSTing files.
Have separate thread / effort to address non file use cases with cars.

Reducing complexity
I share concerns around making DAG archive handling too complex.
In my mind import+pin should be very simple: in case of DAG archive expect single root, complete DAG and instant pinned status.
Everything else should  return error. If the dag is bigger than it makes sense for  a single upload, that should be  solved by either regular bitswap, or userland sharding (importing subgraphs and then pinning true root + unpinning subroots).
Ack  that even if we keep DAG import simple, at the end of the day, people will still ask why there is no file import, so let's revisit...
Why we had no FILE import in v1 if this spec

Can we state why POSTing files is out of scope?

iirc original reasons were to:

keep API surface small due to time and resourcing constraints
incentivize people to run IPFS nodes and dogfood bitswap for data transfer
avoid  ossification of the way DAGs are constructed
avoid feature creep (users asking for ability to control every aspect of ipfs add)

I believe those things may no longer hold as strong as they did last year, ecosystem looks a bit different (Filecoin shipped, Brave and Opera shipped ipfs://, NFTs etc).
Why we might revisit this and support FILE  imports

I would really like to see a simple "golden path" where "user has a file, uploads it to pinning service, gets CID". My guess is that most users/devs aren't going to know what a .car file is, or care about anything such as partial pinning. And I don't think they should have to know.

Ack.

Have separate thread / effort to address non file use cases with cars.

We may produce better API if we design it around more than one import type or use case.
I suggested use of  multipart/form-data in POST /import because it enables  sending data + optional metadata.
This way we could have POST /import  that supports two types:

FILE – similar to PinFileToIPFS, but with file and optional pin field that includes Pin object  minus cid field, because it will be filled up after file is imported.
DAG – similar to FILE but expects DAG archive in  dag field, and pinned  cid is taken the root in DAG archive

The nice thing here is that we solve for simple and advanced use cases,
and avoid feature creep by saying "if you want more advanced import, custom hash or chunker, create DAG archive yourself".
Think  about import+pin of JSON/CBOR
Even if we have FILE and DAG import+pin operation, working with json/cbor is still painful (requires creation of DAG archive).
We should design import API so we can extend it at some point and add a thin porcelain for pinning CBOR documents. It could be as simple as:

CBOR – expect  json  or cbor field and returns CID with dag-cbor codec

If people could send JSON to pinning service, get a CID, and (soon) load it via gateway, then we removed a lot of complexity that is blocking people from using advanced IPLD features in the long term (cc @warpfork).

FILE – similar to PinFileToIPFS, but with file and optional pin field that includes Pin object minus cid field, because it will be filled up after file is imported.

I like the idea of POST /import with Content-Type: multipart/form-data for uploading set of files. That said I am not sure I understand what you mean by:

optional pin field that includes Pin object minus cid field, because it will be filled up after file is imported.

Few thing that need to be clarified there would be:

Do all files end up in a same pin as unixfs directory and you get one CID, or do you get CID per file etc...

I personally like the idea of creating a node with pointers to all the files.

What are the hashing and chunking algorithms used ? (Ideal same payload would result in same CID(s) regardless of pinning service)

My preference here would be to make hashing and chunking parameters mandatory on API endpoint but optional in clients. That would guarantee that same client will produce same CIDs regardless of pinning service or fail all together.

DAG – similar to FILE but expects DAG archive in dag field (or we could have separate /dag), and pinned cid is taken the root in DAG archive

I would like this to be either separate endpint all together e.g. /dag/import or at least Content-Type: application/car. I do not like idea of wrapping car format with multipart/form-data. Instead I think we should evolve car (or possibly alternative) data format so it could contain optional metadata needed.
I also still would like following do be specified:

What happens to blocks in car file that are not referenced from the root(s) ?

Are they dropped ?
Does import fail ?

What happens with blocks that are encoded via codec not available to pinning service ?

Does this cause import error ?
Do they get pinned ?
Something else ?

In an effort of keeping things simple while making dag import codec agnostic I would like to propose following requirements:

Root node(s) should be either encoded via supported encoding (e.g. cbor, pb, identity). If root is encoded via unsupported format that causes import to fails.
If block in the car file isn't referenced from the root (or from it's traversable subgraph) import fails with error.

Alternatively we could specify that it drops such blocks and response points out which blocks were dropped.

Each root in the car file creates a separate pin

Alternatively we could mandate single root, but I'm not sure it is going to make things that much simpler.

Pinning service does not care if there are links to blocks outside of what's in the car. It just calls those out in the response. (I think this was called upon as a complicating factor, but I think it is quite the opposite as pinning service is not required to do anything. I think it also simplifies billing as pin size is basically a car size. If I'm overlooking complicating factors here please point those out).

I believe this would enable dag import API:

To support arbitrary codecs (It is just client that will need to provide an index with links to all such blocks in a root).
Clients will be able to chunk graphs as desired without having to enure that every chunk is a complete graph.

The nice thing here is that we solve for both simple and advanced use cases,
and we avoid feature creep by saying "if you want more advanced import, custom hash or chunker, create DAG archive yourself".

I love it! Yet I still want to make pinning service swapping 0-cost & and unless we do make chunking & hashing predictable it is not going to be the case. Still I think for end user simple case can remain simple as those options would be encoded in the client itself.

CBOR – expect json or cbor data and returns CID with dag-cbor codec

This is interesting, I imagine multipart/form-data could be used to do more or less what car does, but omitting CIDs and encoding as JSON. However anything with links would get immediately complicated. Either way could that be yet another endpoint evaluated separately. I don't think overloading same endpoint is making things simpler or easier to evolve the just hide true size of API surface.

ok, I'll throw my 2 cents on some discussion points:

Regarding atomicity

In practice, when adding a CAR you can pin before adding. This protects any GC from removing whatever you are going to add I guess  but it's just a trick. As of now cluster would fail this part because IPFS provides no way of warding off against automatic GC when you are doing something like adding blocks.
Anyways, it is obvious that the pinning service should not be GC-ing stuff that is supposed to be pinned. For me, when integrating with go-ipfs, that is more an operational practice than an implementation requirement, given the state-of-the-art GC that it brings and the limited control around as a "client".

What happens to blocks in car file that are not referenced from the root(s) ?

This should be unspecified. In practice, they get added to the blockstore and they do not get pinned. Pinning is recursive from a root. They get added because the pinning service has no interest in the complexity to do anything in a different way. We do not know in which order the blocks are (unspecified in the CAR spec I think). In theory we do not even need to parse them, let alone interpret their links, they can go straight into the blockstore.

What happens with blocks that are encoded via codec not available to pinning service ?

Unspecified. Pin error likely. Import error perhaps. An error in all cases.

I don't think the specification of this should be blocked on things affecting a 1% of people like:

Unknown codecs (so sorry but pinning service should not have to go through a hundred loops to support arbitrary closed formats)
Partial CARs with missing blocks. Weird CARs with extra blocks (use at own risk).

The API supports pinning things 1 by 1. Therefore the semantics of pinning something with an "ultimate hint" (CAR attached) should be limited to adding 1 root-CID. Adding multiple things at once can share semantics with pinning multiple things at once, if the API is ever extended in that direction. And this will likely require new specific endpoints.

To summarize. For now:

Decide on an endpoint name
Decide whether form/multipart or single POST body for a single CAR file with 1 dag with 1 root. Everything else unspecified.
Decide on response format

For later:

What are the right semantics for CARs with multiple roots, multipart uploads with multiple CARs, multipart uploads with multiple non-CARs etc.
If the pinning service is ever going to need a normal chunking-dagbuilding endpoint (ala Pinata). I would like that clients do this and just send CARs. But clients cannot chunk-dagbuild and convert to CAR in a single stream, since the CAR header is up-front, and to write that, the client needs to have finalized the dag-building process. New CAR format with a Footer would be better suited for "stream to car" operations.
How the pinning service can expose compatibility features, like the supported IPLD-formats that it can handle, max block size, default add-settings etc. (/about endpoint of sorts).
How go-ipfs can support transactional operations to better support pinning services (multi-block imports that cannot be GCed, batches of pins, performant GC that does not freeze the whole service, pinsets, partial pins, depth-limited pins).

A relevant project proposal for adding "Chunked CAR Uploads" to nft.storage is at https://github.com/protocol/web3-dev-team/pull/111
Ideally, we would come up with something that is generic enough to be included in this spec.

Any updates on this?

Afaik nobody is working on this at the moment,
but if someone proposes the API in a PR I'm happy to review.
MVP should support:

Single file upload  (curl -v  -F<EMAIL_ADDRESS>$URL)
CAR upload (for more advanced DAGs, directories, etc)


Public/private subnets not updated in cdk.context.json

Midway through development, I manually converted two public subnets into private subnets in my VPC by deselecting auto-assign IPV4 addresses, and assigning them to new route tables.
When I looked in cdk.context.json, the new route tables were reflected, but the subnets were still being listed under
    "subnetGroups": [
      {
        "name": "Public",
        "type": "Public",
        "subnets": [

I replaced the entire cdk.context.json file with {} and re-ran npm run start
Only then were the two newly private subnets properly placed under:
  "subnetGroups": [
     {
       "name": "Private",
       "type": "Private",
       "subnets": [
         ...
       ]
     }
   ]

Hey @shechter, I think this is the expected behaviour. cdk.context.json is like a cache so CDK doesn't need to look up the subnets on every build. And from reading the doc on this https://docs.aws.amazon.com/cdk/latest/guide/context.html, it seems the end-user is responsible for clearing the cache.
This behaviour isn't ideal, but I can't think of a good workaround to this on top of my head 🤔

It was just odd that it pulled the info about the route tables having changed but not that they were now not auto assigned IP addresses (ie public-> private)! No problem closing the ticket.

Hey @shechter going to close this issue for now.  Let us know if you'd like to discuss further


[vm] More logging

Logged the function for expect_only_successful_execution
Logged for unverified modules loaded on chain

Motivation

logging is good

Test Plan

cargo test
not sure how we normally test logging (if at all)

@metajack @sunshowers we are adding libra-logger to the move-vm. That adds a dependency.
I remember Rain kept libra-logger out of the move-vm in the past, but I don't remember the reason. I think it was for clean dependencies, and this should be ok, but it would be good if you could confirm

/land

Yeah it wasn't obvious whether libra-logger should have been a dependency of the move runtime or not. I think eventually when we split up the Move VM entirely, we'll want to probably have logging/metrics interfaces.

/land

:broken_heart: Test Failed - commit-workflow

@dariorussi I think it's fine we depend on libra-logger for now. One day if we do achieve a total Libra/Move separation, I'd assume us defining a logger trait for the VM which will get implemented for libra-logger or some adapters, but that a story for the far future...

transaction-builder depends on the stdlib crate, which depends on the VM crate
Having the logging in vm/src/errors.rs caused transaction-builder to not build on PowerPC32, which it needs to for various reasons
I moved the logging into vm/runtime which fixed it

/land


fix some of incidence

Sorry, I made a mess of this branch (it seems I can't modify it other than by fixing merge conflicts?). Do you mind rebasing on current master, leaving only your commit in the history?

think I did what you want, can you check

Yep, perfect!


Delegate Stripe.card validations to Service.card

Delegate Stripe.card validations to Service.card so user just need to call service.card methods instead of Stripe.card directly.
var attr = DS.attr;
export default DS.Model.extend({
  stripe: Ember.inject.service(),
  number: attr('string'),
  cardValidation: function () {
    var card = this.get('stripe.card');
    if (!card.validateCardNumber(this.get('number'))) {
      throw 'Invalid credit card number';
    }
  },
  type: function () {
    var card = this.get('stripe.card');
    return card.cardType(this.get('number'));
  }.property('number')
...
// other validation before token creation
});

Thanks @sescobb27, this is a great idea. Can you add some documentation to the readme please?

Also, would you mind aliasing bankAccount as-well? it would probably be really weird to only have validation for one and not the other.


Pull request Update DIBU Coin#10258

Hello, please accept my request with number #10258.
We are changing the decimals and logo.
Thanks!

This is done automatic every hour

Yes, but I think it won't be auto merged.


Add command line argument parser for torpedo

Use a command line arg parser that has flags to take in scheduler, volume driver, testname, version, help etc.

@varunturlapati Can you wrap this up? Reassigning from @jessicapwx as she appears occupied with aws work.

Done!


Identifiers validation failed for dataset Dolphins validated sightings reported by avvistAPP users

Identifier validation failed for the dataset Dolphins validated sightings reported by avvistAPP users:

Crawler attempt: 106
Publishing organization: National Institute of Oceanography and Applied Geophysics
Publishing country: ITALY
Installation: National Oceanographic Data Centre for Italy
Number of occurrences indexed for this dataset at the time of the issue: 40
Cause: GBIF ID problems exceed 50% threshold: 100% duplicates; 55 total records; 55 absent records
Pipelines execution steps: http://api.gbif.org/v1/pipelines/history/execution/3966373/step

New IDs sample:

Old IDs sample:

OGS:2021-02-18:45.6798136:13.6958367:137111
OGS:2021-04-05:45.7752053:13.608437:137111
OGS:2021-06-03:43.3531665:9.7188402:137107
OGS:2021-07-23:44.942152:13.708726:137111
OGS:2021-07-23:45.047739:13.629052:137111
OGS:2021-07-23:45.141484:13.586888:137111
OGS:2021-07-24:45.666094:13.367941:137111
OGS:2021-07-29:45.71055765:13.71145248:137111
OGS:2021-07-31:45.7843904:13.5526037:137111
OGS:2021-08-03:45.71423448:13.66973877:137111

Publisher email
Hello,
I am contacting you from the GBIF Secretariat about a dataset published by the Dolphins validated sightings reported by avvistAPP users : https://doi.org/10.13120/awym8v.
We noticed that the occurrenceIDs were changed. We have temporarily paused the ingestions of this dataset.
As you might already know, when an occurrence record has a new occurrenceID for a given dataset, our system considers it to be a new occurrence.
This means that it will be given a new gbifid and a new occurrence URL (like this one: https://www.gbif.org/occurrence/1252968762) and the old gbifid and URL will be deprecated.
In this case, this means that the occurrence URLs would be deprecated when ingesting the newest versions of these datasets.
We would like to check with you if those changes were intentional. Do you know if this is the case?
Please let us know, thanks! We are happy to resume the dataset ingestion.
Note that some users rely on those occurrence URLs and gbifids (like https://bionomia.net for example). In an attempt to improve
the stability of the occurrence URLs and gbifids, we have implemented a warning system to detect these type of changes in datasets (see this news item).
If the data publisher can provide us with a list of old and new occurrenceIDs per record, we can avoid the identifier and URL changes. Could that be an option?
Please let us know if you have any question. Thanks!
All the best,

You can skip/fix identifier validation using the registry UI.

Identifier validation still  failing for the dataset Dolphins validated sightings reported by avvistAPP users:

Crawler attempt: 107
Publishing organization: National Institute of Oceanography and Applied Geophysics
Publishing country: ITALY
Installation: National Oceanographic Data Centre for Italy
Number of occurrences indexed for this dataset at the time of the issue: 40
Cause: GBIF ID problems exceed 50% threshold: 100% duplicates; 55 total records; 55 absent records
Pipelines execution steps: http://api.gbif.org/v1/pipelines/history/execution/3966441/step

New IDs sample:

Old IDs sample:

OGS:2021-02-18:45.6798136:13.6958367:137111
OGS:2021-04-05:45.7752053:13.608437:137111
OGS:2021-06-03:43.3531665:9.7188402:137107
OGS:2021-07-23:44.942152:13.708726:137111
OGS:2021-07-23:45.047739:13.629052:137111
OGS:2021-07-23:45.141484:13.586888:137111
OGS:2021-07-24:45.666094:13.367941:137111
OGS:2021-07-29:45.71055765:13.71145248:137111
OGS:2021-07-31:45.7843904:13.5526037:137111
OGS:2021-08-03:45.71423448:13.66973877:137111

Publisher email
Hello,
I am contacting you from the GBIF Secretariat about a dataset published by the Dolphins validated sightings reported by avvistAPP users : https://doi.org/10.13120/awym8v.
We noticed that the occurrenceIDs were changed. We have temporarily paused the ingestions of this dataset.
As you might already know, when an occurrence record has a new occurrenceID for a given dataset, our system considers it to be a new occurrence.
This means that it will be given a new gbifid and a new occurrence URL (like this one: https://www.gbif.org/occurrence/1252968762) and the old gbifid and URL will be deprecated.
In this case, this means that the occurrence URLs would be deprecated when ingesting the newest versions of these datasets.
We would like to check with you if those changes were intentional. Do you know if this is the case?
Please let us know, thanks! We are happy to resume the dataset ingestion.
Note that some users rely on those occurrence URLs and gbifids (like https://bionomia.net for example). In an attempt to improve
the stability of the occurrence URLs and gbifids, we have implemented a warning system to detect these type of changes in datasets (see this news item).
If the data publisher can provide us with a list of old and new occurrenceIDs per record, we can avoid the identifier and URL changes. Could that be an option?
Please let us know if you have any question. Thanks!
All the best,

You can skip/fix identifier validation using the registry UI.


Ehcache + Terracotta server does not work with anything other than host="localhost"

I have researched enough about this issue but getting nowhere. Hoping you can help.
In the tc-config.xml, if I give anything other than host="localhost" for the server tag (like for e.g. host="my_public_ip_address_here" ), it fails with the following error:
ERROR - Unable to find local network interface for [my_public_ip_address_here]
How do I start a terracotta server so I can access from another remote machine?

are you using ehcache2 or ehcache3?   I ask because configuring the server for ehcache3 is markedly different from ehcache2 and typically doesn't use a tc-config.xml

No update with more info/clarification in months.


Hope

I like the idea, and the execution. This would make transferring data between threads so much easier. I hope this gets added into C++23 (C++20 is finalized).

Thanks for the appreciation!
There are various methods of dealing with data that moves through threads. My implementation is based on a mutex variable, which could be not suited for all cases when performance is really important. And there are also other aspects that would need improvements for the zero-overhead principle aimed in C++.
On the other hand, maybe this library could be indeed useful for many projects. And it would be very sane for it to be tested under various scenarios. If you consider it helpful, please use it and come back with feedback. There is room for improvement. And share it with other people.

I will close this issue. If you or someone you know will use this library and have feedback, I'm waiting for it.
Thanks again!

I will close this issue. If you or someone you know will use this library and have feedback, I'm waiting for it.
Thanks again!


Uploaded target images not found

Hi,
I'm trying to upload the identified targets to the interop server.
I can upload all of the targets and their details and i can also upload a thumbnail.
On the server I can see the targets and their details but when I try and open the thumbnail image I get a "Not Found Error"
See the attached pictures -

Any assistance would great!
Thanks, Ido

Have you tried uploading a target image using the official API?
(/api/targets/{id}/image)?
On Fri, Jun 3, 2016, 07:30 idogreenfeld<EMAIL_ADDRESS>wrote:

Hi,
I'm trying to upload the identified targets to the interop server.
I can upload all of the targets and their details and i can also upload a
thumbnail.
On the server I can see the targets and their details but when I try and
open the thumbnail image I get a "Not Found Error"
See the attached pictures -
[image: screenshot from 2016-06-03 17_27_59]
https://cloud.githubusercontent.com/assets/15867904/15781883/ca43d064-29b0-11e6-97de-64b6440a82ed.png
[image: screenshot from 2016-06-03 17_28_19]
https://cloud.githubusercontent.com/assets/15867904/15781884/ca653c72-29b0-11e6-91d2-b4745e72e2a4.png
Any assistance would great!
Thanks, Ido
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/auvsi-suas/interop/issues/129, or mute the thread
https://github.com/notifications/unsubscribe/ABO7gzeFCXttmNN_p8Ho8FPmW7Wr2Tmkks5qIDqcgaJpZM4ItlrF
.

yes.... that's what i did

The error isn't with the supported API, it's with the admin interface which
blocks such requests when not in Debug mode.
On Jun 3, 2016 2:36 PM, "idogreenfeld"<EMAIL_ADDRESS>wrote:

yes.... that's what i did
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/auvsi-suas/interop/issues/129#issuecomment-223658566,
or mute the thread
https://github.com/notifications/unsubscribe/ACOBmMLlQNJMuVQRTTnvZ6ol51I7eeMdks5qIHQRgaJpZM4ItlrF
.

To clarify, Django blocks the interface because it doesn't have ACL
checking. Our supported interface does. Either use the supported interface
or enable Debug mode. You can also review targets via the admin display
under Mission > Review Targets.
On Jun 3, 2016 2:50 PM, "Phillip Tischler"<EMAIL_ADDRESS>wrote:

The error isn't with the supported API, it's with the admin interface
which blocks such requests when not in Debug mode.
On Jun 3, 2016 2:36 PM, "idogreenfeld"<EMAIL_ADDRESS>wrote:

yes.... that's what i did
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/auvsi-suas/interop/issues/129#issuecomment-223658566,
or mute the thread
https://github.com/notifications/unsubscribe/ACOBmMLlQNJMuVQRTTnvZ6ol51I7eeMdks5qIHQRgaJpZM4ItlrF
.

For some reason I see a "Review Targets" option under mission... do I need to be connected to the server while doing it?

I'm not understanding the question.
On Jun 3, 2016 2:57 PM, "idogreenfeld"<EMAIL_ADDRESS>wrote:

For some reason I see a "Review Targets" option under mission... do I need
to be connected to the server while doing it?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/auvsi-suas/interop/issues/129#issuecomment-223664114,
or mute the thread
https://github.com/notifications/unsubscribe/ACOBmACgC9Q9GThGIV7gJumE2V0H26wmks5qIHkjgaJpZM4ItlrF
.

Sorry, I ment I don't see the "Review Targets" option under Mission... only Team Evaluation...
Do I need to be connected to the server or can I do it when I'm offline after the targets have been uploaded?

You need to update to the latest code.
On Jun 3, 2016 3:05 PM, "idogreenfeld"<EMAIL_ADDRESS>wrote:

Sorry, I ment I don't see the "Review Targets" option under Mission...
only Team Evaluation...
Do I need to be connected to the server or can I do it when I'm offline
after the targets have been uploaded?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/auvsi-suas/interop/issues/129#issuecomment-223666032,
or mute the thread
https://github.com/notifications/unsubscribe/ACOBmDkZhAz7L099ybWG78EG04mTSbrnks5qIHrygaJpZM4ItlrF
.

OK, I'll try it... thanks!


Modal translation when keyboard is opening

Related to #198
Move the modal when the keyboard is opening. Translation supported:

MoveUp
AboveKeyboard

Very cool and useful feature, well done 👍

The last commits should conforms to your comments @JakeLin, can you take a look?

All good, great 👍


Donuts and well, data with the value of '0'

Now, of course I can handle all this lah lah.
Just curious if there is a reason the library fires up a bunch of console errors (versus something prettier).
This isn't a big deal, just trying to dip my toe into maybe working on this project :).

Verbose error handling can easily take up 20% of a libraries size. I'd like to either figure out how we can do verbose error handling in a more aspect oriented way so that we can create a dev bundle that contains verbose error messages and a production bundle that does not have verbose error handling. So far I tried to avoid verbose error handling at all :-) and it wans't such a huge issue. We are developers and should be able to backtrack an error very quickly. If not, we should learn the skill to do so ;-) I understand it would be developer friendlier to have verbose error messages but not at the price of library size. We could also prioritize the errors and only be verbose at the important ones. Or we build a system that handles errors with a pluggable assertion or more in an aspect oriented way so it's not directly included in the code and can be excluded for a prod bundle.

We should consider this in #811


Better documentation

Currenty the only thing that is documented sufficiently is the ExampleProcess.py.
The rest of the code base relies on descriptive variable names, which is fine for small programs, but our sofware has grown enough in the past few years that more rigerous documentation will make it easier for new members to learn the internals, and improve the longevity of the project.
Also, I don't think anyone really goes to the wiki, nor updates it, so finding a different place (ReadTheDocs?) to put all our documentation for roveberrypy, embeded code, PCBs, and how to get started with the team, might be a good idea.

[x] Autogenerated docs with sphinx

[ ] Add docstrings

[x] RoverProcess
[ ] USBServer
[ ] RoverServer
[ ] StateManager
[ ] DriveProcess
[ ] ArmProcess
[ ] DrillProcess

[x] Tutorial on adding a rover process

[x] Add new rover process
[x] Messaging
[x] Documenting

[x] Get it on ReadTheDocs

[ ] Create USST Github page that leads to documentation pages for other repos.

[ ] Embeded documentation

[ ] Tutorials
[ ] Doxygen autodocs?

[ ] Tutorial on how to wire up and assemble the rover

[ ] Tutorial on how to run/operate the rover.

I Second This.

I was just looking at Github pages, and they look like a possible solution. We could use ReadtheDocs/sphinx for autogenerating documentation from code coments, and have examples on how to use the software in that repo. Then a Github page for the usst organization could act as a hub linking to all the individual repo's doc pages, and explaining how things work together, as well as general team contributing stuff such as git tutorials etc.

I think I got a solution for the central docs page. I have a heroku app watch pushes to the private branch on the uofsspacedesignteam.github.io repo, and it uses a script called jekyll-auth to only allow people in our github organization to view the page. Try it out here https://usstdocs.herokuapp.com/

Docs are basically done for now, in the future I would like to add Doxygen for the embedded stuff, but there isn't much to document, and I'd rather save the effort for next year's API's.


How to train lora weights about camera movement controls?

This work is great, but when to publish the code on training lora weights.

I guess it's trained under animatediff. We can use the same training code with video data about camera pose adjustments. But we have to freeze the motion module and use the same approximate technique as lora.

I guess it's trained under animatediff. We can use the same training code with video data about camera pose adjustments. But we have to freeze the motion module and use the same approximate technique as lora.

I agree with you, but I would like to confirm whether this approach can be adapted to more personalized camera movements.


Added livekit setup for doctor connect

Follow up to #5147

This will be plugin right 🤔

Closing this PR, as it was an experimental piece. This feature would be added along with the plug feature.


tests still pulling data from data.dmlc.ml and are randomly failing

Note: Providing complete information in the most concise form is the best way to get help. This issue template serves as the checklist for essential information to most of the technical issues and bug reports. For non-technical issues and feature requests, feel free to present the information in what you believe is the best form.
For Q & A and discussion, please start a discussion thread at https://discuss.mxnet.io
Description
Unit tests pulling data from data.dmlc.ml and randomly failing
Environment info (Required)
Jenkins:
http://jenkins.mxnet-ci.amazon-ml.com/blue/organizations/jenkins/incubator-mxnet/detail/master/1676/pipeline

@mxnet-label-bot [CI, Test]

@mxnet-label-bot [Good First Issue]


CTRL+V when overwritten throws an error

Expected behavior
Shouldn't throw an error, should execute original.
Actual behavior
Throws an error, original is not a function
Steps to reproduce
When you overwrite
param keymap: {
'CTRL+V' : function(e, original){
   return original(e);
  }
}

Browser and OS
Chrome, MAC high Sierra

Thanks for the report, fixed in devel branch and also fixed this context.

Thanks for the quick fix, tested this fix on devel branch


fix method naming

Coverage increased (+0.1%) to 89.238% when pulling 8e70cacce182cf76123c96ff5aa5b06f743fc0a5 on fix/signup-checks into 57a773f806f703bfc87c858430e69c310b83be89 on main.


CSS - JS -  Fallbacks (perhaps for docs?)

Wanted to share a bit of code that can be used to fall back on local versions in case NetDNA is not available. (highly unlikely).  Jquery is required.   First JS fallback tests to see if bootstrap modals are enabled, if not then assumes NetDNA is down and loads js locally.  CSS fallback is done by checking for CSS color from bootstrap.css files; if not found attaches a local body to dom head.

<!-- BOOTSTRAP JS WITH LOCAL FALLBACK-->
<script type="text/javascript" src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.1.1/js/bootstrap.min.js"></script>

<script> if(typeof($.fn.modal) === 'undefined') {document.write('<script src="//www.mysite.com/js/v/bootstrap-2.1.1.js"><\/script>')}</script>

<!-- BOOTSTRAP CDN FALLBACK CSS-->
<script>$(document).ready(function() {
var bodyColor = $('body').css("color"); if(bodyColor != 'rgb(51, 51, 51)') {$("head").prepend("<link rel='stylesheet' href='//www.mysite.com/css/fw/bootstrap-combined-2.1.1.css' type='text/css' media='screen'>");}
});</script>

I use this fallback, but if in the custom class you change the body color then the fallback runs too and load twice. Then I was do a bit change:
<!-- BOOTSTRAP JS WITH LOCAL FALLBACK-->
<script type="text/javascript" src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.1.1/js/bootstrap.min.js"></script>

<script>
  cdnFail = (typeof($.fn.modal) === 'undefined')
  if( cdnFail ) {
    document.write('<script src="//www.mysite.com/js/v/bootstrap-2.1.1.js"><\/script>')
  }
</script>

<!-- BOOTSTRAP CDN FALLBACK CSS-->
<script>
  $(document).ready(function() {
    if( cdnFail ) {
      $("head").prepend("<link rel='stylesheet' href='//www.mysite.com/css/fw/bootstrap-combined-2.1.1.css' type='text/css' media='screen'>");
    }
  });
</script>

@flashtopia, is there a way to check if the Bootstrap JavaScript has loaded without using jQuery?
I wasn't sure if this is possible (given that Bootstrap JS is written in jQuery).

@JKAussieSkater you need jquery allways, but you need test if JQuery was be loaded after jquery script line and if bootstrap.min.js was be loaded after the ir script line. In booth cases you need express your fallback in js. In my case I was create a variable cdnFail becouse if con fail, then I need load a local bootstrap.min.css

Thanks for your insight @jam65st.
I do understand that jQuery must be loaded before bootstrap.min.js, and that the fallbacks need to be written in JS; I have it setup that way in my project too 😀
Perhaps my problem seems a bit unusual (given the necessary symbiotic relationship of jQuery and Bootstrap), but I was hoping to test if bootstrap.min.js had loaded using plain old JS (without jQuery).
My use case is that I'm trying to develop an error detection script, currently it says

jQuery is not loaded
We cannot confirm if Bootstrap.js has or hasn't loaded without jQuery

But if Bootstrap.js HAS loaded correctly, I want it to say is this instead:

jQuery is not loaded
Bootstrap.js has loaded successfully, although it requires jQuery

Do you think JS could be used to detect if Bootstrap.js has loaded?

@JKAussieSkater May be you can try something like:
`var test = 'xxxx://--- Your Bootstrap source ---';
// method to detect if any script (src) was be loaded in js
function getScript( src ){
var answer = false;
var scriptNodes = document.getElementsByTagName( 'script' );
// review loaded scripts (since this point)
for ( i = 0; i < scriptNodes.length; i++ ){
if( scriptNodes[i].src == src ){
answer = true;
// stop loop if success
break;
}
}
return answer;
}
// jQuery load test
jqueryLoaded = !(typeof jQuery === 'undefined');
// Bootstrap.min.js load test
bootstrapLoaded = getScript( test );
// Actions like you want do
console.log( 'jQuery is' + ( (jqueryLoaded) ? ' ' : ' not ' ) + 'loaded\nBootstrap.js has' + ( (bootstrapLoaded) ? ' ' : ' not ' ) + 'loaded successfully' + ( (jqueryLoaded) ? '' : ' although it requires jQuery' ) + '.' );`

That's very clever; I love your code optimisations too! Thank you @jam65st !


Memory Issue

Hi Adam,
I have been using your wonderful SignalR Client for Mac to develop the Alert application running on Mac.
For somehow, my program starts to have a memory leak issue after running it for a while. So far I still could not find out where did it come from even though I use the Xcode Leak tool.
Your advice is greatly appreciated.
Sincerely,
Joseph

Are you using UIWebView or WKWebView?

Hi Adam,Thank you very much for your reply.I didn't use WebView.I did use the NSPopUp for displaying mesages.Sincerely,JosephOn May 7, 2017 12:46 PM, Adam Hartford<EMAIL_ADDRESS>wrote:Are you using UIWebView or WKWebView?
—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or mute the thread.

I meant did you configure SwiftR to use WKWebView behind the scenes. It always uses a hidden web view. You would have code like this if you're using WKWebView:
// Client
let connection = SignalR("https://swiftr.azurewebsites.net")
connection.useWKWebView = true // <-- See here

The reason I ask is: UIWebView is known to leak memory. WKWebView is the better choice for SwiftR, but does have some limitations. See the README for more info there.

Thank you very much for your advice.
I turned on useWKWebView for now, and I will test it to see if it still has the memory leak issue.
Sincerely,
Joseph

I tried it on my iMac, it seems working fine. However, my colleague tried the app on his iMac and he got a lot of instances of app web content in the Activity Monitor. The app occupied a few GB memory.


Users can open the location of an AppMap in the explorer

Right click -> find in explorer

@dustinbyrne According to documentation there is no available command for that. Seems this issue should be saved in backlog.

:tada: This issue has been resolved in version 0.18.0 :tada:
The release is available on:

v0.18.0
GitHub release

Your semantic-release bot :package::rocket:


Parse the URI if needed when creating the signature

What changes are proposed in this pull request?
Fix #18442

alluxio-bot, merge this please


fix: revert update dotenv-expand #6703, fix #6858

Description
See discussion in #6858, we are going to probably update for Vite 3.0 so users can better cope with the breaking change.

What is the purpose of this pull request?

[x] Bug fix
[ ] New Feature
[ ] Documentation update
[ ] Other

Awesome to see your approved mark as green now @bluwy ✅ 🙌🏼


Group administration access

PR includes

[x] Feature

Related issues
Resolve #663

A lot of merge conflicts


Fix default ValueEnum casing

Fixes #1392

surprised it's not rename_all pascalCase like in serde :thinking: . Also I think the old behaviour might have accepted lower case and pascal case? Could you just check that for me (or if I do before I'll edit comment/review to mention it)

I'll check after work

It's PascalCase in serde, old version accepts all cases, I'll check how that can be done

I patched it so it allows any casing

Amazing! I'll cut a new release after work then :tada:


Culture: Team Dynamics

https://hbr.org/2011/06/why-a-great-individual-is-bett

The Power of Individual Brilliance vs. Team Dynamics: A Question of Scale
In our collaborative work culture, we often champion the power of teamwork. However, a thought-provoking article by Jeff Stibel, "Why a Great Individual Is Better Than a Good Team," challenges this notion. As a tech leader, I find this perspective fascinating, especially when considering the question of scale.
Key insights:

Quality over quantity: Stibel argues that in his CEO experience, he's never seen quantity beat quality in talent.

Brain science perspective: Our brains excel individually but can struggle in groups.

The power law in action: Individual contributions often decrease in value as more people join a project.

Exceptional talent is irreplaceable: A great individual can outperform multiple average contributors.

However, we must consider scale:

Team necessity in large projects: While individuals might excel in focused tasks, complex, large-scale projects often require diverse teams.

Scalability of individual brilliance: How do we scale the impact of exceptional individuals across an organization?

Balance at different organizational levels: The individual vs. team dynamic might shift as we move from small startups to large enterprises.

This perspective challenges us to rethink our approach to talent and team structure. As leaders, we should ask:

How do we identify tasks best suited for exceptional individuals vs. teams?
Can we create systems to amplify the impact of standout performers across larger groups?
How does the scale of our organization or projects influence individual vs. team effectiveness?

I'm curious about your experiences. Have you seen situations where individual brilliance outshone team efforts? How do you balance this dynamic as your organization scales?
Let's discuss this in the comments!
#Leadership #Talent #ScalableGrowth #OrganizationalDynamics


Create spec of extended TinyRAM ISA

Specify Orbis V1's fork of the TinyRAM 2.0 ISA, to include the following extensions: SHA2-256, SHA3-256, Blake2b-256, verify Ed25519 signature, verify ECDSA Secp256k1 signature, verify Schnorr signature, and field arithmetic in the native prime field of the containing circuit.
Questions. Do we have a separate address space for field elements, or do we use the same address space? If we use the same address space, does a field element occupy one address or more than one address? Do we have separate registers for field elements and for words? If so, what instructions do we offer for casting between word registers and field element registers?

Let's also remove NOT; it's redundant.

https://github.com/Orbis-Tertius/tinyram-extended-instruction-set


why the getPlainText function is not accessible anymore?

I've used react mentions 0.6.2, and using a ref to the MentionsInput, I called the getPlainText method.
Today, I've upgraded to 1.0.0 and I am getting a "not a function" error when calling the getPlainText.
Thanks for your advise.

Could you try changing the call to yourRef.getWrappedInstance().getPlainText()?
In general, I would suggest to change your code to handle the onChange and store the third argument, which is the plain text value, in a component state, instance field, or similar. The imperative style of accessing instance methods directly is not React-idiomatic and those methods are also not part of react-mentions public API.


How Realsense D455 works?

Required Info

Camera Model
D455

Issue Description
Hi, I'd like to know how RealSense D455 works.( To be specific, how Realsense uses speckle structured light to calculate the location
of each pixel). Could you show me where I can find the materials? Is there any guidebook?
Thanks a lot!!

Hi @koalaaaaaaaaa   RealSense 400 Series cameras use stereo depth technology (a depth image generated from left and right frames) rather than the coded light technology (similar to structured light) of the RealSense SR300 / SR305 models.
The Intel guides at the links below are helpful introductory references to stereo depth cameras such as the D455 and the differences between them and other RealSense depth camera types such as coded light and lidar.
https://www.intelrealsense.com/stereo-depth-vision-basics/
https://www.intelrealsense.com/beginners-guide-to-depth/
The bottom of page 16 and the whole of page 17 of the current edition of the data sheet document for the 400 Series cameras provide illustrated technical specifics about the principles of how they generate stereo depth images.
https://dev.intelrealsense.com/docs/intel-realsense-d400-series-product-family-datasheet
Your reference to 'speckled structured light' sounds as though you are asking how the cameras use their projected infrared dot pattern to analyze the surfaces that the dots fall on for depth information.  If that is your meaning then The Dot Pattern section of Intel's RealSense white-paper document about projectors and 400 Series cameras that is linked to below will hopefully answer your questions.
https://dev.intelrealsense.com/docs/projectors#section-5-the-dot-pattern

Hi @koalaaaaaaaaa   Do you require further assistance with this case, please?  Thanks!

Case closed due to no further comments received.


Exception sending socket message while running jobs

The plugin seems to behave as expected getting port from the environment ( * ). But when using the socket ( ** ) it gets an error  Broken pipe (Write failed) e.g. ( *** ).
Be patient :) could you help me to investigate this?
Thanks in advance.
( * )
SPARKMONITOR_LISTENER: Started SparkListener for Jupyter Notebook
SPARKMONITOR_LISTENER: Port obtained from environment: 37836
SPARKMONITOR_LISTENER: Application Started: KubernetesSpark ...Start Time:<PHONE_NUMBER>632

( ** )
https://github.com/itsjafer/jupyterlab-sparkmonitor/blob/9f5da7769b51886b57ac3ef477a7c21aceb371d8/scalalistener/CustomListener.scala#L54
( *** )
SPARKMONITOR_LISTENER: --------------Sending Message:------------------
{
  "msgtype" : "sparkJobStart",
  "jobGroup" : "null",
  "jobId" : 0,
  "status" : "RUNNING",
  "submissionTime" :<PHONE_NUMBER>329,
  "stageIds" : [ 0 ],
  "stageInfos" : {
    "0" : {
      "attemptId" : 0,
      "name" : "count at <ipython-input-1-a5fef8d63630>:1",
      "numTasks" : 2,
      "completionTime" : -1,
      "submissionTime" : -1
    }
  },
  "numTasks" : 2,
  "totalCores" : 1,
  "appId" : "KubernetesSpark",
  "numExecutors" : 1,
  "name" : "count at <ipython-input-1-a5fef8d63630>:1"
}
SPARKMONITOR_LISTENER: -------------------------------------------------

SPARKMONITOR_LISTENER: Exception sending socket message:java.net.SocketException: Broken pipe (Write failed)

This usually happens because the front-end extension is not running. I think this error is actually linked to your previous issue. Are you able to successfully run the jupyter labextension install jupyterlab_sparkmonitor command?


[1.5.x] Use latest JDKs

Backport of #107

Should 1.5.x actually be running with Java 11? It already was, before this pull request, but Cassandra seems flaky in CI. We don't certify Lagom 1.5 with Java 11. Should I remove it from this branch?

Should 1.5.x actually be running with Java 11? It already was, before this pull request, but Cassandra seems flaky in CI. We don't certify Lagom 1.5 with Java 11. Should I remove it from this branch?

We already run the lagom/lagom build jobs in JDK11. We could mark the JDK11 jobs for lagom-samples as may fail but I think we must keep them around.

The build passed after re-running, so the only thing blocking this now is an erroneously required "Travis CI - Branch" check (see https://github.com/lagom/lagom-samples/pull/114#discussion_r335839087).

I manually removed that required check (since the settings bot seems to be broken) so this just needs an approval from someone.


Edit and delete track

PUT to the track's URI to edit the track.
DELETE to the track's URI to delete the track.

Rebased to fix commit messages.


Pype 3: Handle binary dependencies

Feature
This adds ability to specify and download binary dependencies (like ffmpeg and oiiio tool).
First step is to specify them in pyproject.toml:
[pype]

[pype.thirdparty.ffmpeg.windows]
url = "https://distribute.openpype.io/thirdparty/ffmpeg-4.13-windows.zip"
hash = "43988ebcba98313635f06f2ca7e2dd52670710ebceefaa77107321b1def30472"

This adds ffmpeg for windows platform, its url and hash.
Next run:
& .\tools\fetch_thirdparty_libs.ps1

or
./tools/fetch_thirdparty_libs.sh

or
poetry run python ./tools/fetch_thirdparty_libs.py

and that will download and verify file from specified url and extract is content to vendor/bin - in this example vendor/bin/ffmpeg/windows. If there is already something in that path, it will be replaced.
Closing #1175

Based on internal discussion it seems we're just missing the actually binaries. @iLLiCiTiT can you please handle the ffmpeg?

[ ] FFMPEG linux
[ ] FFMEPG MacOS

Script fetch_thirdparty_libs.ps1 successfully download and extract content but prints error when executed. Probably because of my old PowerShell?
.EXAMPLE : The term '.EXAMPLE' is not recognized as the name of a cmdlet, function, script file, or operable program. C
heck the spelling of the name, or if a path was included, verify that the path is correct and try again.
At C:\Users\iLLiCiT\PycharmProjects\pype3\tools\fetch_thirdparty_libs.ps1:10 char:1
+ .EXAMPLE
+ ~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (.EXAMPLE:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS> : The term 'PS>' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the s
pelling of the name, or if a path was included, verify that the path is correct and try again.
At C:\Users\iLLiCiT\PycharmProjects\pype3\tools\fetch_thirdparty_libs.ps1:12 char:1
+ PS> .\fetch_thirdparty_libs.ps1
+ ~~~
    + CategoryInfo          : ObjectNotFound: (PS>:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Last changes:

in pype/lib renamed ffmpeg_utils.py to vendor_bin_utils.py
vendor utils contain function get_vendor_bin_path to get folder path to vendorized bin

do not return directly to binaries as each app may have different folder structure for different platfoms (e.g. ffmpeg)

changed implementation of get_ffmpeg_tool_path to use get_vendor_bin_path instead of environment variable
implemented function for OpenImageIO build get_oiio_tools_path which by default returns path to oiiotool but it is possbile to return path for different oiio tools (iconvert, maketx, etc.)
use these functions in code instead of using environments

had to shuffle imports in lib - vendor_bin_utils.py is imported as one of first files as has zero requirements from other lib parts


Plugin support for getPrivCollection function

The problem is that you don't know whether it will succeed or not, because in the plugin, we don't really know whether someone is admin or not.
-- or were you going to put this in the unity app? In which case, copy code and do with as you would, and I will abandon this PR.

@gazuntype per request added ability to download unitypackage.


Convert critical numbers to proportional nubmers

Because the variance of the screens size

Do you want to make an image, or should I draw it with java?


don't anxious

Proposed changes

Unreleased project version (optional)

Related issues (optional)

Deploy preview for docsdocker ready!
Built with commit 4aa1364496bf8c7e20c1085fef632e3e91ca342a
https://deploy-preview-7526--docsdocker.netlify.com


Prune sources

Edit > Prune sources
instant crash for me
Grabber version: 7.12.2

I can't reproduce on my end, it's removing sources without results as expected.
What sources do you have selected when this happens? And what's the state of your active tab?

I can share setings or entire programm folder if you need

I don't know if any personal data, passwords, etc. are saved there, so I sent my grabber to your e-mail (from bio)


Tighter bounds base for old cmdargs

Visible on Hackage Matrix CI.
This breaks builds for compilers that don't support TemplateHaskell (e.g cross-compilers for GHC 8.6.5)

Lots of bounds tightened. That sufficient for you? The matrix now looks pretty healthy.


ExportablePlan#record_plan_export fails silently

Please complete the following fields as applicable:
What version of the DMPRoadmap code are you running? (e.g. v2.2.0)
v3.0.2
Expected behaviour:
ExportablePlan#record_plan_export should create a new record
in table exported_plans
Actual behaviour:
Validation fails silently due to missing attribute user_id,
which is required (belongs_to in Rails 5.2 validates its presence
by default unless optional: true is set)
Steps to reproduce:

go to line and replace save by save!
now download any plan as pdf

No idea how to fix this. Models do not have access to things like current_user,
and this happens so deep in the code chain.. Is it required to store this attribute?

I can confirm that the exported_plans table has no new records since we upgraded to the Rails 5.2 version.
I've never seen any use for this table. There is no UI component that displays any metrics on downloads. @martaribeiro or @raycarrick-ed do either of you use this table or recall why it was there? I think it was carried over from the old dmponline v4 codebase.
@nicolasfranck I would recommend using the optional: true here if the information is of interest, otherwise maybe just comment out the call to that method.

ExportedPlan is an old component that dates back to DMPonline_v4,
but there the results were never used. I thought that the results
were meant to be shown on the page "Usage"?

I'm not aware of any current use of it. So I suspect it's a historical leftover.

Ok. I think we should just remove the table entirely then. This should include:

[ ] migration to drop the exported_plans table
[ ] removal of the ExportedPlan model
[ ] removal of the ExportablePlan model concern
[ ] removal of include ExportablePlan line from the Plan model
[ ] removal of any related RSpec tests
[ ] a scan of the codebase to search for any other references to those objects

Discovered (from a user) that these records are used to generate usage statistics, so going to patch so that it begins recording again.
Unfortunately there will be a gap in the statistics.


published site at amplify domain gives Error  AccessDenied

Before opening, please confirm:

[X] I have checked to see if my question is addressed in the FAQ.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

Describe the bug
Hi i have my application published at amplify and have two questions:

when using cli (amplify publish) I receive link in terminal which works
http://ecoosmarketplace-20210422211312-hostingbucket-staging.s3-website.eu-central-1.amazonaws.com/

why this link is different from the link stated in Amplify Web Console (which is:
https://main.d24x74bs3wfjmt.amplifyapp.com ) ?

when accessing the second link (https://main.d24x74bs3wfjmt.amplifyapp.com) I have received:

This XML file does not appear to have any style information associated with it. The document tree is shown below. <Error> AccessDenied <Message>Access Denied</Message> <RequestId>9NCM6FBHH7DYYWYG</RequestId> <HostId>UwLWmBvnL6UdrqBk+dueAoe7qGznNFOKETIsxGBJ3uZiR63ujpBVjRv7zwc6ipcAdPjmKohRK7g=</HostId> </Error>
I've googled a lot and the only advice is to set redirect, which I did (see the screenshot):
</^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|ttf|map|json)$)([^.]+$)/>      /index.html     200 (rewrite)
but that didn't help to fix the issue and access the site. Please help to solve it.
Expected behavior

indicate the same published and active links both in CLI and Web Console
access the site on shown in wen console link

Reproduction steps

create new amplify site with backend
publish using cli - amplify publish and get the links
compare on link shown on the amplify main page (see the screenshot)

Build Settings
No response
Additional information
No response

Same problem here:

AccessDenied
Access Denied
4SRSGDF1AVSWA65D
GkwXjQIJ7H0thm3zSw8NNOOQcqDmmiDMJmF86MZ3qZAiB23olmMij92xbcEUhscwNxhCOtOu1nA=

I just followed exactly the tutorial instructions on AWS

For those running into the This XML file does not appear to have any style information associated with it. The document tree is shown below. error, please make sure the baseDirectory is set to the correct folder.


UI Updates to Signing Page

Widens the Signing page to allow for better viewing of the deploy data and reduces the requirement for scrolling.

Closing this to be replaced without the commit history (which is all negated in the last merge commit)


WireMock learning paths

Proposal
The documentation for WireMock is quite robust. This has the positive outcome of almost every case you could think of being documented. But the negative outcome is that users who are new to WireMock may not know which page to go to in order to get a code example. While standardizing documentation could lead to an increase in discoverability, another path that could be taken to increase user adoption would be learning paths.
What's a learning path?
A learning path would be something like a small tutorial that allows users to easily set up their own WireMock and play around with a sandbox to discover how they can implement certain solutions. Ideally, there would be three requirements for a learning path

WireMock code (either JSON or Java, but having both would be a plus :D )
Postman collection (or some other grouping of network calls for ease of use)
Documentation! To guide the user through their learning path.

What does the learning path accomplish?
Ideally, the learning path would allow users, especially those who are more hands-on learners, to engage with WireMock while attempting to solve a problem or discover how to use a tool. Additionally, when answering questions on StackOverflow, GitHub, or the Slack community, learning paths could provide another avenue to explain how to solve problems.
From my own personal experience, using a small sandbox I made to figure out the difference between url, urlPath, urlPattern, and urlPathPattern spurred me on my way to really using WireMock.
Why could this be unsuccessful?
Honestly, it'd be a huge endeavor. Even trying to slice the learning paths into fairly large groups would still require a ton of coordination and preparation before getting into actually creating the paths. What goes into one path vs. another? How prescriptive are the instructions? How are certain features documented/not documented?
Reference any relevant documentation, other materials or issues/pull requests that can be used for inspiration.
No response

I think it would be a great improvement. Indeed it would be difficult to implement that with the existing documentation framework. I created https://github.com/wiremock/wiremock.org-sources/issues/24 to move to Hugo or Docusaurus, and then we could start major rework.
W.r.t Learning paths, I would suggest starting from Quckstarts for the tech stacks we support at the momment:

Java / Vanilla
Java / SpringBoot based on https://github.com/maciejwalkowiak/wiremock-spring-boot
Python / Vanilla
WireMock.NET powered by https://github.com/WireMock-Net/WireMock.Net
(?) TestContainers


fix: add db:reseed:ci

Pull Request Template
Issue Overview

[X] This change addresses the issue in full
[ ] This change addresses only certain aspects of the issue
[ ] This change is a dependency for another issue
[ ] This change has a dependency from another issue

Description
There's a chicken-and-egg situation that happens with reseeding.  The first thing it does is try to drop the bloom table, but if that's the table you're connected to when you run the command, it fails.  This is less an issue in local dev environments where there are alternate databases to use, but in CI environments that isn't necessarily an option and automating around it can be a pain.  This PR adds a new yarn command, db:reseed:ci, that addresses this issue by automatically creating a new temporary database and running database reset commands from there before reseeding.
Documentation for this and other commands will be added later, once more important tasks are complete.
How Can This Be Tested/Reviewed?
Run yarn db:reseed:ci and verify that it completes successfully.  You can also verify that the temp database is not used for populating seed data by running psql -d temp -c '\d', which should print "Did not find any relations."  If your bloom database doesn't yet exist for some reason, you can change the starting database by setting PGDATABASE ahead of the command like this: PGDATABASE=<other_db_name> yarn db:reseed:ci.
Checklist:

[X] My code follows the style guidelines of this project
[ ] I have added QA notes to the issue with applicable URLs
[ ] I have performed a self-review of my own code
[ ] I have reviewed the changes in a desktop view
[ ] I have reviewed the changes in a mobile view
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[X] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules
[X] I have assigned reviewers
[ ] I have run yarn generate:client and/or created a migration if I made backend changes that require them
[ ] My commit message(s) is/are polished, and any breaking changes are indicated in the message and are well-described
[ ] Commits made across packages purposefully have the same commit message/version change, else are separated into different commits

Reviewer Notes:
Steps to review a PR:

Read and understand the issue, and ensure the author has added QA notes
Review the code itself from a style point of view
Pull the changes down locally and test that the acceptance criteria is met
Also review the acceptance criteria on the Netlify deploy preview (noting that these do not yet include any backend changes made in the PR)
Either explicitly ask a clarifying question, request changes, or approve the PR if there are small remaining changes but the PR is otherwise good to go

On Merge:
If you have one commit and message, squash. If you need each message to be applied, rebase and merge.

@phattya and @ifranch since I think you've both run into this before and are probably best to test this
@isaac-looker FYI

https://github.com/metrotranscom/doorway/pull/118/files#diff-f104fe6796ebd48fee62979eeafd05637d4b164d7c526c5c0aaed875b18cbb49R61

Another option is to use template1

That's a great point!  I'll make that change since it will simplify things a bit


Need algorithm in 94X

Otherwise the code gives the following compiler errors:
error: no matching function for call to 'find(std::vector::iterator, std::vector::iterator, unsigned int&)'
ikeep[i] = (std::find(ids.begin(), ids.end(), i) == ids.end());
note: candidate: template typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT> >::__type std::find(std::istreambuf_iterator<_CharT>, std::istreambuf_iterator<_CharT>, const _CharT2&)
find(istreambuf_iterator<_CharT> __first,
note:   template argument deduction/substitution failed:
src/RobustHesse.cc:295:52: note:   '__gnu_cxx::__normal_iterator<unsigned int*, std::vector >' is not derived from 'std::istreambuf_iterator<_CharT>'
ikeep[i] = (std::find(ids.begin(), ids.end(), i) == ids.end());
/src/RobustHesse.cc: In member function 'int RobustHesse::hesse()':
src/RobustHesse.cc:427:9: error: 'sort' is not a member of 'std'
std::sort(eigenvec.begin(), eigenvec.end(), [](std::pair<unsigned, double> const& p1, std::pair<unsigned, double> const& p2) {

Thanks @usarica , although if this is needed only for compilation in 94, please point the request to the 94x branch :  https://github.com/cms-analysis/HiggsAnalysis-CombinedLimit/tree/94x
We will periodically merge developments in 81x up to the 94 branch so that the features will be consistent.

@usarica - Ah, you're right. I've now rebased the 94x branch so that the latest from 81x is there. I've also merged this commit from you directly on top of the rebased 94x (see 366187e ) and tested that the 94x branch now compiles. I'll close this PR. Thanks for the fix.


ui: fix panic on create order page

This MR fixes an issue that caused a panic on the create order page due to its uninitialized state after OnNavigatedTo() has been executed but before the page overlay is removed.
This issue might affect other pages that require special initialization and use an overlay.
EDIT: After a brief check, it seems no other page is affected.
Closes #183

panic: runtime error: index out of range [0] with length 0

goroutine 30 [running]:
github.com/crypto-power/cryptopower/ui/page/components.(*WalletAndAccountSelector).SetSelectedAsset(0xc0000fe0c0, {0xc004b1e9a0?, 0x0?, 0x1?})
	/Users/apple/Desktop/cryptopower/cryptopower/ui/page/components/wallet_account_selector.go:147 +0xfd
github.com/crypto-power/cryptopower/ui/page/exchange.(*CreateOrderPage).updateAssetSelection(0xc006eb6c00, {0xc002afdd10, 0xc00625e601?, 0xc0031f3c00?}, {0x0, 0x0, 0x100c90906?})
	/Users/apple/Desktop/cryptopower/cryptopower/ui/page/exchange/create_order_page.go:474 +0xef
github.com/crypto-power/cryptopower/ui/page/exchange.(*CreateOrderPage).updateWalletAndAccountSelector(0xc0005831e0?, {0xc002afdd10?, 0x10004d0b3?, 0x10003dbd6?}, {0x0?, 0xc0030feb98?, 0x100c908e0?})
	/Users/apple/Desktop/cryptopower/cryptopower/ui/page/exchange/create_order_page.go:211 +0x28
github.com/crypto-power/cryptopower/ui/page/exchange.NewCreateOrderPage.func1(0xc0001037a0)
	/Users/apple/Desktop/cryptopower/cryptopower/ui/page/exchange/create_order_page.go:172 +0x116
github.com/crypto-power/cryptopower/ui/page/components.NewAssetTypeSelector.func1(0xc0001037a0?)
	/Users/apple/Desktop/cryptopower/cryptopower/ui/page/components/asset_selector.go:68 +0x9d
github.com/crypto-power/cryptopower/ui/page/components.(*assetTypeModal).Handle(0xc0031f3c00)
	/Users/apple/Desktop/cryptopower/cryptopower/ui/page/components/asset_selector.go:234 +0x127
github.com/crypto-power/cryptopower/ui.(*Window).handleFrameEvent(0xc002e200a0, {{0xc1445298e40f1c10, 0x2bcb04e4f, 0x102727fc0}, {0x40000000, 0x40000000}, {0x640, 0x514}, {0x0, 0x0, ...}, ...})
	/Users/apple/Desktop/cryptopower/cryptopower/ui/window.go:235 +0x171
github.com/crypto-power/cryptopower/ui.(*Window).HandleEvents(0xc002e200a0)
	/Users/apple/Desktop/cryptopower/cryptopower/ui/window.go:206 +0x2b6
main.main.func3()
	/Users/apple/Desktop/cryptopower/cryptopower/main.go:110 +0x1d
created by main.main
	/Users/apple/Desktop/cryptopower/cryptopower/main.go:108 +0x553

The app crashes when i select an asset i currently don't have example: i only have BTC and DCR.. selecting LTC, the app will crash.

Is this reproducible on master?

Is this reproducible on master?
Edit: This panic is reproducible on master but I'll sneak in a fix cuz it's related. @Sirmorrison, @dreacot, what do you think would be a correct behaviour when the wallet for a swap asset does not exist yet?

please create a follow up issue for this @ukane-philemon

overlaySet

so if the wallet selector is able to take asset types as parameters, it would be ideal to pass the asset types of the users wallets to the wallet selector. That way, only available assets are displayed on  the selector.


[linux] Make BLE connection retry on SW connection abort error

Problem
Due to radio interferences or Wi-Fi coexistence, sometimes the BLE connection may not be
established (e.g. Connection Indication Packet is missed by BLE peripheral). In such case,
chip-tool returns FAIL: ConnectDevice : GDBus.Error:org.bluez.Error.Failed: Software caused connection abort and exits early.
This makes it problematic for running tests by Test Harness or internal tests automation.
Change overview
Make BLE connection retry on receiving such error.
Testing
Tested manually on Test Harness configuration - RPi 4B with chip-tool and nRF Connect platform, by executing commissioning in the loop and checking the behavior after receiving the error.

/rebase


fix(resolver): resolve dir if no index found #4568

Types of changes

[x] Bug fix (a non-breaking change which fixes an issue)
[ ] New feature (a non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Description
The previous behaviour was to return resolvedPath if the file exists
(even if it's a dir). After this change we first check for index files
in the dir, if there's not we still return the resolvedPath for the dir.
This fixes #4568
Checklist:

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly. (PR: #)
[ ] I have added tests to cover my changes (if not applicable, please state why)
[x] All new and existing tests are passing.

Codecov Report

Merging #4569 into dev will decrease coverage by 0.02%.
The diff coverage is 83.33%.

@@            Coverage Diff            @@
##             dev    #4569      +/-   ##
=========================================
- Coverage   91.1%   91.07%   -0.03%
=========================================
  Files         61       61
  Lines       2204     2208       +4
  Branches     534      536       +2
=========================================
+ Hits        2008     2011       +3
- Misses       178      179       +1
  Partials      18       18

Impacted Files
Coverage Δ

packages/core/src/resolver.js
86.53% <83.33%> (-0.97%)
:arrow_down:

Continue to review full report at Codecov.

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

Codecov Report

Merging #4569 into dev will decrease coverage by 0.02%.
The diff coverage is 83.33%.

@@            Coverage Diff            @@
##             dev    #4569      +/-   ##
=========================================
- Coverage   91.1%   91.07%   -0.03%
=========================================
  Files         61       61
  Lines       2204     2208       +4
  Branches     534      536       +2
=========================================
+ Hits        2008     2011       +3
- Misses       178      179       +1
  Partials      18       18

Impacted Files
Coverage Δ

packages/core/src/resolver.js
86.53% <83.33%> (-0.97%)
:arrow_down:

Continue to review full report at Codecov.

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

Tidied this up a bit.
We only need to check for {path}.[ext] when we know it's not a dir, if
it's a dir we check for {path}/index.[ext]


Restricting code-server to a specific directory?

Hey, so I'm wondering if there's any way to restrict code-server's access to a specific directory, that way code-server doesn't have complete access to my whole servers filesystem. I know you can set the starting directory, and I tried that, but it doesn't do what I need.

There isn't a way to restrict code-server by dir ATM. You'd need to run code-server within a chroot. Running within a docker container might fix your needs.

Did you tried create some user , and unde root change his chmod restrictions and than run code-server under that user ?

Would be awesome to get a guide/doc on how to setup chroot for a user account and start code-server under that user.

I'm gonna look into it, and if I get it working good I might make a pull request on the self hosting guide with instructions on how to do it.

I'd appreciate it. I'm running this on a very incapable server and I'm not sure if it would survive docker. I did a little bit of googling to explore my options and the consensus of random stack overflow people is that chroot isn't really secure and it isn't meant for security in the first place. It's apparently easy to get out of the chroot jail? You can open a terminal in vs code so presumably that would be a way for them to do this.
I'd love to be able to host a safe and or isolated sandbox for editing game files for a server I'm hosting. I think my friends would be able to figure out xml mods with vs code, but vi would be asking a bit much.

There seem to be a bug with code-server I think? running python -m http.server with chroot works, but running code-server with chroot doesn't do anything

@student020341 VSCode server requires too many system utils for chroot to be safe, unfortunately. It's the same with VSCode remote extension. The only cheap option would be LXC containers on a VPS, Hetzner is probably the cheapest.

@tmikaeld I have recently upgraded my server machine and have more options. Do you think docker is the best way to run this?
Another option I'm considering is a different editor for anything I want to be public. Editing xml files doesn't even really need a full on editor. I personally will keep using vscode for my own code, but I think without the option being discussed in this thread, I'll go with another option for what will be shared.

@student020341 I'm not using code-server myself any more, I've switched to the VSCode remote extension. I use proxmox + LXC containers to keep it secure and easy to manage.

@tmikaeld is that an official thing now? I'm seeing new results when I google that. I was previously using Marcel Kloubert's remote extension for vs code but it created a large number of ssh connections and caused issues at the office I was in.
Is this new thing something I can start up on an ubuntu server and then connect to from my machine?

@student020341 Yes, it's officially released and made by Microsoft. Yes you only need to setup an SSH server, there's nothing more to do. See the official docs, it's super straightforward :)

@tmikaeld I like that it's an official version of the previous solution I used, but being able to use vscode in the browser is too useful with the chromebooks littering my apartment.
Thanks anyway, perhaps I can run with both solutions in the future.


New version with React 16.0.0 support

@codesuki Hi! I see merged PR with React 16.0.0 support, but I don't see the deployed version with this changes. Could you do this?)
Thank you for your work!

Done! 0.7.0


Add yt cache to ya make builds

Created YT cluster to store cache for ya make builds and specified configurations in ya.conf

To be able to use it, we should add secret YA_YT_TOKEN or YA_YT_TOKEN_PATH to workflows

These changes should be implemented in such a way, let discard this PR


Separate Contact Us page added

Issue no : #214

Hey @Luson045
I have successfully created a separate Contact Us form and integrated social media links. The entire process was somewhat challenging and time-consuming, particularly in ensuring the design and functionality were seamless. Given the complexity of this task and the effort involved, I kindly request that my contribution be upgraded to a level 3 label.

Always mention the issue no in PR description. Not in the title.

Fixes #214

it was not that hard page to create ... we cant give level 3 tag to it ...
resolve the conflicts and we will assign it a Level 2 tag

Hey @Luson045  @ROKUMATE
I encountered complex merge conflicts in my current pull request that are challenging to resolve in the editor. As a result, I would like to close this PR and raise a new one once I have addressed the conflicts in my local branch.

@AbhijitMotekar99 okay raise new pr, can't give level3 for this


add react-dom package

Proposed Release Notes

Add missing pacakge(react-dom) in nextjs/legacy example.

Links
Details
In nextjs/legacy example react-dom dependency was missing that occur error.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.eddie.ch seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Add Get Timeline schedule for opsGenie

We need this Timeline request in order to get the timeline and generate some reports.

thanks!


Output cells in Jupyer notebook are rendering with a weird font family

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: Version: 1.65.1 (user setup)
OS: Windows_NT x64 10.0.19043

Steps to Reproduce:

It started about 2 weeks ago, I was running my jupyter notebook normally and everything was working smoothly.

I'm using this released version of the Jupyter notebook support as well as its renderer.

Before this "bug", my cells used to look like this image bellow (I know it's taken from the jupyter instance running on my local server) :

Now, they look like this :

If anyone knows how to change the font-family, I would very much appreciate. I'm looking for a solution since a week and no one has encoutered this before (I checked some identic issues but they were not cell-outputs related)

Also, I went through different types of settings in the json file and nothing had to do with the font-family of jupyter notebook output-cell.

Thanks in advance and have a nice day.

Will be fixed in the coming recovery build, thanks for the report!


Demo - Add currency-x.com

Added currency-x.com, web app developed by commiter.

Thanks @helloguille


Ring modulation

Implements ring modulation, as described in the cakewalk book

Ring modulation example
<control>
set_hdcc21=0.5

<region>
sample=*saw
oscillator=on
oscillator_mode=0
oscillator_multi=2
oscillator_detune=25
oscillator_mod_depth=100
oscillator_mod_depth_oncc21=100

Does the book specify if we can have different waveforms for the multiple oscillators?

There is no indication about this whatsoever, although this is indeed important to modulation synthesis.
Under rapture, you can process RM, but only by user interface, not via SFZ oscillator opcodes.
I make this choice by naively following what unison did; assign identical waves to all the oscillators.
For distinct waves, it will require a SFZ extension.

superseded by #436 (which includes a fix for unison)


run_cmd helper not receiving AWS_* env variables when using iam_role property

Hi Everyone, hope everything is going well
I am using:
iam_role = "arn:aws:iam::111111111111:role/iam_target_role"

As per documentation here
So terragrunt will call sts assume-role before running terraform commands and that is working nice.
I have a shell script that use aws-cli to get a value from aws ssm (parameter store) and I am using run_cmd to run that in terragrunt like:
inputs = {
  certificate_body  = run_cmd("--terragrunt-quiet", "./get-aws-ssm-value.sh", "foo")
}

But I got the error: An error occurred (ParameterNotFound) when calling the GetParameter operation:
I have been trying to troubleshoot and it seems that for run_cmd the environment variables defined after assuming IAM role here  are not passed as environment variables so aws-cli does not have valid AWS credentials.
not sure if I may be missing something, any help/clue, will be much appreciated
thanks 👍🏼

Ah, yea, the docs aren't clear on this. I think currently, iam_role is only used when calling your actual Terraform command (e.g., terraform apply) and not anything else. That said, it would be more consistent for iam_role to affect everything. A PR to make this change is welcome.

Closing this issue as it have been fixed , see comment here
https://github.com/gruntwork-io/terragrunt/pull/1638#issuecomment-948714616
thanks so much for this 👍🏼


Tag for LID "include" in Docs

Docs USER STORY 1951819
Purpose

We need a tag to import the code into the Docs article

Pull Request Type
What kind of change does this Pull Request introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[X] Documentation content changes
[ ] Other... Please describe:

I'll submit a corrected version