Add a RPC to return block with it's transactions and transaction receipts

Description
Add a RPC to return block with it's transactions and transaction receipts, such as getBlockWithReceiptByNumber
Expected behavior: [What you expect to happen]
Such as following result
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "version": 0,
    "hash": "0x5038c222d460c32fd06df36d58bb7cf5c368a55e207a46ecb18695451bfe4069",
    "header": {
      "timestamp":<PHONE_NUMBER>950,
      "prevHash": "0xb28ec1911d375350664b9673a61d952e9a748f3e63606f1440f313c4911fde58",
      "proof": {
        "proposal": "0x0f25d396361c7d54bb16389f6a14bf95207915f91d180d382093e19adfc4133b",
        "height": 902,
        "round": 0,
        "commits": {
          "0x2b027dacd33a41ddb09e21805778f19951776ed5": "0x1532c58faedf9e103dd84aa6aacbd2121aa3a8102faa506e7e152fb10e45bafd31b1c3d372cf5d42f8b27a8bfea112ae194de76d99206f73837ad8c30267e6a501",
          "0x2d74a106464fbdf94e47bb28605a1aa244ab7788": "0x2ec53371cee732d59d23a58cf6cf53d818fb906fdeb5b0521a3a4cdbb75cf29658a1ff5fa95e4dc71563cbed10070c68e2eec0f812fa3be8e019b6df6e9ea66201",
          "0x3efd4959af72e1214ab83caa0f04a0cc3e54d383": "0xb051f0cc41bc3caed472d3c7a35e06d805e8f6d15ccb3efc257d71ee96932c5877a8e52fc29cb3bef73e0edbad62c617c4dd16763709b2604ab8b1db2d87736301",
          "0x5223818f7096520bfad68ce3d5ac959267dbc45f": "0x1cf6f8dc9654d461a317db199de0ed0d2d008762833b3358e269ceb3c412b60b3f1a2bd08f969e0dc1c9ebe1a0710002f853438a6ef3ea048de9b4e67387827400"
        }
      },
      "stateRoot": "0xe29266e5574bc0c848b513d36403d4da71f99f328d3324e8d3134809c33d4fb4",
      "transactionsRoot": "0xf31e32611322f410f430ef8141c2237c19dd1034eddef8dedba692ec9851799b",
      "receiptsRoot": "0x9646cf2572734b4b13fe1616446ab2658e208cfdbaf25e47ebea9b6327e10c5b",
      "gasUsed": "0x0",
      "number": "0x387",
      "proposer": "0xe6d430a2d830236d3774d148cbee72bbf26cd481",
    },
    "body": {
      "transactions": [{
        "hash": "0xf31e32611322f410f430ef8141c2237c19dd1034eddef8dedba692ec9851799b",
        "content": "0x0a28356230373365393233333934346235653732396534366436313866306438656466336439633334611a80040aba030a28356230373365393233333934346235653732396534366436313866306438656466336439633334611a87030a013010a08d0622fd026060604052341561000c57fe5b5b7f4f8cfde3439a1a302c21ca51eec26086efbfd940b8c0279889fc6bb6e73ecc6633604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b60fd806100806000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360fe47b11460445780636d4ce63c146061575bfe5b3415604b57fe5b605f60048080359060200190919050506084565b005b3415606857fe5b606e60c6565b6040518082815260200191505060405180910390f35b7fc6d8c0af6d21f291e7c359603aa97e0ed500f04db6e983b9fce75a91c6b8da6b816040518082815260200191505060405180910390a1806000819055505b50565b600060005490505b905600a165627a7a7230582079ba3769927f0f8cf4bec7ce02513b56823c8fc3f4047989951e042a9a04651900292080808080101241d51ca7a0171113478f47357a71c240bd0431f52639741a6721725de276a88d2e723b12f4bbeb1cdddea63f947ddb9db6e2667f08a03af1577c42d3c1a3dc5a7c01208080808010",
        "from": "0x5b073e9233944b5e729e46d618f0d8edf3d9c34a",
        "receipt": {
          "transactionHash": "0xb38e5b6572b2613cab8088f93e6835576209f2b796104779b4a43fa5adc737af",
          "transactionIndex": "0x0",
          "blockHash": "0xe068cf7299450b78fe97ed370fd9ebe09ecbd6786968e474fae862ccbd5c5020",
          "blockNumber": "0xa",
          "cumulativeGasUsed": "0x17a0f",
          "gasUsed": "0x17a0f",
          "contractAddress": "0xea4f6bc98b456ef085da5c424db710489848cab5",
          "logs": [{
            "address": "0xea4f6bc98b456ef085da5c424db710489848cab5",
            "topics": [
              "0x8fb1356be6b2a4e49ee94447eb9dcb8783f51c41dcddfe7919f945017d163bf3"
            ],
            "data": "0x0000000000000000000000005b073e9233944b5e729e46d618f0d8edf3d9c34a0000000000000000000000000000000000000000000000000000000000000064",
            "blockHash": "0xe068cf7299450b78fe97ed370fd9ebe09ecbd6786968e474fae862ccbd5c5020",
            "blockNumber": "0xa",
            "transactionHash": "0xb38e5b6572b2613cab8088f93e6835576209f2b796104779b4a43fa5adc737af",
            "transactionIndex": "0x0",
            "logIndex": "0x0",
            "transactionLogIndex": "0x0"
          }],
          "root": "0xe702d654a292a8d074fd5ba3769b3dead8095d2a8f2207b3a69bd49c91a178af",
          "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100040000000010000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
        }
      }]
    }
  }
}

Additional Information
It's helpful for ReBirth to sync data.

Thanks for the advice!
The getBlockByNumber(https://docs.citahub.com/zh-CN/cita/rpc-guide/rpc#getblockbynumber) interface has a parameter, it can return verbose tx info, check this:

I think what you are saying is the level of verbose, it's a higher level that show more info. But change the interface has a big impact.
Maybe it's a better idea, We can continue to discuss it.

Yeah, but this RPC only can return hash, content and from attributes, without some attributes in receipt such as errorMessage or logs, may add a new one is better than update getBlockByNumber?

Yeah, but this RPC only can return hash, content and from attributes, without some attributes in receipt such as errorMessage or logs, may add a new one is better than update getBlockByNumber?

yeah.
Btw, it's not a must-have one interface, it's helpful for ReBirth, Is it helpful for users? Be helpful for users is the function of ReBirth, isn't it?

Yeah, but this RPC only can return hash, content and from attributes, without some attributes in receipt such as errorMessage or logs, may add a new one is better than update getBlockByNumber?

yeah.
Btw, it's not a must-have one interface, it's helpful for ReBirth, Is it helpful for users? Be helpful for users is the function of ReBirth, isn't it?

Yes, so it's an better to have interface, if one block have 2w transactions, should send 2w+1 RPC request to CITA to get all informations, it support this interface, only need one RPC call, for both ReBirth and CITA will reduce expense.

In other words, I wonder to have a RPC that returns whole block data, it may also help someone need those infos.

In other words, I wonder to have a RPC that returns whole block data, it may also help someone need those infos.

Get your point.


How to see the stats?

Can you quickly explain how to show the stats? It is not obvious from the descriptions?

Hi Michael,
thank you for this question. Once you installed the add-on, the ThirdStats button appears in the toolbar. Clicking it opens a popup menu, which allows you to open the stats page by clicking on the title or on a single account:

I'll try to make that more clear in the add-on description and readme - thanks again for pointing that out.

👍
I simply did not see it, because I just updated thunderbird from  a really old version to 78 (the old version did not run on Mac Big Sur) and I did not realize this subtle change in the UI.

...especially, because I turned off labels:

I see, I'll take this into account when updating the description 👍🏻

I updated readme and add-on description. Merry christmas 🎄🔔


Add jck into the view

jck tests in nightly are parsed and stored. We just need to enable it to the view. It will show up as
a part of nightly run. For jck weekly, it will be harder as they trigger by the job itself not a part of a pipeline.

as we are only showing "By Pipeline" for now, jobs triggered by schedule do not show up
Once we add "By Version" view, then jobs triggered by schedule could also be monitored and show up ..

@smlambert can we close this since the PR has landed?

yes, fixed by https://github.com/AdoptOpenJDK/openjdk-test-tools/pull/192


Tab character not treated as whitespace when deleting

VSCode Version: 0.10.15-insider
OS Version: Tested on Fedora Linux 23 and Windows 10

<cursor><space><space>{
When pressing Ctrl+Delete in this situation only the spaces get deleted.
<cursor><tab>{
In this situation also the { character gets deleted, but it should behave exactly the same as in the first case.

It actually also deletes the { when there is only one space: <cursor><space>{
I've edited the original post, sorry for my mistake.

@jhasse We actually have three different possible implementations of ctrl+delete that we ship with to please everybody. Here is how you can switch to the other(s):
{ "key": "ctrl+delete", "command": "deleteWordStartRight", "when": "editorTextFocus" }

or
{ "key": "ctrl+delete", "command": "deleteWordEndRight", "when": "editorTextFocus" }

Awesome! deleteWordStartRight is what I'm looking for and also what I think should be the default. It's the same behavior as in Sublime Text and Visual Studio if I'm not mistaken?

PHPStorm: the whole line is deleted
Sublime Text 3: Everything to the left of the cursor is deleted, everything to the right is kept as is
Atom: Same as sublime

Are you on OS X? I think the keybindings are different there then on Windows / Linux.

Yes, I'm on OSX.

It is hard to pick a default that makes everybody happy, given some of our users come from an IDE brackground, some come from other text editors, and some are by now used to our default.
I suggest to leave the default as it is, and point to the alternatives in documentation.

Is there any other editor / IDE / ... though that behaves as VS Code?

Given other editors don't behave like this, please reconsider.


Remove all val<number> references in Tutorial

I'm going through the Roc Tutorial and it has me enter val1 in the Naming Things section, but I get the "Nothing is named val1 in this scope." error.
% roc repl

  The rockin’ roc repl
────────────────────────

Enter an expression, or :help, or :q to quit.

» "Hello World"

"Hello World" : Str
» val1

── UNRECOGNIZED NAME ───────────────────────────────────────────────────────────

Nothing is named `val1` in this scope.

4│      val1
        ^^^^

I'm on the latest nightly build.
% roc --version
roc nightly pre-release, built from commit afba365 on Fri Nov 17 09:08:42 UTC 2023

The auto declaring/naming with valX is a repl feature that has been removed. All references to it should be removed from the tutorial.

This issue has been resolved, there are no longer any references to val in the tutorial.


Preserve search and hash in redirect

Closes #123

Delays meta refresh with 1s to give JavaScript time to update it
Update meta refresh and link (canonical doesn't make any sense AFAIK) with search and hash
Use search and hash in scripted redirect

One job still fails but that seems to be a different issue:
https://travis-ci.org/jekyll/jekyll-redirect-from/jobs/176961793

What if the redirect URL already has a query?
I don't understand the motivation behind trying to modify <meta> tags with JS.

@pathawks we're talking a static generator right? I can't think of a situation where #{item_url} would have a query?
I agree modifying the refresh meta tag has not a ton of value, neither has modifying the link. If you have JavaScript, the location.replace() will do the job anyway. So I can remove that part.
But.. it do think it would should let the meta refresh at 1s to make sure JavaScript can handle te redirect before the browser does.

we're talking a static generator right?

Either it is important or it isn't.
A page could have been integrated into a section of another page. Perhaps the URL contains a hash of the section in the new page that contains the old content.
I feel like this greatly increases the complexity of the template, and I worry that there are some edge cases where problems could creep up.

What I meant is that the afaik #{item_url}always refers to the URL of a generated page as Jekyll constructs it and I don't think these ever come with a search or hash?
Sure, the it could be that the search and hash no longer serve a purpose on the new page, but in that case it wouldn't hearth anything either. It just wouldn't do anything.
In the meanwhile, if would still do anything... without this fix it doesn't let you.

What I mean is, if I had a page location.html and I remove it, and redirect it to about.html#location
With these new changes, if somebody lands on location.html?q=p#hash, it looks like they will be redirected to about.html#location?q=p#hash, which does not seem appropriate.

Ah, you mean when using redirect_to? Although afaik redirect_from is preferred when redirecting within the site and redirect_to is mostly used to redirect to external websites - I guess indeed you could use it internally as well and then potentially run into this issue.
I will make a change to accommodate.

All checks green, except still this odd one: https://travis-ci.org/jekyll/jekyll-redirect-from/jobs/177239657

Not your fault. Looks like it's time for us to stop testing against Ruby 1.9

@pathawks did you have a chance to have another look at this? @jekyllbot just staled #123 so I'd love to see this (updated and) merged.

Hi! Random First-Time User here.
Ran into the exact problem by @pathawks here where redirect-to with Hashes wont connect.
Example is visible here:

redirecting page
destination

Is there an existing workaround?

Not sure what happened here, but I think the ability to preserve the hash and query string when redirecting is pretty important.
For example, I have a page at /projects which I'm thinking about changing to /work. I can link directly to a certain section of /projects with a hash /projects/#open-source-contributions. If I have backlinks directly to that section, I don't want them to lose the hash when redirecting.
That being said, I understand the concerns outline here.
Perhaps there could be an additional flag in the frontmatter to preserve these?
redirect_from:
   - /projects/
redirect_preserve:
   - hash
   - query

No, adding options would increase complexity, not reduce it.
Any solution would require JavaScript which is far more complex than our existing code. I’m not convinced it’s worth the trade.

@pathawks i'm not arguing that it makes this less simple. all I'm saying is that it's a useful feature and something i would expect to be able to do with a tool that facilitates redirects. as you can see from the issues on the repo i'm not the only one who thinks this.
using a flag to enable the feature would prevent some of the potential drawbacks and edge-cases you've outlined as it would require users to specifically opt-in.

Thank you for the Pull Request. Code looks solid, but I don't think this feature is worth the complexity it adds to the plugin.


Make HandleInput automatic; move input events to interfaces

Remove OnKeyDown / OnMouseDown etc. from Drawable
Move to interfaces IHandleMouseEvents IHandleKeyboardEvents
Populate HandleInput on construction by doing checks for self implementing these interfaces.

Make sure we only cast to the interfaces on firing events, not when building queues (we can still use HandleInput to build the queue).
After this is done, we can likely make HandleInput protected or private.

See https://github.com/ppy/osu-framework/issues/952 for relevant discussion.

Since you did not close the issue after this discussion the situation is unclear for me.
What do you plan to do with input events?

Seems like people have differing opinions this one. For now let's leave it open for discussion until we get a chance to come to a conclusion.

Closing this as a majority of people liken usability of using the framework over cleanliness achieved by moving input methods to events. We can look back on the last two PRs and re-use them in the future if needed (they are in working order).


Missing line in tree

The tree renderable can generate a tree with missing lines. Seems to be on the first node of each branch, if the height is greater than one.

This is actually working as designed, although it looks a little weird.
When a node has children, the tree is shown directly beneath it. The the label occupies a rectangular region it may appear as if there is a gap in the lines due to the content being on the right.
I've added a border around the nodes to indicate what is going on.

In the future me might add another renderable in addition to the label which is shown under the label but to the right of the line.


td-agent pos file stuck - repeatedly sending same message

Check CONTRIBUTING guideline first and here is the list to help us investigate the problem.

fluentd or td-agent version.
td-agent 1.2.6
Environment information, e.g. OS.
ubuntu 16
Your configuration

<source>
  @type tail
  path /mnt/my_service/logs/*/*.log,/mnt/my_service/logs/*/*.err
  exclude_path []
  pos_file /mnt/td-agent/my_service.log.pos
  tag ecs.*
  encoding UTF-8
  read_from_head true
  keep_time_key true
  <parse>
    @type none
  </parse>
</source>

Your problem explanation. If you have an error logs, write it together.
Somtimes td-agent pos file gets stuck and repeated sends the same log message. The pos file hasn't changed for days (weeks?) and the same message is sent to our splunk instance about 300 times every 15 minutes.

strace
lock_gettime(CLOCK_MONOTONIC, {3052779, 197685144}) = 0
clock_gettime(CLOCK_MONOTONIC, {3052779, 197784009}) = 0
futex(0x181c694, FUTEX_WAIT_BITSET_PRIVATE, 20184511, {3052779, 497784009}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
futex(0x181c708, FUTEX_WAKE_PRIVATE, 1) = 0
clock_gettime(CLOCK_MONOTONIC, {3052779, 498121119}) = 0
clock_gettime(CLOCK_MONOTONIC, {3052779, 498268469}) = 0
clock_gettime(CLOCK_MONOTONIC, {3052779, 498362850}) = 0
futex(0x181c694, FUTEX_WAIT_BITSET_PRIVATE, 20184513, {3052779, 798362850}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
futex(0x181c708, FUTEX_WAKE_PRIVATE, 1) = 0
clock_gettime(CLOCK_MONOTONIC, {3052779, 798684403}) = 0
clock_gettime(CLOCK_MONOTONIC, {3052779, 798767924}) = 0
clock_gettime(CLOCK_MONOTONIC, {3052779, 798901626}) = 0
futex(0x181c694, FUTEX_WAIT_BITSET_PRIVATE, 20184515, {3052780, 98901626}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
futex(0x181c708, FUTEX_WAKE_PRIVATE, 1) = 0
write(6, "!", 1)                        = 1
futex(0x181bf30, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x181bf60, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x181bf64, FUTEX_WAIT_PRIVATE, 327012251, NULL) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x181bf9c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x181bf98, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1
futex(0x181bf30, FUTEX_WAKE_PRIVATE, 1) = 1
clock_gettime(CLOCK_MONOTONIC, {3052780, 99955482}) = 0
clock_gettime(CLOCK_MONOTONIC, {3052780, 100062428}) = 0
clock_gettime(CLOCK_MONOTONIC, {3052780, 100167064}) = 0
futex(0x181bf64, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x181bf60, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1
futex(0x181bf30, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x181c694, FUTEX_WAIT_BITSET_PRIVATE, 20184517, {3052780, 400167064}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
futex(0x181c708, FUTEX_WAKE_PRIVATE, 1) = 0
clock_gettime(CLOCK_MONOTONIC, {3052780, 400488911}) = 0
clock_gettime(CLOCK_MONOTONIC, {3052780, 400618866}) = 0
clock_gettime(CLOCK_MONOTONIC, {3052780, 400734293}) = 0
futex(0x181c694, FUTEX_WAIT_BITSET_PRIVATE, 20184519, {3052780, 700734293}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
futex(0x181c708, FUTEX_WAKE_PRIVATE, 1) = 0
clock_gettime(CLOCK_MONOTONIC, {3052780, 701079606}) = 0
clock_gettime(CLOCK_MONOTONIC, {3052780, 701207792}) = 0
clock_gettime(CLOCK_MONOTONIC, {3052780, 701294124}) = 0
futex(0x181c694, FUTEX_WAIT_BITSET_PRIVATE, 20184521, {3052781, 1294124}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
futex(0x181c708, FUTEX_WAKE_PRIVATE, 1) = 0
clock_gettime(CLOCK_MONOTONIC, {3052781, 1608077}) = 0
clock_gettime(CLOCK_MONOTONIC, {3052781, 1744775}) = 0
clock_gettime(CLOCK_MONOTONIC, {3052781, 1835858}) = 0
futex(0x181c694, FUTEX_WAIT_BITSET_PRIVATE, 20184523, {3052781, 301835858}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
futex(0x181c708, FUTEX_WAKE_PRIVATE, 1) = 0
clock_gettime(CLOCK_MONOTONIC, {3052781, 302177009}) = 0
clock_gettime(CLOCK_MONOTONIC, {3052781, 302306665}) = 0
clock_gettime(CLOCK_MONOTONIC, {3052781, 302404042}) = 0
futex(0x181c694, FUTEX_WAIT_BITSET_PRIVATE, 20184525, {3052781, 602404042},

pos file
/mnt/my_service/logs/components/component_1.err<PHONE_NUMBER>07c7f7<PHONE_NUMBER>681352

stat
File: '/mnt/my_service/logs/components/component_1.err'
  Size: 48461017        Blocks: 94664      IO Block: 4096   regular file
Device: fc00h/64512d    Inode: 6820690     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-10-17 18:34:24.329950592 +0000
Modify: 2018-11-22 02:16:02.884584491 +0000
Change: 2018-11-22 02:16:02.884584491 +0000
 Birth: -
111

Somtimes td-agent pos file gets stuck and repeated sends the same log message. The pos file hasn't changed for days (weeks?) and the same message is sent to our splunk instance about 300 times every 15 minutes.

It may be caused by read_from_head true if you used this option with log rotation.
https://docs.fluentd.org/input/tail#read_from_head explains such a senario:
If you want to tail the contents with * or strftime dynamic path, set this parameter to true.
 Instead, you should guarantee that the log rotation will not occur in * directory.

That could be why. I don't think the docs mentioned that when we put the config together.
| Instead, you should guarantee
This reads a bit strange, perhaps it should be  "In addition..."


[Bug/improvement]: Chips component is missing grid specifications where no input field is required (Material "Suggestion" chip)

Before submitting...

[X] I have searched for duplicate or closed issues.
[X] I have read the CONTRIBUTING document and my issue is following the guidelines.
[X] I have read the template completely before filling it in.

Context
Implementing the Chips component as standalone element without surrounding chips class container, results in missing grid specifications and as a result no horizontal grid padding applied when chips render over multiple rows
Current Behavior
Documentation suggests the possibility of using the chip element without a wrapping chips container element, however, using this approach results in no grid with inner padding applied to the chip elements, this results in chips being rendered with no horizontal padding between the elements in a state where chips are rendered over multiple lines
Current documentation only applies as a component in the forms components, after doing investigation on the Material Chips component documentation lists four different types of available Chips (Assist chip, Filter chip, Input chip, Suggestion chip).
As of the Materialize documentation, all types are available to use, however, in a use-case where only the suggestion chip should be applied (e.g. the "Suggestion" chip in the documentation example) and/or in a use-case where no input field is needed, building up the component with surrounding container with the chips class, results in rendering the input field dynamically within the constructor
Building up the chip component without the surrounding chips container, for creating a non-form chips use case, results in the previously mentioned styling issue where horizontal grid padding seems to be missing between the elements
Expected behavior
Implementing Chips component should render in the correct styling and should always be wrapped inside a chips container
Possible Solutions or Causes

Allow building up the chips container without constructing the input field, as result the grid styling would always be applied
Implement the rendering of the input element as option within the Chips component
Update documentation since Chips component is not necessarily a subcomponent within forms, but should be available as
standalone component or as a form component

Steps to reproduce
Scenario 1 - Use case without container

Implement chip elements without surrounding chips container class, make sure there are enough chips to render over multiple lines or check in responsive state
Chips component grid specifications are missing, since they only apply to the container element

Scenario 2 - Use case with container

Implement chip elements with the surrounding chips container class within the point of view where no input field is required
Input field is rendered within the chips container, since it's triggered in the constructor

Your Environment

Version used: v2.1.1
Browser Name and version:
Operating System and version (desktop or mobile):
Additional information you want to tell us:

Closing as fixed in v2.2.1


Update release process documentation

This is a new version for the documentation. It is based on the experience doing #5505 but with some tweaks.
Key assumptions

We expect to use PGP to verify commits and releases (done by github mostly out-of-the-box)
We expect to land most of the changes into master branch and pick the relevant commits once doing a release
We can backport changes to the major branches (at any time) without managing releases so we avoid a lot of conflict management

Some notes

This is based on the Node.js release process
I don't think that this process is perfect, but it is an starting point that we can shape in the next releases for v4 and v4 and onboarding new releasers 👍
I need to normalize the branches 4.x and 5.x in order to make this guide accurate (if you try to follow it in a fork o similar)
The current release process was not working (out-of-the-box) when @wesleytodd and I reviewed, but feel free to rescue things and propose more changes.
I will work on a separate Pr once this one is merged just to clarify how to do security releases, just to avoid having a mix guideline that can be more complex to follow.
From this PR is expected to extract a consolidated way on how to land PRs (see step 4) that we can isolate in a separate guide "how to land PRs" 👍

I just have one major question here, why are we not switching to using github release to do all the "hard work"? I guess we need less process than Node.js itself - this is how fastify is doing it it seems - and how I do handle my releases at work
A lot less maintenance, a lot less impact and manual workflow

clic on "generate new release"
choose your branche "v5"
setup your tag "v5.3.2"
clic on "generate release note" (update if you want)
done

We can discuss that when you want, but for me this would be simpler, and it would be the same process for all packages (not just express)

I just have one major question here, why are we not switching to using github release to do all the "hard work"?

We actually do it on the step 7 (partially). If we work directly with the major branches we depend a lot on what is included there in terms of changes (minor, patch...) and it will be hard to select what we ship and when (specially thinking on v5/v6/v7 when we only have partial features, etc...
Also this can be challenging if we want to do just a security release fast (patching) as we will need to create more ad-hoc branches, etc...

We can discuss that when you want, but for me this would be simpler, and it would be the same process for all packages (not just express)

Also I don't expect this process to be the same for other libraries in the project.

Also I don't expect this process to be the same for other libraries in the project.

that is my main issue, I am not seeing why this is not the same process. For me we should be able to deliver things quickly, like other framework that have multiple releases per months.
I am not seeing that we should create a new version every day but even if we have a security update, then let's push what's already merged (that was reviewed and validated, so it should be working)

Have y’all consider using the semantic-release tooling? I’m using it in Hubot.

Great work, but I am not really convinced that the Express way / Node.js way is the good one here.

I think I agree with @sheplu on this, but I have to say seeing it in this form (as a pr changing existing docs) makes it REALLY hard to fully grok the differences. IMO this conversation would be a lot more clear it we had a plain issue write up of the proposal before a PR version. Because I am not sure we really have clarity on the differences and what the ideal even is, I feel like we should start with a new issue and outline 2 or 3 options for workflows we can compare.

thanks for all the feedback! I will work in an issue to present this version and a simpler one, so we can have a better high level discussion.
Also I need to include an step to update the website: https://github.com/expressjs/expressjs.com/pull/1347/files


Allow template strings.

Currently, the template for a toast is specified by the templateUrl. It would be nice to be able to use template strings. This would also eliminate the need to use $templateCache.

I am not sure if I follow your issue.
You can override your templates by overriding the configuration.
The problem is, you cannot get rid of $templateCache. The Angular core team recommends you to always use $templateCache to avoid side effects.
For example in this library, if the template takes a bit longer than needed, it won't work (because I need to initialize toasts by hand). So if you don't have your templates cached, you will end with a first blank toast. Check angular/angular.js#12098.
That said, there is a workaround/hack to allow that, but I tried it and it needs to change lot of stuff along the way. I am planning to do major reworks for 2.0.0 but I am really busy with ui-bootstrap / ng-bootstrap so I can't barely give time to this.
Now, if I misunderstood your petition, please reword it :P

It is possible to use the template property of a directive to set an inline template (example from angular docs).
I'd like to be able to use toastr with the a configuration similar to:
var module = angular.module('app', ['toastr']);

module.controller('foo', ['toastr', function (toastr) {
  var ctrl = this;

  ctrl.name = 'foobarbaz';

  toastr.success('Hello world', 'foobar', {
    template: {
      toast: 'Hello {{ctrl.name}}!'
    }
  });
}]);

I see what you mean now. I will have to leave this on hold because I think I can do better for 2.0.0.
With the 2.0.0 version I want to lift the prohibition that I have with no supporting angular directives on messages / titles and if I do that, you will simply be able to:
toastr.success('Hello {{ctrl.name}}!');

I haven't give too much thought to that atm, but that is what I expect it to be.


Support/check Maven 3.9.0

Not out yet, but probably soon.
Changes to check/revisit:

https://issues.apache.org/jira/browse/MNG-7068
https://issues.apache.org/jira/browse/MNG-6972
https://issues.apache.org/jira/browse/MNG-6965

:warning: Action required to run GIB with Maven 3.9.0!
The changes of https://issues.apache.org/jira/browse/MNG-6965 lead to compatibiliy issues across different Maven versions.
Details can be found here: https://lists.apache.org/thread/wcbz8nsrrrdx8s8byoqpj99ksv73scqy
If you are using GIB 4.3.0 via extension.xml then you should be fine!
But if you are usingGIB 4.3.0 via pom.xml (as plugin or extension), then you are probably seeing this error with Maven 3.9.0:
[ERROR] Internal error: com.google.inject.ProvisionException: Unable to provision, see the following errors:
[ERROR]
[ERROR] 1) [Guice/NullInjectedIntoNonNullable]: null returned by binding at LocatorWiring
[ERROR]  but UnchangedProjectsRemover.downstreamCalculator(UnchangedProjectsRemover.java:43) is not @Nullable
[ERROR]   at LocatorWiring
[ERROR]   at UnchangedProjectsRemover.downstreamCalculator(UnchangedProjectsRemover.java:43)
[ERROR]       \_ for field downstreamCalculator
[ERROR]   at ClassRealm[extension>io.github.gitflow-incremental-builder:gitflow-incremental-builder:4.3.1-SNAPSHOT, parent: ClassLoaders$AppClassLoader@5cb0d902]
[ERROR]       \_ installed by: WireModule -> PlexusBindingModule
[ERROR]   at MavenLifecycleParticipant.unchangedProjectsRemover(MavenLifecycleParticipant.java:21)
[ERROR]       \_ for field unchangedProjectsRemover
[ERROR]   at ClassRealm[extension>io.github.gitflow-incremental-builder:gitflow-incremental-builder:4.3.1-SNAPSHOT, parent: ClassLoaders$AppClassLoader@5cb0d902]
[ERROR]       \_ installed by: WireModule -> PlexusBindingModule
[ERROR]   while locating MavenLifecycleParticipant
[ERROR]   while locating Object annotated with *

You can avoid this error by adding the plexus-utils dependency (but only for the plugin usage case as you cannot add a dependency to an extension):
<build>
    <plugins>
        <plugin>
            <groupId>io.github.gitflow-incremental-builder</groupId>
            <artifactId>gitflow-incremental-builder</artifactId>
            <version>4.3.0</version>
            <extensions>true</extensions>
            <configuration>
                <!-- ... -->
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.codehaus.plexus</groupId>
                    <artifactId>plexus-utils</artifactId>
                    <version>3.5.0</version>
                </dependency>
            </dependencies>
        </plugin>
        <!-- ... -->
    </plugins>
    <!-- ... -->
</build>

GIB 4.4.0 will probably declare that dependency on its own, which will unfortunately break the extension.xml usage case with Maven 3.8.7 or below.
Maven 3.8.8 might contain a fix for that (yet to be tested).

There will be a small GIB update 4.3.1 when Maven 3.9.0 is out, adding official support and test coverage.

Update: As can be seen by the two currently open Maven 3.9.0 update PRs that don't pass CI, there is a nice little compatibility issue.
I will have to consult the maven dev mailing list.
As things look right now, either pre-3,9 users have to make compromises or the other way around (3.9+).

I will have to consult the maven dev mailing list.

https://lists.apache.org/thread/wcbz8nsrrrdx8s8byoqpj99ksv73scqy
Let's see how that pans out.

Updated issue description with details of how to (partially) work around Maven 3.9.0 issues. Issue pinned.

Any ETA for when the new release without plexus dependency will be out?

Yes, it would be lovely to have maven 3.9.0 support, those pesky security scanners are going crazy over this old hardcoded dependency (MNG-6965).

I'll push a release later this week, sunday at the latest.
Sorry for the delay and thanks for your feedback!

I'll push a release later this week, sunday at the latest.
Sorry for the delay and thanks for your feedback!

GIB 4.4.0 is out, please give it a try. Thanks!

Looks good here, thanks a lot @famod !


Add DADA2 tutorial

Based on https://benjjneb.github.io/dada2/tutorial.html#merge-paired-reads and IWC workflow from @bernt-matthias
To do

[x] Write last section with Shiny-phyloseq
[x] Extend workflow with phyloseq
[x] Add tests for workflow

Hi Wonder Bérénice, wondre Matthias ! If you think relevant, I can make a pass and test the tuto. FYI, there is an intern in my marine lab who is using Galaxy dada2 tools to propose a ""simple"" (without using all Dada2 functionnalities) workflow to identifiy species from metabarcoding sequencing done on the lab.

@yvanlebras

using Galaxy dada2 tools to propose a ""simple"" (without using all Dada2 functionnalities) workflow

couldn't this be based on the IWC workflow? This should already remove a lot of the complexity of using the separate tools.
@bebatut .. I think we could or should advertise the IWC dada2 workflow more here. Maybe show how it's imported from dockstore and how it can be used.

@bebatut .. I think we could or should advertise the IWC dada2 workflow more here. Maybe show how it's imported from dockstore and how it can be used.

At the beginning of the tutorial, we can select either step-by-step or workflow. If workflow is selected, then a hands-on box shows how to get and run the workflow. In following section, outputs are commented as for step-by-step.

If workflow is selected,

Sure. Having a pointer to the IWC workflow might still be nice :)

Sure. Having a pointer to the IWC workflow might still be nice :)

It is there. It shows how to get the workflow from IWC and run it after

Congrats on tutorial number 400! :tada:

@yvanlebras

using Galaxy dada2 tools to propose a ""simple"" (without using all Dada2 functionnalities) workflow

couldn't this be based on the IWC workflow? This should already remove a lot of the complexity of using the separate tools.
@bebatut .. I think we could or should advertise the IWC dada2 workflow more here. Maybe show how it's imported from dockstore and how it can be used.

Unfortunately, we have several issues with "assignTaxonomy" tool notably a memory error on eu, and we thus use a "simple" blastn to go forward on this.

issues with "assignTaxonomy" tool notably a memory error

Have these been reported somewhere? Do you have some link?

Yes, reported using the "bug" report. No link for now but I will go back to it soon.

Error: Memory allocation failed.
In addition: Warning message:
In assignTaxonomy(seqs, ref, minBoot = 50, tryRC = FALSE, outputBootstraps = FALSE,  :
Some sequences were shorter than 50 nts and will not receive a taxonomic classification.
Execution halted

Can you please request more memory for this tool?
https://github.com/usegalaxy-eu/infrastructure-playbook/blob/master/files/galaxy/tpv/tools.yml


refactor: adapter-beequeue to deno

I don't know if this is worth the effort, it requires managing a redis instance for the queue, and may be better just to use aws sqs adapter, no real advantage here


unselect all button for selected images

You can change the UI via UIDelegate.

I've added a method named:deselectAllAssets.


Make a function that deletes and recreates pop.screen

The idea is to make it easy to start over the GUI, such as for when switching game states. Make it so you can pass false to stop deleting, and just re-create (will return reference to old).

Replaced this idea with a state machine on project-foxtrot.


Create Command Line Tools Lesson

Also includes combining data

A few ideas to kick around:

Plotting a model field on top of satellite data
Skew-T plotter

Completed #132


Azure bundle installation Error [ Bundle "AzurePimcoreBundle" is no valid bundle identifier]

I was trying to install latest pimcore using the steps you mentioned but i encountered an error regarding abandoned bundles in which a few bundles have suggestions and a few don't but in the first image i attached below you can check that the azure pimcore bundle is getting skipped which in-turn resulted in the error in the azure bundle enabling command.
Please fix this.

@KillDroner did you find a solution to this? I'm having the same issue

Found out why, still don't know how to make it work.
So I was running pimcore with Composer 2 and it was failing, installed Composer 1 and look at this message

Deprecation Notice: Class AzurePimcoreBundle\AzurePimcoreBundle\Controller\AzureSettingController located in ./src/Prodanet/AzurePimcoreBundle/Controller/AzureSettingController.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201
Deprecation Notice: Class AzurePimcoreBundle\Lib\Config located in ./src/Prodanet/AzurePimcoreBundle/Lib/Config.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201
Deprecation Notice: Class AzurePimcoreBundle\AzureBlobStorage\AzureBlobClient located in ./src/Prodanet/AzurePimcoreBundle/AzureBlobStorage/AzureBlobClient.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201
Deprecation Notice: Class AzurePimcoreBundle\AzureBlobStorage\LruArrayCache located in ./src/Prodanet/AzurePimcoreBundle/AzureBlobStorage/LruArrayCache.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201
Deprecation Notice: Class AzurePimcoreBundle\AzureBlobStorage\CacheInterface located in ./src/Prodanet/AzurePimcoreBundle/AzureBlobStorage/CacheInterface.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201
Deprecation Notice: Class AzurePimcoreBundle\AzureBlobStorage\StreamWrapper located in ./src/Prodanet/AzurePimcoreBundle/AzureBlobStorage/StreamWrapper.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201
Deprecation Notice: Class AzurePimcoreBundle\AzureBlobStorage\BlobException located in ./src/Prodanet/AzurePimcoreBundle/AzureBlobStorage/BlobException.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201
Deprecation Notice: Class AzurePimcoreBundle\EventListener\AzureListener located in ./src/Prodanet/AzurePimcoreBundle/EventListener/AzureListener.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201
Deprecation Notice: Class AzurePimcoreBundle\AzurePimcoreBundle\AzurePimcoreBundle located in ./src/Prodanet/AzurePimcoreBundle/AzurePimcoreBundle.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201

Basically it says that it won't work on Composer 2 due to not comply with psr-4 autoloading standard.
Do you know any fix for this @rohitrajv5 @KillDroner?

I'll have to look into it again i don't really remember how I get it to
work but I'm sure I'll have a document about it.
I'll let you know ASAP.
On Thu, 13 Jan, 2022, 4:22 am Emiliano Montesdeoca, <
@.***> wrote:

Found out why, still don't know how to make it work.
So I was running pimcore with Composer 2 and it was failing, installed Composer
1 and look at this message
[image: image]
https://user-images.githubusercontent.com/13499480/149235624-a1172a34-3689-4a70-8935-b295216ae5d2.png
Deprecation Notice: Class AzurePimcoreBundle\AzurePimcoreBundle\Controller\AzureSettingController located in ./src/Prodanet/AzurePimcoreBundle/Controller/AzureSettingController.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201
Deprecation Notice: Class AzurePimcoreBundle\Lib\Config located in ./src/Prodanet/AzurePimcoreBundle/Lib/Config.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201
Deprecation Notice: Class AzurePimcoreBundle\AzureBlobStorage\AzureBlobClient located in ./src/Prodanet/AzurePimcoreBundle/AzureBlobStorage/AzureBlobClient.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201
Deprecation Notice: Class AzurePimcoreBundle\AzureBlobStorage\LruArrayCache located in ./src/Prodanet/AzurePimcoreBundle/AzureBlobStorage/LruArrayCache.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201
Deprecation Notice: Class AzurePimcoreBundle\AzureBlobStorage\CacheInterface located in ./src/Prodanet/AzurePimcoreBundle/AzureBlobStorage/CacheInterface.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201
Deprecation Notice: Class AzurePimcoreBundle\AzureBlobStorage\StreamWrapper located in ./src/Prodanet/AzurePimcoreBundle/AzureBlobStorage/StreamWrapper.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201
Deprecation Notice: Class AzurePimcoreBundle\AzureBlobStorage\BlobException located in ./src/Prodanet/AzurePimcoreBundle/AzureBlobStorage/BlobException.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201
Deprecation Notice: Class AzurePimcoreBundle\EventListener\AzureListener located in ./src/Prodanet/AzurePimcoreBundle/EventListener/AzureListener.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201
Deprecation Notice: Class AzurePimcoreBundle\AzurePimcoreBundle\AzurePimcoreBundle located in ./src/Prodanet/AzurePimcoreBundle/AzurePimcoreBundle.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201
Basically it says that it won't work on Composer 2 due to not comply
with psr-4 autoloading standard.
Do you know any fix for this @rohitrajv5 https://github.com/rohitrajv5
@KillDroner https://github.com/KillDroner?
—
Reply to this email directly, view it on GitHub
https://github.com/rohitrajv5/pimcore-bundle-azure-blob-sync/issues/3#issuecomment-1011522298,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKRBTSKYZZQKKUPD623NLFDUVYA4VANCNFSM4VH3H2VQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

I'll have to look into it again i don't really remember how I get it to work but I'm sure I'll have a document about it. I'll let you know ASAP.
…
On Thu, 13 Jan, 2022, 4:22 am Emiliano Montesdeoca, < @.> wrote: Found out why, still don't know how to make it work. So I was running pimcore with Composer 2 and it was failing, installed Composer 1 and look at this message [image: image] https://user-images.githubusercontent.com/13499480/149235624-a1172a34-3689-4a70-8935-b295216ae5d2.png Deprecation Notice: Class AzurePimcoreBundle\AzurePimcoreBundle\Controller\AzureSettingController located in ./src/Prodanet/AzurePimcoreBundle/Controller/AzureSettingController.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201 Deprecation Notice: Class AzurePimcoreBundle\Lib\Config located in ./src/Prodanet/AzurePimcoreBundle/Lib/Config.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201 Deprecation Notice: Class AzurePimcoreBundle\AzureBlobStorage\AzureBlobClient located in ./src/Prodanet/AzurePimcoreBundle/AzureBlobStorage/AzureBlobClient.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201 Deprecation Notice: Class AzurePimcoreBundle\AzureBlobStorage\LruArrayCache located in ./src/Prodanet/AzurePimcoreBundle/AzureBlobStorage/LruArrayCache.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201 Deprecation Notice: Class AzurePimcoreBundle\AzureBlobStorage\CacheInterface located in ./src/Prodanet/AzurePimcoreBundle/AzureBlobStorage/CacheInterface.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201 Deprecation Notice: Class AzurePimcoreBundle\AzureBlobStorage\StreamWrapper located in ./src/Prodanet/AzurePimcoreBundle/AzureBlobStorage/StreamWrapper.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201 Deprecation Notice: Class AzurePimcoreBundle\AzureBlobStorage\BlobException located in ./src/Prodanet/AzurePimcoreBundle/AzureBlobStorage/BlobException.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201 Deprecation Notice: Class AzurePimcoreBundle\EventListener\AzureListener located in ./src/Prodanet/AzurePimcoreBundle/EventListener/AzureListener.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201 Deprecation Notice: Class AzurePimcoreBundle\AzurePimcoreBundle\AzurePimcoreBundle located in ./src/Prodanet/AzurePimcoreBundle/AzurePimcoreBundle.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201 Basically it says that it won't work on Composer 2 due to not comply with psr-4 autoloading standard. Do you know any fix for this @rohitrajv5 https://github.com/rohitrajv5 @KillDroner https://github.com/KillDroner? — Reply to this email directly, view it on GitHub <#3 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKRBTSKYZZQKKUPD623NLFDUVYA4VANCNFSM4VH3H2VQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub. You are receiving this because you were mentioned.Message ID: @.>

Any news?

I'll have to look into it again i don't really remember how I get it to work but I'm sure I'll have a document about it. I'll let you know ASAP.
…
On Thu, 13 Jan, 2022, 4:22 am Emiliano Montesdeoca, < @.> wrote: Found out why, still don't know how to make it work. So I was running pimcore with Composer 2 and it was failing, installed Composer 1 and look at this message [image: image] https://user-images.githubusercontent.com/13499480/149235624-a1172a34-3689-4a70-8935-b295216ae5d2.png Deprecation Notice: Class AzurePimcoreBundle\AzurePimcoreBundle\Controller\AzureSettingController located in ./src/Prodanet/AzurePimcoreBundle/Controller/AzureSettingController.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201 Deprecation Notice: Class AzurePimcoreBundle\Lib\Config located in ./src/Prodanet/AzurePimcoreBundle/Lib/Config.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201 Deprecation Notice: Class AzurePimcoreBundle\AzureBlobStorage\AzureBlobClient located in ./src/Prodanet/AzurePimcoreBundle/AzureBlobStorage/AzureBlobClient.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201 Deprecation Notice: Class AzurePimcoreBundle\AzureBlobStorage\LruArrayCache located in ./src/Prodanet/AzurePimcoreBundle/AzureBlobStorage/LruArrayCache.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201 Deprecation Notice: Class AzurePimcoreBundle\AzureBlobStorage\CacheInterface located in ./src/Prodanet/AzurePimcoreBundle/AzureBlobStorage/CacheInterface.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201 Deprecation Notice: Class AzurePimcoreBundle\AzureBlobStorage\StreamWrapper located in ./src/Prodanet/AzurePimcoreBundle/AzureBlobStorage/StreamWrapper.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201 Deprecation Notice: Class AzurePimcoreBundle\AzureBlobStorage\BlobException located in ./src/Prodanet/AzurePimcoreBundle/AzureBlobStorage/BlobException.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201 Deprecation Notice: Class AzurePimcoreBundle\EventListener\AzureListener located in ./src/Prodanet/AzurePimcoreBundle/EventListener/AzureListener.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201 Deprecation Notice: Class AzurePimcoreBundle\AzurePimcoreBundle\AzurePimcoreBundle located in ./src/Prodanet/AzurePimcoreBundle/AzurePimcoreBundle.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in /usr/share/php/Composer/Autoload/ClassMapGenerator.php:201 Basically it says that it won't work on Composer 2 due to not comply with psr-4 autoloading standard. Do you know any fix for this @rohitrajv5 https://github.com/rohitrajv5 @KillDroner https://github.com/KillDroner? — Reply to this email directly, view it on GitHub <#3 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKRBTSKYZZQKKUPD623NLFDUVYA4VANCNFSM4VH3H2VQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub. You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>
Any news?

I totally forgot about that, I have a document explaining how to use AWS bucket but not Azure blob. I guess I used AWS instead of Azure.


adding father if father already existing then new father added as forefather

need to give support for multiple father and mother

hello Pawnesh
Please provide me save_family.php file at any cast

Where is the save_family.php located?


Add force option on commands

Over the past month I have been working on setting up GARM instance and have ran into plenty of times where a --force would have come in very handy.
Examples:

(this happened many times accross 3 providers: k8s, gcp, openstack) Provider is unable to connect to infrastructure. Due to this the creation of a runner fails, but the delete method also tries to reach out to infrastructure and fails too, now I have a runner stuck on "pending_deleting" or "error" for which the retry loop will continue to attempt to delete, until connection is restored. I would like to be able to "force" it to delete the entry from the DB even if it didn't successfully delete from infrastructure. In this case since there is a network problem there was nothing to delete but even if something was created I can go to the infrastructure and do any manual deletion if needed.
Perhaps this is a different ask but: Org oauth2 token lost permission to the org, I need to delete the associated pools, but to delete the pools I need to delete the runners (Error: [DELETE /pools/{poolID}][400] DeletePool default  {Error:Bad Request Details:pool has runners}), but when I try to delete the runners I get error: Error: [DELETE /instances/{instanceName}][409] DeleteInstance default  {Error:Conflict Details:pool manager is not running for Org, Org manager is not running because of error failed to update tools for repo Org: fetching runner tools: GET https://api.github.com/orgs/Org/actions/runners/downloads: 403 Must have admin rights to Repository. so now I have a runner and a pool stuck and no way to force deletion of either.

Hi @Hdom !
In regards to 1), there is a --force-remove-runner|-f available to the runner remove command. In version 0.1.4, that command will transition the runner to pending_force_delete and will ignore any provider error when removing the runner.
In regards to 2), the limitation was intentional, to avoid situations in which a PAT mai expire or a runner may be executing a job, and someone tries to remove it. In such cases we don't really want to remove the runner, as that may cancel a potentially long running job, when the underlying runner just gets removed while executing.
But you are right, this does have the potential to put us in a situation where it's difficult to recover. I think we can have a procedure to purge a pool that has no chance to ever come back up due to having lost access to the entiry it was managing.
I will look into this.
For situations where you can get a new PAT, the quick fix is to replace the old one in the config. The pool should recover.

Oh man, I don't know how I missed that force flag, I swear I had looked at the help menu for the runner delete before and even tried adding a -f, maybe because I was using the 0.1.4-rc version of the cli.

I think I added this after RC1 (not sure). Also, sometimes I forget to properly change the help messages 😅 . But in 0.1.4 it should work. At least for ignoring provider errors. The PAT not having access is a different code path. Will need to see what the best way forward is for that one.

Added a PR to ddress this here:

https://github.com/cloudbase/garm/pull/231

That change adds a -b | --bypass-github-unauthorized to the CLI and a query arg to the API. This flag will work even if the pool manager is stopped due to an Unauthorized error.
If nothing really works and you want to remove the runner from the DB, you can specify both --force-remove-runner and the --bypass-github-unauthorized options. This will bypass the stopped pool and ignore the provider error.
Give it a shot and let me know.


new batching implementation

I made a new GL batching system. Works good, except it was not tested on legacy api, will test it later.
There is new class OpenGLQueue. It has a list of batch objects and one buffer with all geometry data. Queue collects draw calls from GLDrawBuf, converts their arguments to vertex data and save it in buffer. At the same time queue creates batch objects, which contains information about drawing operation (length of batch, offset in index buffer and texture). If the next draw call has the same type, as the previous, it uses the last batch and only increases its length value. At the end of frame queue flushes data: creates VBO and EBO, fills them, attaches to VAOs and draws all batches.

There is already OpenGLBatch class - via GLSupport.batch
Doesn't it do the same?

No. Previously vertex buffers were filling many times within a frame. Now there is one big buffer for all vertex data, filled one time per frame with few GL calls. OpenGLBatch class now is OpenGLQueue class with OpenGLBatch nested struct.

Merged.
Thank you!


Generalize AcquisitionDuration to any MR scan

Via @jcohenadad @ https://neurostars.org/t/why-should-acquisitionduration-and-repetitiontime-be-mutually-exclusive/21153

In the context of anatomical data (T2starw), we need to access the total acquisition time (a.k.a. “TA”) in order to compute SNR per unit time measures.

Our current definition of AcquisitionDuration is:

Duration (in seconds) of volume acquisition. Corresponds to DICOM Tag 0018,9073 Acquisition Duration. This field is mutually exclusive with RepetitionTime.

This could be made applicable to all MR scans by updating the term to:

Duration (in seconds) of volume acquisition. Corresponds to DICOM Tag 0018,9073 Acquisition Duration.

In the BOLD context, we can add the additional note "This field is mutually exclusive with RepetitionTime.".
Thoughts?

This might get trickier. I looked at the DICOM metadata from a few sequences (Siemens T1w MPRAGE, Siemens GRE), and the Tag 0018,9073 is not present. However, another one is (under 'private') and it does correspond to the volume acquisition duration (the infamous "TA"):

Given that this is under a private field, I fear there is no standardization across vendors about how total acquisition time is encoded in DICOM data. Feedback would be appreciated here.

FWIW, I looked at an enhanced Dicom from a Philips MPRAGE, and the 0018,9073 is there:

This file by @dangom shows 0051,100a as TotalAcqTime, so that's at least a vote of confidence. I can't find any declarations of this field in a DICOM conformance statement... in fact, they claim they support 0018,9073, but it's only under MR spectroscopy in some older statements. We would probably need to check both.
Looks like GE has its own "Acquisition Duration" and 0051,100a tags (via https://www.gehealthcare.com/-/media/1150764f8c7b41a79c134e1e87e03204.pdf?la=en-us; also
attached in case that URL goes dead):

Attribute Name
Tag
VR
VM

Store level of Functional Image
0051,100A
SL
1

Acquisition Duration
(0019,105A)
FL
1


feat(ui): add copy user ids feature in the flag targeting

@bimalgrg519, please fix the lint warnings.


Implicit final-ness of variables is not considered within isolated functions

Description:
Suppose we have a function like below:
    public isolated function getPetById(int id) returns models:Pet|PetNotFound {
        models:Pet[] pets = self.pets.filter(isolated function(models:Pet pet) returns boolean {
            return pet.id == id;
        });
        if pets.length() > 0 {
            return pets[0];
        }
        return error PetNotFound("No pet found for ID: " + id.toString());
    }

Here, id which is the function parameter is implicitly final. But the compiler warns within the function passed to filter() method saying that id is not isolated/non-immutable. Implicit final factor should be supported for ease of use + better user user experience with Ballerina. Otherwise, they will have to create final variables like below:
final int currentId = id;

with the parameter id passed in. And use the final variable within isolated functions, etc.
Steps to reproduce:
See description
Affected Versions:
Beta1 RC6

This happens only for parameters since they use a different flag to indicate finalness (FUNCTIONAL_FINAL). Other implicitly final variables can be accessed in anonymous isolated functions if their types are subtypes of readonly or isolated object {}.


Problem Including AltSoftSerial.h

Hello, I am trying to use this library for my PMS sensors and have run into a problem. I am using the modified AltSoftSerial Library as suggested. But when i try to compile i am getting this error.

Arduino: 1.6.5 (Windows 8.1), Board: "Arduino/Genuino Uno"
Build options changed, rebuilding all
In file included from C:\Program Files (x86)\Arduino\libraries\pms5003-master\src/pms.h:7:0,
from PMS5003_1.ino:3:
C:\Program Files (x86)\Arduino\libraries\pms5003-master\src/pmsConfig.h:37:27: fatal error: >AltSoftSerial.h: No such file or directory
#include <AltSoftSerial.h>
^
compilation terminated.
Error compiling.

Could you please help me as to what might be going wrong?
Thank you so much

AltSoftSerial is not installed.
Follow the link: https://www.arduino.cc/en/Guide/Libraries

Hi,
I can see AltSoftSerial installed when i go Sketch -> Include Library under the Contributed Libraries section. Also, when i manually add "#include <AltSoftSerial.h>" in the Simple01.ino it gives mea different set of errors like "'wakeupTime' is not a member of 'Pms5003'". The same error comes up after i manually changed "#include <AltSoftSerial.h>" to "#include <../../AltSoftSerial/AltSoftSerial.h> in pmsConfig.h. That tells me it is able to find the AltSoftSerial.h this way. The full text of the error is as follows:
`Arduino: 1.6.5 (Mac OS X), Board: "Arduino/Genuino Uno"
In file included from /Applications/Arduino.app/Contents/Java/libraries/pms5003/src/pms.h:6:0,
from Simple01.ino:3:
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:19:1: error: 'constexpr' does not name a type
constexpr inline bool unknown(tribool arg, unknown_t dummy = unknown_t());
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:19:1: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:25:2: error: 'constexpr' does not name a type
constexpr tribool() : value(unknown_v) {}
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:25:2: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:26:2: error: 'constexpr' does not name a type
constexpr tribool(bool v) : value(v ? true_v : false_v) {};
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:26:2: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:27:2: error: 'constexpr' does not name a type
constexpr tribool(unknown_keyword_t) : value(unknown_v) {}
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:27:2: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:28:2: error: 'constexpr' does not name a type
constexpr inline operator bool() const {
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:28:2: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:32:2: error: 'constexpr' does not name a type
constexpr inline tribool operator!() const {
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:32:2: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:41:1: error: 'constexpr' does not name a type
constexpr inline tribool operator&&(tribool lhs, tribool rhs) {
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:41:1: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:48:1: error: 'constexpr' does not name a type
constexpr inline tribool operator&&(tribool lhs, bool rhs) { return rhs ? lhs : tribool(false); }
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:48:1: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:49:1: error: 'constexpr' does not name a type
constexpr inline tribool operator&&(bool lhs, tribool rhs) { return lhs ? rhs : tribool(false); }
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:49:1: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:50:1: error: 'constexpr' does not name a type
constexpr inline tribool operator&&(unknown_keyword_t, tribool lhs) { return !lhs ? tribool(false) : tribool(unknown); }
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:50:1: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:51:1: error: 'constexpr' does not name a type
constexpr inline tribool operator&&(tribool lhs, unknown_keyword_t) { return !lhs ? tribool(false) : tribool(unknown); }
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:51:1: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:53:1: error: 'constexpr' does not name a type
constexpr inline tribool operator||(tribool lhs, tribool rhs) {
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:53:1: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:60:1: error: 'constexpr' does not name a type
constexpr inline tribool operator||(tribool lhs, bool rhs) { return rhs ? tribool(true) : lhs; }
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:60:1: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:61:1: error: 'constexpr' does not name a type
constexpr inline tribool operator||(bool lhs, tribool rhs) { return lhs ? tribool(true) : rhs; }
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:61:1: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:62:1: error: 'constexpr' does not name a type
constexpr inline tribool operator||(unknown_keyword_t, tribool lhs) { return lhs ? tribool(true) : tribool(unknown); }
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:62:1: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:63:1: error: 'constexpr' does not name a type
constexpr inline tribool operator||(tribool lhs, unknown_keyword_t) { return lhs ? tribool(true) : tribool(unknown); }
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:63:1: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:65:1: error: 'constexpr' does not name a type
constexpr inline tribool operator==(tribool lhs, tribool rhs) {
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:65:1: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:71:1: error: 'constexpr' does not name a type
constexpr inline tribool operator==(tribool lhs, bool rhs) { return lhs == tribool(rhs); }
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:71:1: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:72:1: error: 'constexpr' does not name a type
constexpr inline tribool operator==(bool lhs, tribool rhs) { return tribool(lhs) == rhs; }
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:72:1: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:73:1: error: 'constexpr' does not name a type
constexpr inline tribool operator==(unknown_keyword_t, tribool lhs) { return tribool(unknown) == lhs; }
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:73:1: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:74:1: error: 'constexpr' does not name a type
constexpr inline tribool operator==(tribool lhs, unknown_keyword_t) { return tribool(unknown) == lhs; }
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:74:1: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:76:1: error: 'constexpr' does not name a type
constexpr inline tribool operator!=(tribool lhs, tribool rhs) {
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:76:1: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:82:1: error: 'constexpr' does not name a type
constexpr inline tribool operator!=(tribool lhs, bool rhs) { return lhs != tribool(rhs); }
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:82:1: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:83:1: error: 'constexpr' does not name a type
constexpr inline tribool operator!=(bool lhs, tribool rhs) { return tribool(lhs) != rhs; }
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:83:1: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:84:1: error: 'constexpr' does not name a type
constexpr inline tribool operator!=(unknown_keyword_t, tribool lhs) { return tribool(unknown) != lhs; }
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:84:1: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:85:1: error: 'constexpr' does not name a type
constexpr inline tribool operator!=(tribool lhs, unknown_keyword_t) { return lhs != tribool(unknown); }
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:85:1: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:87:1: error: 'constexpr' does not name a type
constexpr inline bool unknown(tribool arg, unknown_t dummy) { return false; };
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/tribool.h:87:1: note: C++11 'constexpr' only available with -std=c++11 or -std=gnu++11
In file included from Simple01.ino:3:0:
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/pms.h:26:24: error: 'timeout' is not a type
static const decltype(timeout) timeoutPassive = 68;  // Transfer time of 1start + 32data + 1stop using 9600bps is 33 usec. timeoutPassive could be at least 34, Value of 68 is an arbitrary doubled
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/pms.h:26:31: error: ISO C++ forbids declaration of 'decltype' with no type [-fpermissive]
static const decltype(timeout) timeoutPassive = 68;  // Transfer time of 1start + 32data + 1stop using 9600bps is 33 usec. timeoutPassive could be at least 34, Value of 68 is an arbitrary doubled
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/pms.h:26:31: error: expected ';' at end of member declaration
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/pms.h:26:33: error: 'timeoutPassive' does not name a type
static const decltype(timeout) timeoutPassive = 68;  // Transfer time of 1start + 32data + 1stop using 9600bps is 33 usec. timeoutPassive could be at least 34, Value of 68 is an arbitrary doubled
^
In file included from Simple01.ino:3:0:
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/pms.h:27:20: error: 'ackTimeout' does not name a type
static const auto ackTimeout = 30U;                  // Time to complete response after write command
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/pms.h:76:40: error: ISO C++ forbids declaration of 'decltype' with no type [-fpermissive]
void setTimeout(const decltype(timeout) timeout);
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/pms.h:76:32: error: expected ',' or '...' before '(' token
void setTimeout(const decltype(timeout) timeout);
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/pms.h:77:11: error: 'timeout' is not a type
decltype(timeout) getTimeout(void) const;
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/pms.h:77:18: error: ISO C++ forbids declaration of 'decltype' with no type [-fpermissive]
decltype(timeout) getTimeout(void) const;
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/pms.h:77:18: error: expected ';' at end of member declaration
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/pms.h:77:2: error: 'int Pms5003::decltype(int)' cannot be overloaded
decltype(timeout) getTimeout(void) const;
^
In file included from Simple01.ino:3:0:
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/pms.h:26:15: error: with 'static const int Pms5003::decltype(int)'
static const decltype(timeout) timeoutPassive = 68;  // Transfer time of 1start + 32data + 1stop using 9600bps is 33 usec. timeoutPassive could be at least 34, Value of 68 is an arbitrary doubled
^
In file included from Simple01.ino:3:0:
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/pms.h:77:37: error: ISO C++ forbids declaration of 'getTimeout' with no type [-fpermissive]
decltype(timeout) getTimeout(void) const;
^
/Applications/Arduino.app/Contents/Java/libraries/pms5003/src/pms.h:79:20: error: 'wakeupTime' does not name a type
static const auto wakeupTime = 2500U;    // Experimentally, time to get ready after reset/wakeup
^
Simple01.ino: In function 'void setup()':
Simple01:15: error: 'wakeupTime' is not a member of 'Pms5003'
Simple01.ino: At global scope:
Simple01:21: error: 'lastRead' does not name a type
Simple01.ino: In function 'void loop()':
Simple01:25: error: 'n' does not name a type
Simple01:26: error: 'n' was not declared in this scope
Simple01:28: error: 'data' was not declared in this scope
Simple01:34: error: 'newRead' does not name a type
Simple01:36: error: 'newRead' was not declared in this scope
Simple01:36: error: 'lastRead' was not declared in this scope
'wakeupTime' is not a member of 'Pms5003'
This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
`
I tried it in both my Windows 10 laptop and MacBook Pro, with same errors. :(

You use very old Arduino, without support for C++11. Please upgrade.


Update comment in PR with the new results

Too many comments are generated on the PR, it would be nice to just update the last one

Feature added in https://github.com/zgosalvez/github-actions-report-lcov/pull/85


Added Favicon.ico tag  and attribute for social links.

Added link tag for favicon.ico and attribute(target="_blank") so that every social page opens in new tab

FixedClosing as fixed in PR ##11


ModuleNotFoundError: No module named '_tkinter'

I have some trouble with epub2txt:
$
python3.9 -m pip install -U epub2txt
Defaulting to user installation because normal site-packages is not writeable
Collecting epub2txt
  Downloading epub2txt-0.1.1-py3-none-any.whl (7.2 kB)
Collecting httpx<0.17.0,>=0.16.1
  Downloading httpx-0.16.1-py3-none-any.whl (65 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 65.6/65.6 kB 942.9 kB/s eta 0:00:00
Collecting ebooklib<0.18.0,>=0.17.1
  Using cached EbookLib-0.17.1.tar.gz (111 kB)
  Preparing metadata (setup.py) ... done
Requirement already satisfied: tqdm<5.0.0,>=4.56.0 in /private/var/mobile/Containers/Data/Application/5084B078-762C-4B3E-BAD8-69D1E6E9E6FF/Library/lib/python3.9/site-packa
ges (from epub2txt) (4.64.0)
Collecting logzero<2.0.0,>=1.6.3
  Downloading logzero-1.7.0-py2.py3-none-any.whl (16 kB)
Collecting absl-py<0.12.0,>=0.11.0
  Downloading absl_py-0.11.0-py3-none-any.whl (127 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 127.8/127.8 kB 2.2 MB/s eta 0:00:00
Requirement already satisfied: six in /private/var/containers/Bundle/Application/E7256739-57A8-4912-9120-41AE0D008AD6/a-Shell-mini.app/Library/lib/python3.9/site-packages
(from absl-py<0.12.0,>=0.11.0->epub2txt) (1.16.0)
Requirement already satisfied: lxml in /private/var/containers/Bundle/Application/E7256739-57A8-4912-9120-41AE0D008AD6/a-Shell-mini.app/Library/lib/python3.9/site-packages
 (from ebooklib<0.18.0,>=0.17.1->epub2txt) (4.7.1)
Collecting sniffio
  Downloading sniffio-1.2.0-py3-none-any.whl (10 kB)
Collecting httpcore==0.12.*
  Downloading httpcore-0.12.3-py3-none-any.whl (55 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 55.8/55.8 kB 1.5 MB/s eta 0:00:00
Collecting rfc3986[idna2008]<2,>=1.3
  Downloading rfc3986-1.5.0-py2.py3-none-any.whl (31 kB)
Requirement already satisfied: certifi in /private/var/containers/Bundle/Application/E7256739-57A8-4912-9120-41AE0D008AD6/a-Shell-mini.app/Library/lib/python3.9/site-packages (from httpx<0.17.0,>=0.16.1->epub2txt) (2021.10.8)
Collecting h11==0.*
  Downloading h11-0.13.0-py3-none-any.whl (58 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 58.2/58.2 kB 1.6 MB/s eta 0:00:00
Requirement already satisfied: idna in /private/var/mobile/Containers/Data/Application/5084B078-762C-4B3E-BAD8-69D1E6E9E6FF/Library/lib/python3.9/site-packages (from rfc39
86[idna2008]<2,>=1.3->httpx<0.17.0,>=0.16.1->epub2txt) (3.3)
Building wheels for collected packages: ebooklib
  Building wheel for ebooklib (setup.py) ... done
  Created wheel for ebooklib: filename=EbookLib-0.17.1-py3-none-any.whl size=38184 sha256=3eab60333cf9034f671300269fecd1fb43fea1e02ac314f9aa1155253f5af4e1
  Stored in directory: /private/var/mobile/Containers/Data/Application/5084B078-762C-4B3E-BAD8-69D1E6E9E6FF/Library/Caches/pip/wheels/b3/81/87/9b2b38976b783a8c2baffb72b320
d2af59f8da80e6cb6410fd
Successfully built ebooklib
Installing collected packages: rfc3986, logzero, sniffio, h11, ebooklib, absl-py, httpcore, httpx, epub2txt
Successfully installed absl-py-0.11.0 ebooklib-0.17.1 epub2txt-0.1.1 h11-0.13.0 httpcore-0.12.3 httpx-0.16.1 logzero-1.7.0 rfc3986-1.5.0 sniffio-1.2.0
[~shortcuts]$ epub2txt --help
Traceback (most recent call last):
  File "/var/mobile/Containers/Data/Application/5084B078-762C-4B3E-BAD8-69D1E6E9E6FF/Library/bin/epub2txt", line 5, in <module>
    from epub2txt.__main__ import main
  File "/var/mobile/Containers/Data/Application/5084B078-762C-4B3E-BAD8-69D1E6E9E6FF/Library/lib/python3.9/site-packages/epub2txt/__main__.py", line 11, in <module>
    from .browse_filename import browse_filename
  File "/var/mobile/Containers/Data/Application/5084B078-762C-4B3E-BAD8-69D1E6E9E6FF/Library/lib/python3.9/site-packages/epub2txt/browse_filename.py", line 9, in <module>
    import tkinter as Tkinter
  File "/private/var/containers/Bundle/Application/E7256739-57A8-4912-9120-41AE0D008AD6/a-Shell-mini.app/Library/lib/python3.9/tkinter/__init__.py", line 37, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named '_tkinter'
$

My environment does not allow GUI, so tkinter is not configured. Can you remove the tkinter dependency, making it a pure CLI tool? Thanks.

Thanks for reporting.
Indeed, epub2txt will open a tkinter GUI in some cases. However, this does not prevent epub2xt from being installed in a non-GUI envitonment. I tried installing epub2txt 0.1.1 in several ubuntu vps without a problem.
Nevertheless, I made a prerelease 0.1.2a0 available that will run without tkinter. You can try it with pip install epub2txt -U --pre.
Please let me know if 0.1.2a0 solves your problem.

Works perfectly now! Thanks a lot! 😀
I tested with many ebooks and it works like a charm!
BTW, can you add the option to support wildcards to convert multiple files at once?
Like this:
$ epub2txt -f *.epub

Or this:
$ epub2txt -f "textbook - chapter *.epub"

That's a good idea thanks for the suggestion.
I'll need a bit more time to test and implement it though. I will try to incoporate it into 0.1.2.


Access random path data in reply

Hi there,
I’m writing a mock for an OAuth2 authentication endpoint. According to the RFC the server must include the state parameter from the client in its response.
(So for the request GET https://server.com/auth?state=123&otherparams the server must include state=123 in its answer, directly in JSON or in the URL fragment via redirect.)
The spec also says that the state should be random.
Is there any way I can do this with nock? I don’t want to filter it out, because then parts of my library will complain that state is different. Of course I could somehow introduce a fixed state in tests, but I’d rather let nock do the work.
Thanks in advance!

Ah, never mind. I figured that I have access to the original URI, so I can just do querystring.parse(uri). Sorry.


Isolating Room Components with hapi dependencies

Describe the Issue
Room components(@Database, @Dao, @Entity) should be completely independent of hapi dependencies.
The primary reason is to maintain a better code structure as the implementation of the DAOs are created by room library.
This may help in support multiple FHIR versions (R4, R5) in future.
Another reason is to ensure our implementation is future-proof for Room's Kotlin Multiplatform support, introduced in version 2.7.0-alpha01 on May 1, 2024, and currently at version 2.7.0-alpha04.
Also FYI
Migrate to KMP Room - https://developer.android.com/training/data-storage/room/room-kmp-migration
Would you like to work on the issue?

Room components(@database, @dao, @entity) should be completely independent of hapi dependencies.

Can you elaborate what you mean by this? Our database API is a way for us to say "save this FHIR resource in our db" or "load this FHIR resource from our db", if it doesn't have dependency on HAPI FHIR what will the APIs do at all?
Regarding migration to kmp, first of all it's a big queestion if/when, but let's forget about that for a moment, how does this help with the migration? Is there anything in the migration guide you linked not doable or at least made more complicated by HAPI dependencies?