text:
Contract Pipeline

Summary

RFCs: $\emptyset$.
Categories: scripts.

Handles contract deployment, upgrades and stores it using Foundry script.
Changelog

MovementDeployer.s.sol - Script to handle deployment of all solidity contracts.

Testing
Relying on previous tests. Deployment is valid and stored values are valid.
Outstanding issues

parameters are currently hardcoded, we might want to add flexibility for upgrades.
Versioning is currently not supported.

Relying on previous tests. Deployment is valid and stored values are valid.

Can you expand?

This PR should be renamed something like "Contract Pipeline Deployment Scripts" for clarity. It doesn't include the actual automation, checks, etc., ofc.

If I run back-to-back deployments on Holesky naively, I get new proxies. The intended usage needs to be documented.
forge script -f https://ethereum-holesky-rpc.publicnode.com ./script/MovementDeployer.s.sol --legacy --broadcast
[⠊] Compiling...
[⠘] Compiling 79 files with 0.8.26
[⠒] Solc 0.8.26 finished in 3.94s
Compiler run successful with warnings:
Warning (2519): This declaration shadows an existing declaration.
   --> script/MovementDeployer.s.sol:119:56:
    |
119 |     function _storeAdminDeployment() internal returns (address admin) {
    |                                                        ^^^^^^^^^^^^^
Note: The shadowed declaration is here:
  --> script/MovementDeployer.s.sol:23:5:
   |
23 |     ProxyAdmin public admin;
   |     ^^^^^^^^^^^^^^^^^^^^^^^

Warning (2072): Unused local variable.
   --> script/MovementDeployer.s.sol:106:9:
    |
106 |         string memory a = json.serialize("move", deployment.move);
    |         ^^^^^^^^^^^^^^^

Warning (2072): Unused local variable.
   --> script/MovementDeployer.s.sol:107:9:
    |
107 |         string memory b = json.serialize("moveAdmin", deployment.moveAdmin);
    |         ^^^^^^^^^^^^^^^

Warning (2072): Unused local variable.
   --> script/MovementDeployer.s.sol:108:9:
    |
108 |         string memory c = json.serialize("staking", deployment.staking);
    |         ^^^^^^^^^^^^^^^

Warning (2072): Unused local variable.
   --> script/MovementDeployer.s.sol:109:9:
    |
109 |         string memory d = json.serialize("stakingAdmin", deployment.stakingAdmin);
    |         ^^^^^^^^^^^^^^^

Warning (2072): Unused local variable.
   --> script/MovementDeployer.s.sol:110:9:
    |
110 |         string memory e = json.serialize("stlMove", deployment.stlMove);
    |         ^^^^^^^^^^^^^^^

Warning (2072): Unused local variable.
   --> script/MovementDeployer.s.sol:111:9:
    |
111 |         string memory f = json.serialize("stlMoveAdmin", deployment.stlMoveAdmin);
    |         ^^^^^^^^^^^^^^^

Warning (2072): Unused local variable.
   --> script/MovementDeployer.s.sol:112:9:
    |
112 |         string memory g = json.serialize("mcr", deployment.mcr);
    |         ^^^^^^^^^^^^^^^

Warning (2072): Unused local variable.
   --> script/MovementDeployer.s.sol:113:9:
    |
113 |         string memory h = json.serialize("mcrAdmin", deployment.mcrAdmin);
    |         ^^^^^^^^^^^^^^^

Warning (2072): Unused local variable.
   --> script/MovementDeployer.s.sol:114:9:
    |
114 |         string memory i = json.serialize("timelock", deployment.timelock);
    |         ^^^^^^^^^^^^^^^

Warning (2018): Function state mutability can be restricted to pure
 --> script/helpers/Helper.sol:6:5:
  |
6 |     function s2a(bytes memory str) public returns (address addr) {
  |     ^ (Relevant source part starts here and spans across multiple lines).

Script ran successfully.

== Logs ==
  MOVE: deploying
  MOVE deployment records:
  proxy 0x80A4A809194d89D325229479ed02dEEB922caae4
  admin 0x006aB345C1081F4Dd014AF754AEFE5959C91bcBD
  STAKING: deploying
  STAKING deployment records:
  proxy 0x9D5f6E7C56c23D6cd2960A250F05A5431B171C63
  admin 0xf38a9783C6dE8bE85aD41877231630225d7605C6
  STL: deploying
  STL deployment records:
  proxy 0x8b4579B3B3f409b6F929c9C6fAf41C1f841d6507
  admin 0xeD9E92053B03215E95886b801A7C11C51137430e
  MCR: deploying
  MCR deployment records:
  proxy 0xDF3e5F48EA297E3474ABf4D3F3A8Bad9C295901B
  admin 0xb1BC25E99def9bB8e5d707E922C133267eA07933

## Setting up 1 EVM.

==========================

Chain 17000

Estimated gas price: 0.63325118 gwei

Estimated total gas used for script: 17649737

Estimated amount required: 0.01117671678193966 ETH

==========================
##
Sending transactions [0 - 8].
⠲ [00:00:01] [###################################################################] 9/9 txes (0.0s)##
Waiting for receipts.
⠴ [00:00:08] [###############################################################] 9/9 receipts (0.0s)
##### holesky
✅  [Success]Hash: 0x56d5255f27a3a159816b65694a877469a780b7f6d90ff0c9cef916387f00f784
Contract Address: 0x2fC44E40F1766d5Fa7244d5ccb15F9837c204270
Block: 2313672
Paid: 0.00114510684229164 ETH (1808298 gas * 0.63325118 gwei)

##### holesky
✅  [Success]Hash: 0x237f75de6e20bef1b1a4a59b783642cfdf429b7092d5d1a7786859502cf8c3aa
Contract Address: 0x0eF3Ed7f9C2A813E9Fb50fb898fdc9F15Efe3A04
Block: 2313672
Paid: 0.0009482588132351 ETH (1497445 gas * 0.63325118 gwei)

##### holesky
✅  [Success]Hash: 0x5492c225863551fa0a99b3c049c8b3e6db3070162984a32554e6d928c40066f5
Contract Address: 0x80A4A809194d89D325229479ed02dEEB922caae4
Block: 2313672
Paid: 0.00052918204782762 ETH (835659 gas * 0.63325118 gwei)

##### holesky
✅  [Success]Hash: 0x1c7cbd1609967c0ea6f7442e9ff8885af43e17ca947070d165a6f28570cfb906
Contract Address: 0x6b018aaB9dD55DCb287B848713fC5263Cc9EDF70
Block: 2313672
Paid: 0.00152987659177144 ETH (2415908 gas * 0.63325118 gwei)

##### holesky
✅  [Success]Hash: 0x1ceb6a1e43d71f2635a8b3501f4d4b6b7974229a828fbc9ea2aca33f8baf477f
Contract Address: 0x9D5f6E7C56c23D6cd2960A250F05A5431B171C63
Block: 2313672
Paid: 0.00045363708180716 ETH (716362 gas * 0.63325118 gwei)

##### holesky
✅  [Success]Hash: 0x5ad9c462f47d4d1ec5790137fab994df914b5fdd04e08712a459dacb2b06a576
Contract Address: 0xa9c363A99d24c9de8650EDEEeb5bDD8ffae26C5f
Block: 2313672
Paid: 0.0015126185973629 ETH (2388655 gas * 0.63325118 gwei)

##### holesky
✅  [Success]Hash: 0xa7302222e99d40d219d8917b2c9e73b1e62b786121222fc7088f7572324f4fc0
Contract Address: 0x8b4579B3B3f409b6F929c9C6fAf41C1f841d6507
Block: 2313672
Paid: 0.00063890801279094 ETH (1008933 gas * 0.63325118 gwei)

##### holesky
✅  [Success]Hash: 0xf4fa72cb7e6986d183ccb7dd9cd3b6de416122d74e9d5520832d9d403620da1e
Contract Address: 0x95092381eAF91804362D27F1f7aE6C642CDAA85F
Block: 2313672
Paid: 0.00117883886614788 ETH (1861566 gas * 0.63325118 gwei)

##### holesky
✅  [Success]Hash: 0x3eef916e2da01aed913900d11d6f5f8e6df5af96254914563d91f53b1201447f
Contract Address: 0xDF3e5F48EA297E3474ABf4D3F3A8Bad9C295901B
Block: 2313672
Paid: 0.00066105027355082 ETH (1043899 gas * 0.63325118 gwei)

==========================

ONCHAIN EXECUTION COMPLETE & SUCCESSFUL.
Total Paid: 0.0085974771267855 ETH (13576725 gas * avg 0.63325118 gwei)

Transactions saved to: /Users/l-monninger/dev/movement/protocol-units/settlement/mcr/contracts/broadcast/MovementDeployer.s.sol/17000/run-latest.json

Sensitive values saved to: /Users/l-monninger/dev/movement/protocol-units/settlement/mcr/contracts/cache/MovementDeployer.s.sol/17000/run-latest.json

l-monninger@Liams-MBP contracts % forge script -f https://ethereum-holesky-rpc.publicnode.com ./script/MovementDeployer.s.sol --legacy --broadcast
[⠊] Compiling...
[⠘] Compiling 79 files with 0.8.26
[⠒] Solc 0.8.26 finished in 3.88s
Compiler run successful with warnings:
Warning (2519): This declaration shadows an existing declaration.
   --> script/MovementDeployer.s.sol:119:56:
    |
119 |     function _storeAdminDeployment() internal returns (address admin) {
    |                                                        ^^^^^^^^^^^^^
Note: The shadowed declaration is here:
  --> script/MovementDeployer.s.sol:23:5:
   |
23 |     ProxyAdmin public admin;
   |     ^^^^^^^^^^^^^^^^^^^^^^^

Warning (2072): Unused local variable.
   --> script/MovementDeployer.s.sol:106:9:
    |
106 |         string memory a = json.serialize("move", deployment.move);
    |         ^^^^^^^^^^^^^^^

Warning (2072): Unused local variable.
   --> script/MovementDeployer.s.sol:107:9:
    |
107 |         string memory b = json.serialize("moveAdmin", deployment.moveAdmin);
    |         ^^^^^^^^^^^^^^^

Warning (2072): Unused local variable.
   --> script/MovementDeployer.s.sol:108:9:
    |
108 |         string memory c = json.serialize("staking", deployment.staking);
    |         ^^^^^^^^^^^^^^^

Warning (2072): Unused local variable.
   --> script/MovementDeployer.s.sol:109:9:
    |
109 |         string memory d = json.serialize("stakingAdmin", deployment.stakingAdmin);
    |         ^^^^^^^^^^^^^^^

Warning (2072): Unused local variable.
   --> script/MovementDeployer.s.sol:110:9:
    |
110 |         string memory e = json.serialize("stlMove", deployment.stlMove);
    |         ^^^^^^^^^^^^^^^

Warning (2072): Unused local variable.
   --> script/MovementDeployer.s.sol:111:9:
    |
111 |         string memory f = json.serialize("stlMoveAdmin", deployment.stlMoveAdmin);
    |         ^^^^^^^^^^^^^^^

Warning (2072): Unused local variable.
   --> script/MovementDeployer.s.sol:112:9:
    |
112 |         string memory g = json.serialize("mcr", deployment.mcr);
    |         ^^^^^^^^^^^^^^^

Warning (2072): Unused local variable.
   --> script/MovementDeployer.s.sol:113:9:
    |
113 |         string memory h = json.serialize("mcrAdmin", deployment.mcrAdmin);
    |         ^^^^^^^^^^^^^^^

Warning (2072): Unused local variable.
   --> script/MovementDeployer.s.sol:114:9:
    |
114 |         string memory i = json.serialize("timelock", deployment.timelock);
    |         ^^^^^^^^^^^^^^^

Warning (2018): Function state mutability can be restricted to pure
 --> script/helpers/Helper.sol:6:5:
  |
6 |     function s2a(bytes memory str) public returns (address addr) {
  |     ^ (Relevant source part starts here and spans across multiple lines).

Script ran successfully.

== Logs ==
  MOVE: deploying
  MOVE deployment records:
  proxy 0xa58A2d3e2758790D82EeA037f631Cb3B3294f7CF
  admin 0x17403E753AF2bCA605a7124dfAA341622077eA9E
  STAKING: deploying
  STAKING deployment records:
  proxy 0x2C5a0030EE52aB399052E414a49D503F89dEB1eA
  admin 0x049BD09f3c4D635A8BA04229bB3bDD76D3447bE2
  STL: deploying
  STL deployment records:
  proxy 0x64117df2D83E0FB56eD66923BA69db04F6A1Db39
  admin 0xAeb51cb845d55D889a9e5027a631199aFc862ab0
  MCR: deploying
  MCR deployment records:
  proxy 0x27BCB551F739E63f556EbB1792a7aF6bf8b58af7
  admin 0x69938308c7A72A524bf83671e977955967A2921d

## Setting up 1 EVM.

==========================

Chain 17000

Estimated gas price: 0.633251181 gwei

Estimated total gas used for script: 17649722

Estimated amount required: 0.011176707300821682 ETH

==========================
##
Sending transactions [0 - 8].
⠲ [00:00:00] [###################################################################] 9/9 txes (0.0s)##
Waiting for receipts.
⠴ [00:00:35] [###############################################################] 9/9 receipts (0.0s)
##### holesky
✅  [Success]Hash: 0x687d0ee4cb3bc659b62a86eb6fdd3291e907f7fa75a687d739a2180105abfcc7
Contract Address: 0xce5Ce43fCa9EbABd75B2b22031323c64Afa49F03
Block: 2313674
Paid: 0.001145106844099938 ETH (1808298 gas * 0.633251181 gwei)

##### holesky
✅  [Success]Hash: 0x97b4f4cbcae0d8cdfa24087c33d5b2d71a73ff370fbf5b889709622533f0a94c
Contract Address: 0xf9d0f288eAb168CE3D22B1D4B25993D41A021c0f
Block: 2313674
Paid: 0.000948258814732545 ETH (1497445 gas * 0.633251181 gwei)

##### holesky
✅  [Success]Hash: 0x10cbbc1c726debb5b4657e3e84f80d14a0a30fefd1283d8eaf22d844d1757a44
Contract Address: 0xa58A2d3e2758790D82EeA037f631Cb3B3294f7CF
Block: 2313674
Paid: 0.000529182048663279 ETH (835659 gas * 0.633251181 gwei)

##### holesky
✅  [Success]Hash: 0x76f4048a37de8f5b9d1b2854f7a534c2e1851d774c3bb62550a6772ec991e115
Contract Address: 0x0c807c18B1b26B336045cAA2B547498D053cA5EB
Block: 2313674
Paid: 0.001529876594187348 ETH (2415908 gas * 0.633251181 gwei)

##### holesky
✅  [Success]Hash: 0xc2f193e9d58562a811c797632cd43d5357fa3e42ff44bb81b4ddfcfea5cebe12
Contract Address: 0x2C5a0030EE52aB399052E414a49D503F89dEB1eA
Block: 2313674
Paid: 0.000453637082523522 ETH (716362 gas * 0.633251181 gwei)

##### holesky
✅  [Success]Hash: 0x05cd1d8ec9130065d616bc080bb43e9b3eaa7535490abd92a2a69ccdec4a0013
Contract Address: 0xaf2F35f2A03e149f290f3ca44CBF836E249B029D
Block: 2313675
Paid: 0.001512618599751555 ETH (2388655 gas * 0.633251181 gwei)

##### holesky
✅  [Success]Hash: 0xa6e2568414a3acd2d082c934fd2ad2aca9d0c7f8100e70c07fc07b7ac03d51ea
Contract Address: 0x64117df2D83E0FB56eD66923BA69db04F6A1Db39
Block: 2313675
Paid: 0.000638908013799873 ETH (1008933 gas * 0.633251181 gwei)

##### holesky
✅  [Success]Hash: 0x0ae01df1f6bf2430b3a5c6ac823feb01a8e4a819a772c4d9efeb807087d5c179
Contract Address: 0x043c15f2DA93a851c9718B5aDFb84F3f8016D0A2
Block: 2313675
Paid: 0.001178838868009446 ETH (1861566 gas * 0.633251181 gwei)

##### holesky
✅  [Success]Hash: 0x464a947d042ae57b6e63037ca20d8ee2eead6b0afbe76d6a4a4df2e1c11e3fc6
Contract Address: 0x27BCB551F739E63f556EbB1792a7aF6bf8b58af7
Block: 2313675
Paid: 0.000661042675580547 ETH (1043887 gas * 0.633251181 gwei)

==========================

ONCHAIN EXECUTION COMPLETE & SUCCESSFUL.
Total Paid: 0.008597469541348053 ETH (13576713 gas * avg 0.633251181 gwei)

Transactions saved to: /Users/l-monninger/dev/movement/protocol-units/settlement/mcr/contracts/broadcast/MovementDeployer.s.sol/17000/run-latest.json

Sensitive values saved to: /Users/l-monninger/dev/movement/protocol-units/settlement/mcr/contracts/cache/MovementDeployer.s.sol/17000/run-latest.json

For one shot, this appears to be correct, but we need some basic e2e checks.

@0xPrimata what are the objectives for this PR? As we've discussed elsewhere, it's not supposed to be the complete pipeline nor even the final scripts. How do we want to determine success?

@0xPrimata what are the objectives for this PR? As we've discussed elsewhere, it's not supposed to be the complete pipeline nor even the final scripts. How do we want to determine success?

I think that this is final once instead of scheduling a transaction, I call the safe API by proposing a transaction: https://docs.safe.global/sdk/api-kit#propose-a-transaction-to-the-service
Believe this is also blocked by the MOVEToken merge.

I think that this is final once instead of scheduling a transaction, I call the safe API by proposing a transaction: https://docs.safe.global/sdk/api-kit#propose-a-transaction-to-the-service

Yeah, so usage of Safe is underspecified. This pipeline work should last into next week at least. For the MOVEToken deployment--which is on a tighter timeline--I would go with whatever you're most comfortable with.

Head up @0xPrimata @l-monninger https://github.com/movementlabsxyz/movement/issues/703
I haven't investigated beyond trying to run Suzuka + bridge locally, will look deeper into it after getting L1 --> L2 E2E tests against framework done (working against commit right before 561 was merged, because local Suzuka + bridge works for that commit).

authors: 0xPrimata andygolay l-monninger


text:
Bridge: Refactor bridge logic and add the retry complete transfer Tx.

Summary

RFCs: Link to RFC, Link to RFC, or $\emptyset$.
Categories: any of protocol-units, networks, scripts, util, cicd, or misc.

This PR contains an important change in the relayer logic. To avoid all the duplicated code, the relayer loop has been changed to process only one direction from source to target blockchain.
Update the relayer logic to manage failed Complete transfer Tx and retry 5 times.
All the relayer logic is implemented.
Changelog

one direction relayer.
Failed Tx retry.
End transfer on Complete Tx event.
Add a method called child to get a monitoring stream copy that get chain events without adding a new pull task. The initial monitor pulling task is shared between all child monitors.
Add unhappy path test.
Remove relayer code from lib.rs and define specific files.
Do some cleaning

Testing

To run the happy and unhappy path unit test.
 RUST_BACKTRACE=1 cargo test --test relayer -- --nocapture --test-threads=1
Outstanding issues

The indexer Db logic hasn't been integrated. This part still need to be done.

This is part of #942 now so can close/

source: gharchive/pull-request

repo: movementlabsxyz/movement

license_type: permissive

license_source: github-api


text:
Stop bubble up of error on nullable list item

Fix case when there is a nullable null value in array item:
type Gizmo {
	id: ID!
	color: String!
}
type Query {
	gizmos: [Gizmo]!
}

{
  "gizmos": [
	  { "id": "GIZMO1", "color": "RED" },
	  null,
	  { "id": "GIZMO2", "color": "GREEN" }
  ]
}

@benzolium I rebased your PR as your other pr had created a conflict with go.sum

authors: benzolium pkqk

repo: movio/bramble

license: MIT


text:
build(cmake): add version and soversion to the built library

This makes the shared library usable when installed system-wide.
cubeb_VERSION and cubeb_VERSION_MAJOR are set when calling project(cubeb VERSION x.y.z)

Thanks!

repo: mozilla/cubeb

license: ISC


text:
Misleading EDN Parse error during map transaction and certain unicode characters

I'm not sure exactly what the best way to surface this is, but following the error messages led me down a long path.  The messages make it appear that the particular character is the problem, when in reality it was a quote that was opened and never closed in a previous operation . For example:
conn.transact(&mut sqlite, r#"[
        {:db/id 17592186049155, :artist/name "W}
        {:db/id 17592186049242, :artist/name "ö"}
]"#).unwrap();

Leads to an error pointing to the ö character, which led me down a path of removing each 'invalid' character, one by one:
thread 'test_big' panicked at 'called `Result::unwrap()` on an `Err` value: Error(EdnParseError(ParseError { line: 3, column: 47, offset: 97, expected: {"[12]", "\t", "nil", "[0-9]", "\r", "[", "0x", "#f", "[*!_?$%&=<>]", "\"", "true", "{", ";", ".", ",", "+", "...", "[2-9]", "}", "(", "\n", "[a-z]", "-", " ", ":", "[A-Z]", "#{", "0", "false", "[3]"} }), State { next_error: None, backtrace: None })', src/libcore/result.rs:859
note: Run with `RUST_BACKTRACE=1` for a backtrace.

If you finally get to the last instance, i.e.
conn.transact(&mut sqlite, r#"[
        {:db/id 17592186049155, :artist/name "W}
        {:db/id 17592186049242, :artist/name "o"}
]"#).unwrap();

Then we end up with an error pointing to the final bracket:
thread 'test_big' panicked at 'called `Result::unwrap()` on an `Err` value: Error(EdnParseError(ParseError { line: 4, column: 6, offset: 106, expected: {"\\tab", "\"", "\\\"", "[^\"]"} }), State { next_error: None, backtrace: None })', src/libcore/result.rs:859
note: Run with `RUST_BACKTRACE=1` for a backtrace.

If there was some kind of context in the error message pointing to the origin of the opened string it would save a ton of time.

This is a general problem with our rust-peg EDN grammar, but I don't see a filed ticket.  You get around this by annotating the grammar: https://github.com/kevinmehall/rust-peg#error-reporting.

And there's another issue here -- I expect we're not parsing Unicode correctly (again at the EDN level).

source: gharchive/issue

authors: bgrins ncalexan

repo: mozilla/mentat

license_source: bigquery


text:
PDF version support question

What version of PDF does pdf.js support (1.7 / 2.0) ? Is there any documentation and plans regarding version support ?

As far as I know we provide support until and including PDF 1.7; see https://github.com/mozilla/pdf.js/wiki/Enumeration-Assignments-for-the-Telemetry-Histograms. However, since PDF 2.0 is backwards compatible, most if not all functionality should just work, perhaps only the newly added functionality is not yet available.

authors: AleksandrovM timvandermeij


text:
Doesn't work with PDFs stored in Azure Blob Storage

Attach (recommended) or Link to PDF file here:
Access to fetch at 'https://MYSTORAGEACCOUNTNAME.blob.core.windows.net/MYCONTAINERNAME/JNJ-SAMPLE.pdf?st=2020-04-05T19%3A13%3A52Z&se=2020-04-05T19%3A28%3A52Z&sp=r&sv=2017-04-17&sr=b&sig=Y7LKmPfebtPHmzU8SFIo3IOzsuhVDTEV4w/4Sr%2BEeBI%3D' from origin 'http://localhost' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
I also have an embedded sas token.
    permission = BlobPermissions(read=True)
    sas_token = bbs.generate_blob_shared_access_signature(container_name=args.storage_container,
                                                            blob_name=blob_name,
                                                            start=now,
                                                            expiry=now + timedelta(minutes=15),
                                                            permission=permission)
    sas_url = bbs.make_blob_url(container_name=args.storage_container, blob_name=blob_name, sas_token=sas_token)

you can check out this github for reference on retreiving files form blob and converting to a sas url:
https://github.com/drcrook1/Azure_CustomVision_Blob_Connector/blob/master/src/main.py
It would be great to get this to work.

[...] has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

It sounds like https://github.com/mozilla/pdf.js/wiki/Frequently-Asked-Questions#faq-xhr is relevant here.

you can check out this github for reference on retreiving files form blob and converting to a sas url:
https://github.com/drcrook1/Azure_CustomVision_Blob_Connector/blob/master/src/main.py

Unfortunately the PDF.js bug tracker is probably not the best place to get help with Python coding.

As-is, it's unfortunately not entirely clear that this is a valid PDF.js issue; please note:

When opening an issue, you need to provide all of the information requested in https://github.com/mozilla/pdf.js/blob/master/.github/ISSUE_TEMPLATE.md

Please also see http://mozilla.github.io/pdf.js/getting_started/#introduction (emphasis mine):

The viewer is built on the display layer and is the UI for PDF viewer in Firefox and the other browser extensions within the project. It can be a good starting point for building your own viewer. However, we do ask if you plan to embed the viewer in your own site, that it not just be an unmodified version. Please re-skin it or build upon it.

you can check out this github for reference on retreiving files form blob and converting to a sas url:
https://github.com/drcrook1/Azure_CustomVision_Blob_Connector/blob/master/src/main.py

As-is, this issue is unfortunately not actionable for us. It looks like this is a regular CORS issue, but how to resolve this in combination with Azure is not something we can really help with. Unless more actionable information is provided, we're going to have to close this.

Hi @drcrook1 Have you fixed this issue ? I got the same issue.

authors: Snuffleupagus awesomeToan drcrook1 timvandermeij


text:
Content in some text widgets are not visible

Attach (recommended) or Link to PDF file here:
formulairecerfa90nov00-1.pdf
or here: http://mdph.cotesdarmor.fr/pdf/formulaires/formulairecerfa90nov00.pdf
Configuration:

Web browser and its version: Firefox nightly
Operating system and its version: Windows 10 pro

Steps to reproduce the problem:

Go to page 2:

Enter a number in each fields (the input is supposed to be a single number)
It's impossible to read what it has been entered, so it isn't possible to check that the inputs are correct and consequently the user will very likely use another pdf viewer.

What is the expected behavior? (add screenshot)

What went wrong? (add screenshot)

The naive solution would be to just decrease the vertical padding to e.g. 1px in https://github.com/mozilla/pdf.js/blob/70fc30d97c619de0f2fcb51e67bfdb1a46922725/web/annotation_layer_builder.css#L65
However, without running tests I suppose that could break other things and we may perhaps need to limit that to only input-elements or even just "short" fields!?

And very likely, at some point, in a particular case, 3px was a good value so setting it to 1px will fix this issue and likely will break another pdf.
For a "normal" text field I don't really see the point to have this padding or maybe it is only useful for comb fields.

Given that this issue seems to be (somewhat of) a special-case, how about simply using a CSS-class to set the padding to e,g, padding: 0 1px; specifically for textWidgetAnnotation-inputs where the width is e.g. shorter than 10 pixels?
That should be a very targeted fix, thus reducing the risk of regressing anything else in the process.

@timvandermeij, do you have an idea on what could be a good solution ? and maybe you could remember why you chose this 3.

I see that I introduced the 3px value in https://github.com/mozilla/pdf.js/commit/e686db250cdb37647f6ba9c05be6b26fc9a07ea6. Back then we didn't have the associated test yet, but I did add that later and I recall having used the same document for the development of this patch, so I'd say if https://github.com/mozilla/pdf.js/blob/master/test/pdfs/annotation-text-widget.pdf still renders correctly (i.e., very similar to Adobe Reader) then changing the 3px should be fine.

authors: Snuffleupagus calixteman timvandermeij


text:
Fix integration test "Stamp Editor Copy/paste from a tab to an other"

The integration test runs currently contain the following traceback in the logs:
Suite error: Stamp Editor Copy/paste from a tab to an other
  Message:
    ProtocolError: Runtime.callFunctionOn timed out. Increase the 'protocolTimeout' setting in launch/connect calls for a higher timeout if needed.
  Stack:
        at <instance_members_initializer> (file:///home/ubuntu/pdfjs/botio-files-pdfjs/private/ae7a2979558207a/node_modules/puppeteer-core/lib/esm/puppeteer/common/CallbackRegistry.js:89:14)
        at new Callback (file:///home/ubuntu/pdfjs/botio-files-pdfjs/private/ae7a2979558207a/node_modules/puppeteer-core/lib/esm/puppeteer/common/CallbackRegistry.js:93:16)
        at CallbackRegistry.create (file:///home/ubuntu/pdfjs/botio-files-pdfjs/private/ae7a2979558207a/node_modules/puppeteer-core/lib/esm/puppeteer/common/CallbackRegistry.js:19:26)
        at Connection._rawSend (file:///home/ubuntu/pdfjs/botio-files-pdfjs/private/ae7a2979558207a/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Connection.js:86:26)
        at CdpCDPSession.send (file:///home/ubuntu/pdfjs/botio-files-pdfjs/private/ae7a2979558207a/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/CDPSession.js:63:33)
        at #evaluate (file:///home/ubuntu/pdfjs/botio-files-pdfjs/private/ae7a2979558207a/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/ExecutionContext.js:353:50)
        at ExecutionContext.evaluate (file:///home/ubuntu/pdfjs/botio-files-pdfjs/private/ae7a2979558207a/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/ExecutionContext.js:268:36)
        at IsolatedWorld.evaluate (file:///home/ubuntu/pdfjs/botio-files-pdfjs/private/ae7a2979558207a/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/IsolatedWorld.js:96:30)
        at CdpFrame.evaluate (file:///home/ubuntu/pdfjs/botio-files-pdfjs/private/ae7a2979558207a/node_modules/puppeteer-core/lib/esm/puppeteer/api/Frame.js:335:43)
        at CdpFrame.<anonymous> (file:///home/ubuntu/pdfjs/botio-files-pdfjs/private/ae7a2979558207a/node_modules/puppeteer-core/lib/esm/puppeteer/util/decorators.js:94:27)

I have bisected this to #18313, and only now noticed that this was actually already present in the integration test run logs at http://54.241.84.105:8877/ae7a2979558207a/output.txt and http://54.193.163.58:8877/5ae7c79b8bea53b/output.txt in that PR. However, sadly this didn't actually make the integration tests fail (this is a bug in the bot scripts for which I'll make another issue).
The problem is that this test opens two pages, whereas the other tests always open just one. The test copies the image from page 1 to page 2 and then stops. This means that at the end of the test page 2 has focus, but in the afterAll handler we close page 1 before page 2, in other words: we attempt to close the page first that doesn't have focus.
Before this PR that wouldn't have been an issue, but now that the L10n logic waits for requestAnimationFrame that hangs page 1's tab because, until there is actually focus, no new request animation frame will come. This in turn causes the test to hang in the afterAll handler until the timeout happens, or if the user manually clicks the first tab in the browser.
One could argue that this is an issue in the PR, but on the other hand it was done like that for good reason and I also don't really see a better way. It seems easier to just change the test, since there is only one that actually suffers from this, to close the pages in reverse order so that we always close the tab with focus first, after which the other tab will automatically get focus and close too.

Hopefully Fluent itself can be updated to address what at least I consider a bug, as discussed in https://github.com/mozilla/pdf.js/pull/18313#discussion_r1649732857, by changing https://github.com/projectfluent/fluent.js/blob/fee2242049010f314345a7c3b7b91600df3a05fe/fluent-dom/src/dom_localization.js#L171-L172 into e.g.
this.windowElement?.cancelAnimationFrame(this.pendingrAF);
this.windowElement = null;
this.pendingrAF = null;

since that'd allow us to remove our requestAnimationFrame when destroying the l10n-class.

Hopefully Fluent itself can be updated to address what at least I consider a bug

Yes, I agree. For now we can work around this (fortunately in an easy manner) until Fluent implements this functionality, but it's indeed extra reason to implement this upstream in Fluent and not the projects using it.

authors: Snuffleupagus timvandermeij


text:
Display Custom Error Authorization Message

My requirement is to display that Custom Error message on pdf viewer that user is not authorized to see doc. But In pdf.js its going inside function UnexpectedResponseExceptionClosure and in pdf.worker.js at onError: function onError(status) ELSE part Status is coming as 500 and exception as UnexpectedResponseException: Unexpected server response (500) while retrieving PDF ....
I want to know where uts getting converted and how can I show exact error message which I am getting after hitting repositories?
Thanks in advance

I think you mean this: https://github.com/mozilla/pdf.js/blob/58329f7f92f9c9f5dd8a7e42caf6ba3afdd6911d/src/core/worker.js#L319
It's not really clear from the description what you want to do though, but that is the location where this exception is raised. I think you can replace that with your custom message.
Closing as answered.


text:
Hoe to make desire sidebar toogle in pdf.js

I just want to make desire toggle like this
url : https://user-images.githubusercontent.com/24714813/28520764-40887f06-708a-11e7-9ea3-229a524e5cc8.png

Invalid issue

authors: SOftEngrAtta yurydelendik


text:
Detect when web fonts are blocked via browser extention

Steps to reproduce the problem:

Download browser extension that allows web font blocking, e.g. Ublock Origin. Chrome Firefox
Enable setting to block web fonts
Open demo page https://mozilla.github.io/pdf.js/web/viewer.html (v.2.0.571) and see that fonts are rendered poorly:

For the demo, window.PDFViewerApplication.supportsDocumentFonts returns true, I would expect it to be false in this case.

For the demo, window.PDFViewerApplication.supportsDocumentFonts returns true, I would expect it to be false in this case.

That property exists (solely) for supporting the PDF.js version that's shipping in Firefox (it's always true in other builds), please see https://searchfox.org/mozilla-central/rev/e6a0a192ea8691f7eb466506301da73fabe8fd23/browser/extensions/pdfjs/content/PdfStreamConverter.jsm#323-327

Open demo page https://mozilla.github.io/pdf.js/web/viewer.html (v.2.0.571) and see that fonts are rendered poorly:

Since this is essentially just a (regular) web-page, how would it detect that fonts aren't being loaded (and without using really ugly/non-performant hacks)?

As already mentioned in https://github.com/mozilla/pdf.js/issues/9798#issuecomment-396352900, attempting to in general detect that fonts are blocked might not always be feasible and even trying to would slow down loading of every document opened with the default viewer, which really does not seem acceptable in general.
Furthermore PR #10539 might be somewhat relevant here as well, since it implemented a fallback for fonts that fail to load when the Font Loading API is being used.
All in all, it seems like closing this issue as WONTFIX would be appropriate here.

authors: Snuffleupagus websirnik


text:
Change canvasInRendering to a WeakSet instead of a WeakMap

Note how nowhere in the code canvasInRendering.get() is ever called, and that this structure is really only used to store references to <canvas> DOM elements.
The reason for this being a WeakMap is probably because at the time we weren't using core-js polyfills yet, and since there already existed a manually implemented WeakMap polyfill it was probably simpler to use that.

/botio test

Looks like a better choice to me too. Thanks!


text:
Slightly improve the BaseViewer.{firstPagePromise, onePageRendered, pagesPromise} functionality

Slightly improve the BaseViewer.{firstPagePromise, onePageRendered, pagesPromise} functionality
There's a couple of issues with this functionality:

The respective PromiseCapability instances are not being reset, in BaseViewer._resetView, when the document is closed which is inconsistent with all other state.
While the default viewer depends on these promises, and they thus ought to be considered part of e.g. the PDFViewer API-surface, they're not really defined in a particularily user-visible way (being that they're attached to the BaseViewer instance inline in BaseViewer.setDocument).
There's some internal BaseViewer state, e.g. BaseViewer._pageViewsReady, which is tracked manually and could instead be tracked indirectly via the relevant PromiseCapability, thus reducing the need to track state twice since that's always best to avoid.

Please note: In the existing implementation, these promises are not defined until the BaseViewer.setDocument method has been called.
While it would've been simple to lift that restriction in this patch, I'm purposely choosing not to do so since this ensures that any Promise handlers added inside of BaseViewer.setDocument are always invoked before any external ones (and keeping that behaviour seems generally reasonable).

Initialize the textLayerFactory once in BaseViewer.setDocument, rather than repeating it for every page
For reasons that I don't even pretend to understand, the textLayerFactory property is determined for every single page in the PDF document.
Given that the TextLayerMode should be consistent for all pages in a document, we obviously could/should define textLayerFactory just once instead.

/botio-linux preview

Preventing double state-tracking is always a good thing. Thanks!


text:
Don't attempt to structure clone unsupported types with workers disabled

Please refer to https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm
Based on that information, and manually testing our code, the implementation in cloneValue has the following shortcomings:

Attempting to clone functions is only prevented when they're part of an Object, but is currently allowed when they occur standalone.
Cloning of Symbols is currently not prevented, which it should be since the native structured clone algorithm throws.
Any disallowed types should be checked first, to reduce the risk of future changes accidentally allowing something that shouldn't be supported.

Given that only the Node.js tests, as run by e.g. GitHub Actions, actually trigger these code-paths running the full test-suite seem mostly like a waste of time.
/botio unittest

Looks good!


text:
[GeckoView] Avoid unused outline, attachments, and layers fetching

Currently there's no UI for this functionality in the GV-viewer, however we still call the API methods. This potentially leads to a bunch of worker-thread parsing, for PDF documents with these features, despite the result being completely unused.
Given that mobile devices are usually more resource constrained than desktop/laptop computers, not to mentioned battery life, we can avoid doing work that'll just be ignored anyway.

/botio-linux preview


text:
Renderer tests 2

Attempting to land renderer tests again -- a few failures.

Coverage increased (+0.2%) to 42.34% when pulling bd5cad88bb23b4596bcd828191bb1938b5cf12fa on jsantell:renderer-tests-2 into b93be0a172d6522247627d71e8fd887c21759a54 on mozilla:master.

Coverage increased (+0.2%) to 42.362% when pulling f95ad9cd19053fa4266e56670e57aaef6a6d7420 on jsantell:renderer-tests-2 into b93be0a172d6522247627d71e8fd887c21759a54 on mozilla:master.

Coverage increased (+0.1%) to 42.317% when pulling a041c198418cb541662993fe429ff1c5b7867b07 on jsantell:renderer-tests-2 into 094ced179d50d1a0a3483937c972193bc573fbac on mozilla:master.

Coverage increased (+0.2%) to 42.473% when pulling 265af0079b0159a53f05f1ea4ba38b5b6eaf835c on jsantell:renderer-tests-2 into 15009dbe9a3f05bb9db8694a6cee496f31533bdd on mozilla:master.

So after some digging, it looks like we get an exit code of 3221225477 on windows, which may be from calling require('babel-register')() (https://github.com/electron/electron/issues/3570) to transpile app code, which may be related to running it as an npm script (https://github.com/sass/node-sass/issues/1283).
On Linux on CI, it just fails with error code 1.
No idea.

Coverage increased (+0.2%) to 42.519% when pulling dc6c03d54ae2e39bc83395ab4bdc6e974d3b8580 on jsantell:renderer-tests-2 into 15009dbe9a3f05bb9db8694a6cee496f31533bdd on mozilla:master.

coverage increased, we should land this

Not using babel in electron-mocha doesn't fix failures.

Running renderer tests that does not use any of our application code or babel still results in exit code 1 on linux, and passes on Windows, but the test doesn't even run on Windows somehow.

Coverage increased (+0.3%) to 42.655% when pulling 50e4116c862b915c99c994a8fe8a7bb0ed8dd9ce on jsantell:renderer-tests-2 into 15009dbe9a3f05bb9db8694a6cee496f31533bdd on mozilla:master.

Coverage increased (+0.2%) to 42.6% when pulling e25cfaa051a7849e5b4311d5c9a3dc6ec7d577a2 on jsantell:renderer-tests-2 into 62c589554bcfbfefc723d9b3e7c89f66f3bacb25 on mozilla:master.

Coverage increased (+0.2%) to 42.6% when pulling 08d845baf61186f4d1e3e553b383d51cdb68ca18 on jsantell:renderer-tests-2 into 62c589554bcfbfefc723d9b3e7c89f66f3bacb25 on mozilla:master.

Coverage increased (+0.1%) to 41.917% when pulling 4faaa9e36bb5f9addbb84b3a24b8b6f88585a31f on jsantell:renderer-tests-2 into 0cf32f9b604df976efef5d6017cfc997b9f86974 on mozilla:master.

Failing with same error as on CI on local windows install:
 renderer - sanity checks
    ΓêÜ has access to expected globals
    ΓêÜ renders basic components

  2 passing (322ms)

Error: Object has been destroyed
    at Error (native)
    at EventEmitter.webContents.send (C:\Users\IEUser\Dev\tofino\.electron\resources\electron.asar\browser\api\web-contents.js:80:17)
    at EventEmitter.<anonymous> (C:\Users\IEUser\Dev\tofino\.electron\resources\electron.asar\browser\guest-view-manager.js:140:28)
    at emitOne (events.js:101:20)
    at EventEmitter.emit (events.js:188:7)
Error: Object has been destroyed
    at Error (native)
    at EventEmitter.webContents.send (C:\Users\IEUser\Dev\tofino\.electron\resources\electron.asar\browser\api\web-contents.js:80:17)
    at EventEmitter.<anonymous> (C:\Users\IEUser\Dev\tofino\.electron\resources\electron.asar\browser\guest-view-manager.js:140:28)
    at emitOne (events.js:101:20)
    at EventEmitter.emit (events.js:188:7)
Build failed.
Error: Child process C:\Users\IEUser\Dev\tofino\node_modules\.bin\electron-mocha.cmd exited with exit code 3221225477
    at ChildProcess.<anonymous> (C:\Users\IEUser\Dev\tofino\build\utils.js:9:1823)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:204:12)

npm ERR! Windows_NT 10.0.10586
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "test"
npm ERR! node v6.2.0
npm ERR! npm  v3.8.9
npm ERR! code ELIFECYCLE
npm ERR! tofino@0.1.0 test: `cross-env NODE_ENV="production" nyc -s node build/main.js --test`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the tofino@0.1.0 test script 'cross-env NODE_ENV="production" nyc -s node build/main.js --test'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the tofino package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     cross-env NODE_ENV="production" nyc -s node build/main.js --test
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs tofino
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls tofino
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     C:\Users\IEUser\Dev\tofino\npm-debug.log

and same with linux (same error as CI)

Windows and Linux was failing due to passing in a custom env (with ELECTRON_PATH) into the electron-mocha process, which spawns its own electron process, which something requires a default/current environment (and since the electron-mocha process we use a custom env, we clobber that.)
Fixed via env: Object.assign({}, process.env, { ELECTRON_PATH: getElectronPath() }).
Linux now working (I think).
Windows is failing due to a "Object has been destroyed" error fired by something in the main process, after all tests pass, and the electron app is in the process of being destroyed. Trying to ignore this error doesn't help. Forcing process.exit(code) when mocha is done results in an OOM. Looking into ways of waiting/draining events over IPC before exiting the app/process

Coverage increased (+0.1%) to 41.89% when pulling 2777bd86231976b46447d7d6f82a439b0bab0445 on jsantell:renderer-tests-2 into b94c5b115446fec8ae31ed92b3e6b2a8cd794faf on mozilla:master.

Coverage increased (+0.4%) to 42.152% when pulling 47586a0aa192e003365768b82cfedc73b99c7d08 on jsantell:renderer-tests-2 into b94c5b115446fec8ae31ed92b3e6b2a8cd794faf on mozilla:master.

r+

Coverage increased (+0.3%) to 42.095% when pulling 2faf6d8fa16ebc9be7348a59af3a27bb3ee19b44 on jsantell:renderer-tests-2 into b94c5b115446fec8ae31ed92b3e6b2a8cd794faf on mozilla:master.

authors: coveralls jsantell victorporof

repo: mozilla/tofino


text:
Abby placeholder text for Abby bio

preliminary bio for @acabunoc, until she comes around to providing a real one.

Thanks @Daniel-Mietchen & @Lettuceman44!
Sorry things have been busier here than I expected :) Daniel - great bio :+1: :100:

authors: Daniel-Mietchen acabunoc

license: mit


text:
[WIP] Accept all input via params

Firstly, this is an exploration of ideas in the form of code changes so please do not actually merge this. It is intended for discussion only. If any of these sound good, I'm happy to work them into separate PRs.
Purpose: I'm working on adapting this to be able to create a web UI version. Ideally I would like to be able to reuse the entirely of the script but if that isn't possible then it would be nice to reuse as much of the logic as possible to allow for improvements to be synced.
Proposed Changes:

Adding param for the resource account/auto attendant/call queue to visualize. Apart from the fact that Out-GridView isn't supported on all platforms, this allows me to pull the desired object outside of the script and pass it in.
Adding params for all auto attendants/call queues. Similar to 1 above, namely being able to fetch it external to the script, I think using something like the GetAaForAppInstanceId or GetCqForAppInstanceId functions could speed up your script for deeply nested cases since it will pull them once instead of every time.
Refactor logic into functions. This is a bit of an example for how I think it might be possible to reduce the line count (CreateAfterHoursCheckNode is a good example) and simplify some of the logic (CreateHolidaySubgraph could actually be refactored again into a more generic CreateCallFlowSubgraph function) but also a bit of a plan B for me if 1 & 2 don't fit with your vision.

Questions/Outstanding Items:

Was there a reason that you weren't using functions or didn't want to have a generic CreateCallFlowSubgraph type function?
My API can't access the MsOnline api, which impacts the calls to Get-MsolUser and Get-MsolGroup. I was thinking I could replace the Get-MsolUser calls with Get-CsOnlineUser and then also pass them in as a param with a lookup function similar to Get{Aa,Cq}ForAppInstanceId (maybe GetUserForObjectId) but that doesn't cover the groups which I will need to still thinking about.

Hi @pvaillant . Thanks a lot for the feedback and the suggestions. I am not a pro dev, so please excuse me if there are some rookie mistakes. I also do not know how PRs etc. work on GitHub since I only ever uploaded my own code.

I agree that adding a param for a specific resource account makes sense.
I don't really understand what you mean here. Could you please try to explain it to me in a different way?
No, there was no reason. I've written functions before but I'm only doing PowerShell since about 3 years so I'm still learning. I've updated the script in my repo. It can now create call flows for either AAs or CQs at the top level. I've also put all the stuff for the CQs in a function.

The whole thing was merely an experiment before. I wanted to see if I can pull it off. So, I started scripting and kept adding stuff to the script to capture more and more different config types. It got a little out of hand and overcomplicated.
I will look into creating more functions for the different operations inside the script. My vision is that you can also specify how deeply you want to go on nested call flows via a parameter.
Can your API use AzureAD Module? For a CQ you can have individual agents, a Teams Channel or an M365 Group. The M365 group doesn't necessarily need to be teams enabled or can even be a security group. I believe that you won't be able to find those groups via MicrosoftTeams Module alone.

I think it's a great concept and the hardest part is definitely getting that first version done. I'm happy to help where ever I can, whether it's with GitHub-isms or with the actual coding, so let me know if there's something you'd like me to do.
RE 2, if you take a look at https://github.com/pvaillant/M365CallFlowVisualizer/blob/accept-all-input-via-params/CallFlowVisualizer.ps1#L43 the function abstracts the lookup of the auto attendant so that it can use the -allAutoAttendants parameter (if provided) or call Get-CsAutoAttendant a maximum of once ever rather then possibly multiple times depending on if there's a menu that forwards in the holiday, after hours or default call flow. You can see it in action at https://github.com/pvaillant/M365CallFlowVisualizer/blob/accept-all-input-via-params/CallFlowVisualizer.ps1#L88
For my purpose, you can imagine that I'm calling the script something like this:
$autoAttendants = Get-CsAutoAttendant
$callQueues = Get-CsCallQueue
$appInstances = Get-CsOnlineApplicationInstance
$ra = Get-CsOnlineApplicationInstance $requestedResourceAccount
$mermaid = ./CallFlowVisualizer.ps1 -resourceAccount $ra -allAutoAttendants $autoAttendants -allCallQueues $callQueues -allApplicationInstances $appInstances

Which actually reminds me, it would be great to also have a param to control whether to write the diagram to a file or return it instead. It would also be nice to be able to pass a single Auto Attendant or Call Queue object rather than the resource account and have the resulting diagram include all resource accounts that are associated.
I love the idea of a depth parameter! I think if there was a general call flow visualizer function, it should be fairly trivial to include a 'depth' argument that incremented on recursive calls and stop once the maximum was reached.
RE AzureAD, I'm going to try to see what's possible. I may need to add a switch param to not resolve the groups and just write out the IDs and then do something outside the script to resolve them. My plan is to get the mermaid diagram into the browser and I know I can call the MS Graph to resolve group IDs there.

Hi @pvaillant I made some changes to the script logic. It now accepts an identity of a call queue or auto attendant or can also be called by specifying the name of an AA or CQ as well as the type (since an AA could theoretically have the same display name as a CQ, type is needed as well, if not called by unique identity). Whether or not to show nested call flows can now also be controlled by a paramter. The script logic should now support indefinite nested voice apps. I also created a param to disable saving into a file or to use a custom file path. Let me know what you think.

authors: mozziemozz pvaillant


text:
WiFi connects once after channel change.

Describe the bug
On the D1 mini board I got, Gravitymon doesn't connect to WiFi unless I change the AP's channel. After I do, it connects once, and then, after turning off and on, stops connecting again, until the next channel change.
To Reproduce
Steps to reproduce the behavior:

Flash Gravitymin v 1.3.0 to a D1 mini with BrewFlasher
Set up the AP name and password
Try connecting, while watching the logs on the COM port; the results look like this:scandone
state: 0 -> 2 (b0)
.state: 2 -> 3 (0)
state: 3 -> 5 (10)
add 0
aid 31
cnt
connected with LVU, channel 8
dhcp client start...
.........................................................................................pm open,type:2 0
........................................     22295 E: WIFI: Failed to connect to wifi 7
22427 W: WIFI: Failed to connect to first SSID LVU.
22428 W: WIFI: Failed to connect to any SSID.
22464 I: Main: Setup completed.
Fatal exception 28(LoadProhibitedCause):
 epc1=0x40215aaf, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000058, depc=0x00000000
--------------- CUT HERE FOR EXCEPTION DECODER ---------------
Exception (28):
epc1=0x40215aaf epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000058 depc=0x00000000

>>>stack>>>
ctx: cont
sp: 3fff1c40 end: 3fff1e40 offset: 0190
3fff1dd0:  3fff0948 3fff09dc 3fff09ec 3fff1e84
3fff1de0:  3fffdad0 3fff0a3c 3fff09a4 40221470
3fff1df0:  3fffdad0 3fff0948 3fff09a4 4021fc50
3fff1e00:  c0000000 40137d85 feefeffe 40215c25
3fff1e10:  feefeffe feefeffe 00000001 4020c757
3fff1e20:  3fffdad0 00000000 3fff1e70 4022d0f8
3fff1e30:  feefeffe feefeffe 3ffe8648 40100399
<<<stack<<<
 --------------- CUT HERE FOR EXCEPTION DECODER ---------------

 ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 3460, room 16
tail 4
chksum 0xcc
load 0x3fff20b8, len 40, room 4
tail 4
chksum 0xc9
csum 0xc9
v000b6590
~ld

Change the APs channel.
The connection gets established, until next time.

Expected behavior
Wifi connection gets established every time after powering the device on
Software:

Platform: esp8266
Version 1.3.0

Error 7 is probably due to incompatibility with your wifi network. Check the troubleshooting section for the needed preconditions for an esp8266.

All conditions are met. But the router is dual-band, with the same AP name for 2.4 and for 5 GHz – could that be the issue?

I have dual-band enabled on my UniFi router and that works fine with the esp8266 that I use. Might be some other setting that causes the issue.
The problem occurs in the underlying Arduino for ESP8266 library (or the hardware itself). You can check if the open issues might provide some clarity on what could be wrong. https://github.com/esp8266/Arduino
You could try some other project to see if that works? Does it work with the iSpindel firmware? Which version have you tried that worked? Could help to narrow down what the issue is....

This could be relavant; https://github.com/esp8266/Arduino/issues/8956 or this one https://github.com/esp8266/Arduino/issues/8950

I've tried the original iSpindel firmware, and it has the same issue. Actually, no version worked well. I've checked those threads, and the only suggestion there I saw was to disable the 802.11n mode on the router. I've tried to, and it worked... but only for the first time. Same picture: I change the setting (seems it doesn't have to be the channel), turn the device on, and it connects successfully. I turn in off and back on – and it doesn't connect, until I change some WiFi setting on the router again.

Could be related to the first issue i linked, band steering. If the router wants the device to reconnect that could cause the problem. What router model do you have?

I've tried with my main one, TUF-AX3000, and with a separate AP, RP-AC52 in AP mode. Turned 802.11n off on both devices; on the RP-AC52 AP names for 2.4GHz and for 5GHz were different.
I have some other observations, but I need to systemise them.

Its not an issue that i can handle unfortunately. It lies in the esp/arduino combination. You could try with the newer esp32 variants as they should have better compatibility. I support esp32c3 and esp32s2 mini currently and they have the same form factor as the esp8266

I've tried with ESP32 lite (the Floaty HW). Tried versions 1.3.0 and 1.2.0 of GravityMon, and with each one I get the same result: after saving the config and rebooting, the device seemingly doesn't try to connect to the WiFi at all. Probably I should file a separate issue? Here are the logs:
217034 I: WM  : Webserver, handle WiFi save.
217035 I: WM  : Parameter and value
217044 I: WM  : Sent wifi save page
217551 I: WM  : Connecting to new AP.
217807 I: WM  : Connect to new WiFi using new IP parameters
223048 I: WM  : Connected after waiting 5.20 s
223049 I: WM  : Local ip = 192.168.0.145
223049 I: WM  : Connection result: WL_CONNECTED
223059 I: WIFI: Stored SSID1:'LVU' SSID2:''
223128 I: CFG : Configuration saved to /gravitymon.json.
223130 I: WIFI: Exited wifi config portal. Rebooting...
[223635][W][WiFiGeneric.cpp:955] _eventCallback(): Reason: 8 - ASSOC_LEAVE
ets Jul 29 2019 12:21:46
rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:10044
load:0x40080400,len:5872
entry 0x400806ac
Serial connection established
4 I: SDBG: Serial logging started at 115200.
E (629) esp_core_dump_flash:▒  ▒ɕ▒dump partition found!
E (629) esp_core_dump_flash: No core dump partition found!
38 I: Main: Started setup for 3c120c.
39 I: Build options: 1.3.0 (..b68835) LOGLEVEL 4 FLOATY
40 I: HELP: Chip=ESP32, Rev=3, Feat=0x0032
56 I: CFG : Filesystem mounted.
72 I: WIFI: Current reset counter 0.
92 I: HELP: Last reset cause 'software reset CPU' (12)
113 I: CFG : Size of configuration file=944 bytes.
137 I: CFG : Configuration file /gravitymon.json loaded.
[   141][E][vfs_api.cpp:105] open(): /littlefs/hardware.json does not exist, no permits for creation
142 W: CFG : Configuration file does not exist /hardware.json.
204 E: GYRO: No valid calibration values, please calibrate the device.

The wifi connection attempt should occur after the log that you posted...  i.e. after the config file has been loaded

My bad. It was a hardware issue, the gyro was probably burnt.

authors: lvu mp-se

repo: mp-se/gravitymon


text:
Projet hérisson

Travail fait sur le projet hérisson avec Sud Ouest

Merci !

Deux petites remarques tout de même après avoir testé votre projet pour son intégration sur le serveur final (apps.hyblab.fr):
1.
### SSH
Aller sur : https://hyblab.polytech.univ-nantes.fr/ssh/

login : herisson

mdp : hyblab4herisson

Vous trouvez sérieusement normal de mettre un login et un mot de passe qui permettent de se connecter à un serveur de l'université en SSH sur un dépôt public GitHub ??? Vous avez voulu bien faire en fournissant un README avec pas mal d'infos. Mais les infos sur le serveur de dev n'ont rien à y faire.
2. Dans votre code tous vos liens vers votre api sont écrits avec une adresse absolue (en https) qui n'est pas celle qui sera utilisée pour le déploiement final. La bonne pratique est de ne jamais utiliser d'adresses absolue sur un site qui va être mis en production. Vous ne savez à priori pas sur quelle URL il va être mis en ligne. Ces adresse https absolues expliquent aussi l'échec de votre démo le soir des présentations lorsque le site a été affiché sur un hébergement en http : tout aurait bien marché avec des adresses relatives.

authors: Martenren mperreir


text:
newline support in Hotspots

Is it possible to add support for newlines in the hotspot bubble?  I would like dot points seperated by lines, however \n is stripped, and even adding whitespaces is ignored, and will not push the text onto a new line.

New line characters are meaningless in HTML, which is why they didn't work. Furthermore, HTML is escaped to mitigate XSS attacks, so
 can't be used. Since new lines characters aren't an attack vector, \n is now converted to
 after the HTML is escaped, allowing \n to be used to insert line breaks.

authors: mpetroff scottcove

repo: mpetroff/pannellum


text:
Which params in StarDist2D Config are implemented?

Hi!
Of course - thanks again for the great tools!
I noticed that, of the member variables printed with vars(config) only a subset of them have documentation in the doc string for the class. If something is missing from the doc string, does that mean it is not implemented? I'm specifically interested in dropout and batch_norm. I don't see self.config.unet_dropout or self.config.unet_batch_norm anywhere in model2d.py, or is the config object passed to some keras superclass where dropout and batch norm are considered or something like that?

Hi @GFleishman,
Yes, they will be used - it's a little bit hidden in the source code though: For the 2D model, every config variable that starts with unet_ will be stripped of that prefix and then passed to csbdeep.internals.nets.unet_block. E.g. config.unet_batch_norm  will be passed as batch_norm, config.unet_drop as dropout etc.
If you do the following:
from stardist.models import StarDist2D, Config2D

conf = Config2D(unet_batch_norm=True, unet_dropout=.3)

model = StarDist2D(conf, name=None, basedir=None)

model.keras_model.summary()

you will see that both BatchNorm and DropOut layers will be part of the model.
Hope that helps!

Yep, completely answers my question, thanks!

authors: GFleishman maweigert

repo: mpicbg-csbd/stardist


text:
Saved Model for ImageJ Plugin gives error

Hi,
I tried to load a trained model (with tensorflow 2.3.1) into the Fiji plugin (see TF_Saved model, and testq model).
I got a error:
[INFO] using native TensorFlow version: TF 1.15.0 GPU (CUDA 10.0, CuDNN >= 7.4.1)
[INFO] Loading TensorFlow model GenericNetwork_ad86c85013ad4cfa07530099a64c90fc from source file file:/F:/QuPathTrainTest/models/testq/TF_SavedModel.zip
[INFO] Caching TensorFlow models to C:\Fiji.app\models
java.lang.IllegalArgumentException: NodeDef mentions attr 'allowed_devices' not in Op<name=VarHandleOp; signature= -> resource:resource; attr=container:string,default=""; attr=shared_name:string,default=""; attr=dtype:type; attr=shape:shape; is_stateful=true>; NodeDef: {{node up_level_0_no_0/bias}}. (Check whether your GraphDef-interpreting binary is up to date with your GraphDef-generating binary.).
	 [[up_level_0_no_0/bias]]

I loaded and saved the model with this code:
from stardist.models import Config2D, StarDist2D, StarDistData2D
model = StarDist2D(None, name='testq', basedir='models')
model.export_TF()

Best, Ron
TF_SavedModel.zip
testq.zip
testimage.zip

Hi Ron,
I was able to reproduce your error. It seems like TensorFlow changed things internally from the 2.3.0 -> 2.3.1 release in Python. We hope to get this fixed in the future.
As a workaround, you could first make a new Python environment with an older version of TensorFlow (ideally the same version as in Fiji, e.g. 1.15), which doesn't need GPU support (so no need to bother with CUDA, etc.). In this environment, you could then load the trained model and export it for Fiji.
Sorry for the late reply!
Best,
Uwe

Hi Uwe,
Thanks for the reply. This solved the issue
Using Miniconda (conda 4.8.5)
conda create --name stardistfiji python=3.7
conda activate stardistfiji
conda install tensorflow==1.15
conda install stardist
run this python script converting an already trained model with tensorflow 2.3.1:
from stardist.models import Config2D, StarDist2D, StarDistData2D
model = StarDist2D(None, name='testq', basedir='models')
model.export_TF()
I got some warnings about deprecated tensorflow stuff.
The exported (zip file) model in Fiji works fine.
Thanks! Ron


text:
hie debug fails with the stack cradle

From https://github.com/mpickering/hie-bios/pull/90#issuecomment-554795328 (it fails in master too)
PS D:\dev\ws\haskell\stack-test> hie-bios debug .\src\MyLib.hs
pkg_ghc_args["-package-db","D:\\dev\\ws\\haskell\\stack-test\\.stack-work\\install\\33169d5a\\pkgdb","-package-db","C:\\sr\\snapshots\\67a70798\\pkgdb","-package-db","D:\\bin\\stack\\x86_64-windows\\ghc-8.6.5\\lib\\package.conf.d"]
Cradle failed to load
Exit Code: ExitFailure 1
Stderr: Failed to parse result of calling cabal
�[0mError parsing targets: Unknown local package: D
Note that to specify options to be passed to GHCi, use the --ghci-options flag�[0m

After adding some traces to readProcessWithOutputFile:

PS D:\dev\ws\haskell\stack-test> hie-bios debug .\src\MyLib.hs
readProcessWithOutputFile: fp="stack", args=["repl","--no-nix-pure","--no-load","--with-ghc","C:\\Users\\atrey\\AppData\\Local\\hie-bios\\wrapper-0.3.0.exe","D:\\dev\\ws\\haskell\\stack-test"]
readProcessWithOutputFile: res="", stde=["\ESC[0mError parsing targets: Unknown local package: D","Note that to specify options to be passed to GHCi, use the --ghci-options flag\ESC[0m"], stdo=[]
readProcessWithOutputFile: fp="stack", args=["path","--ghc-package-path"]
readProcessWithOutputFile: res="", stde=[], stdo=["D:\\dev\\ws\\haskell\\stack-test\\.stack-work\\install\\33169d5a\\pkgdb;C:\\sr\\snapshots\\67a70798\\pkgdb;D:\\bin\\stack\\x86_64-windows\\ghc-8.6.5\\lib\\package.conf.d"]
Cradle failed to load
Exit Code: ExitFailure 1
Stderr: Failed to parse result of calling cabal
Error parsing targets: Unknown local package: D
Note that to specify options to be passed to GHCi, use the --ghci-options flag

It seems you cant pass a path to a directory to stack repl?
PS D:\dev\ws\haskell\stack-test> stack repl  --no-load --with-ghc C:\Users\atrey\AppData\Local\hie-bios\wrapper-0.3.0.exe D:\dev\ws\haskell\stack-test
Error parsing targets: Unknown local package: D

The workaround is to use cwd (with 0013516) :
PS D:\dev\ws\haskell\stack-test> hie-bios debug
Cradle failed to load
Exit Code: ExitFailure 1
Stderr: Failed to parse result of calling cabal
Error parsing targets: Unknown local package: D
Note that to specify options to be passed to GHCi, use the --ghci-options flag
PS D:\dev\ws\haskell\stack-test> hie-bios debug .
Root directory:      D:\dev\ws\haskell\stack-test
GHC options:         -i -odir=D:\dev\ws\haskell\stack-test\.stack-work\odir -hidir=D:\dev\ws\haskell\stack-test\.stack-work\odir -hide-all-packages -iD:\dev\ws\haskell\stack-test\.stack-work\dist\e626a42b\build -iD:\dev\ws\haskell\stack-test\src -iD:\dev\ws\haskell\stack-test\.stack-work\dist\e626a42b\build\autogen -iD:\dev\ws\haskell\stack-test\.stack-work\dist\e626a42b\build\global-autogen -stubdir=D:\dev\ws\haskell\stack-test\.stack-work\dist\e626a42b\build -ID:\bin\stack\x86_64-windows\msys2-20180531\mingw64\include -LD:\bin\stack\x86_64-windows\msys2-20180531\mingw64\lib -LD:\bin\stack\x86_64-windows\msys2-20180531\mingw64\bin -package-id=base-4.12.0.0 -iD:\dev\ws\haskell\stack-test\.stack-work\dist\e626a42b\build\stack-test -iD:\dev\ws\haskell\stack-test\app -iD:\dev\ws\haskell\stack-test\.stack-work\dist\e626a42b\build\stack-test\autogen -iD:\dev\ws\haskell\stack-test\.stack-work\dist\e626a42b\build\stack-test\stack-test-tmp -package-id=bytestring-0.10.8.2 -optP-include -optPD:\dev\ws\haskell\stack-test\.stack-work\ghci\0e0774d4\cabal_macros.h -package-db D:\dev\ws\haskell\stack-test\.stack-work\install\33169d5a\pkgdb -package-db C:\sr\snapshots\67a70798\pkgdb -package-db D:\bin\stack\x86_64-windows\ghc-8.6.5\lib\package.conf.d
System libraries:    D:\bin\stack\x86_64-windows\ghc-8.6.5\lib
Dependencies:        stack-test.cabal package.yaml stack.yaml

Fixed in latest master as the stack cradle works totally differently!

Uh i thinked i had tested with master, i will double check

authors: jneira mpickering

repo: mpickering/hie-bios


text:
Can't correctly resolve multiple @Builder methods in same class having partial implementations

It seems that the plugin doesn't correctly process the @Builder annotation when it's applied to a second method in the same class and there are already partial implementations of the builders.
Here are two screenshots of the same class with the Builder definitions inverted:

method declaration reversed:

Similarly, trying to resolve method declarations from an external class (when `PersonBuilder` is the one correctly generated):
Resolving `PersonBuilder`:

Resolving incorrectly for `PetBuilder`:

Thanks!

Thank you for good description/example. I'll investigate this issue.

Found the cause of the problem and I'll provide correct behaviour in the next version!

Great!  Thanks!

Plugin 0.9.8 was released today

@sg-ad I was trying to use two @Builder for two different methods, aBuilder and bBuilder, in a single TestUtils class, but when I call the bBuilder and run the test, aBuilder was called instead? Have you run into this problem?

I run into the same issue as the one from jl4347 :
With multiple @Builder methods in same class having same return type and same buildMethodName, whatever builder I call, only the first one is called.

I'm running in to this as well with 2 different method names.

Not sure that it's still relevant, but I've encountered the same issue and resolved this by specifically setting the builderClassName
@Builder(builderMethodName = "relaxedBuilder", builderClassName = "RelaxedBuilder")
private MyClass( ... )

@Builder(builderMethodName = "builder")
private MyClass( ... )

and usage:
MyClass.builder()

MyClass.relaxedBuilder()

authors: Gwendal-LE-CREN agibsonccc aviadpines jl4347 mplushnikov sg-ad

repo: mplushnikov/lombok-intellij-plugin


text:
Add lombok.NonNull to the list of annotations supported by IntelliJ

Short description
In IntelliJ you can configure which annotations are detected for determining nullability of parameters/methods/fields. This can be configured in Settings -> Editor -> Inspections -> Java -> Probable bugs -> Nullability problems -> Configure Annotations -> NotNull annotations.
It would be nice if installing the Lombok plugin would automatically add lombok.NonNull to this list, so that the user of Lombok doesn't have to enable this manually.
Additional information
Lombok's @NonNull annotation guarantees that the parameter/method/field is not null, by adding an Objects.requireNonNull() check, so it is really guaranteed that the value is not null, since an exception will be thrown otherwise. Therefore there would not be any negative side effects of adding this annotation to the list in IntelliJ

Fixed inside of IntelliJ (https://github.com/JetBrains/intellij-community/commit/f6a7019606223ef6a555b8523dbc23f8f7037217)
Should be available in next major IntelliJ Release (2021.1)


text:
Create Post Checkout Git Hook

use https://github.com/mr-feek/LaravelGitHooks/pull/8 as a guideline!
Detailed description
I would like to allow developers to specify commands to be run during the post-checkout git hook.
Possible implementation

[ ] create bash file in src/hooks named post-checkout.sh, and can use the others as a template.
[ ] edit config/hooks.php and add a new array key config for the post-checkout hook.
[ ] create a new command in src/Commands/CommitHooks named PostCheckout, which extends CommitHookCommand. The getConfigKey function should be implemented to point to the configuration key created in the previous step.
[ ] ensure that this new command is made available
[ ] add the new post-checkout.sh file to the list of files to be copied over.

I'll grab this one 👍

Submitted #13 :)

authors: mr-feek rossdeane

repo: mr-feek/LaravelGitHooks


text:
Persisting user data and authentication

Currently, every time a user connects and reconnects, their ID is regenerated and to the server is a new client.
We want a way for the client to self identify between connects.
Maybe using a token of some sort and store user payloads in local storage.

Commit f80708f6def4a6969d0ace01ed6746c6ed9fb6d3


text:
06_pytorch_transfer_learning.ipynb

06: pytorch transfer learning
https://www.learnpytorch.io/06_pytorch_transfer_learning/
practioner's -> practitioners
practioner's -> practitioner's
see's -> sees
to included -> to include
customising -> customise
furture -> future
there was 5,288,548 -> there were 5,288,548
friends -> friend's

Thank you!

repo: mrdbourke/pytorch-deep-learning


text:
Fix Mercury token file path

./src/renderer/parsers/article.js import Mercury Web Parser API Key from the config file in ./src/renderer/config not ./config.js.
Following the current Build Setup will output, the following:

ERROR in ./src/renderer/parsers/article.js
  Module not found: Error: Can't resolve '../config' in '/home/user/Documents/raven-reader/src/renderer/parsers'
   @ ./src/renderer/parsers/article.js 5:0-46 24:29-46
   @ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/renderer/views/Main.vue?vue&type=script&lang=js&
   @ ./src/renderer/views/Main.vue?vue&type=script&lang=js&
   @ ./src/renderer/views/Main.vue
   @ ./src/renderer/router/index.js
   @ ./src/renderer/main.js
   @ multi ./.electron-vue/dev-client ./src/renderer/main.js

  ERROR in ./src/renderer/services/cacheArticle.js
  Module not found: Error: Can't resolve '../config' in '/home/user/Documents/raven-reader/src/renderer/services'
   @ ./src/renderer/services/cacheArticle.js 5:0-46 22:31-48 122:31-48
   @ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/renderer/components/ArticleToolbar.vue?vue&type=script&lang=js&
   @ ./src/renderer/components/ArticleToolbar.vue?vue&type=script&lang=js&
   @ ./src/renderer/components/ArticleToolbar.vue
   @ ./src/renderer/components/register.js
   @ ./src/renderer/main.js
   @ multi ./.electron-vue/dev-client ./src/renderer/main.js

./src/renderer/parsers/article.js import Mercury Web Parser API Key from the config file in ./src/renderer/config not ./config.js.
Following the current Build Setup will output, the following:

ERROR in ./src/renderer/parsers/article.js
  Module not found: Error: Can't resolve '../config' in '/home/user/Documents/raven-reader/src/renderer/parsers'
   @ ./src/renderer/parsers/article.js 5:0-46 24:29-46
   @ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/renderer/views/Main.vue?vue&type=script&lang=js&
   @ ./src/renderer/views/Main.vue?vue&type=script&lang=js&
   @ ./src/renderer/views/Main.vue
   @ ./src/renderer/router/index.js
   @ ./src/renderer/main.js
   @ multi ./.electron-vue/dev-client ./src/renderer/main.js

  ERROR in ./src/renderer/services/cacheArticle.js
  Module not found: Error: Can't resolve '../config' in '/home/user/Documents/raven-reader/src/renderer/services'
   @ ./src/renderer/services/cacheArticle.js 5:0-46 22:31-48 122:31-48
   @ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/renderer/components/ArticleToolbar.vue?vue&type=script&lang=js&
   @ ./src/renderer/components/ArticleToolbar.vue?vue&type=script&lang=js&
   @ ./src/renderer/components/ArticleToolbar.vue
   @ ./src/renderer/components/register.js
   @ ./src/renderer/main.js
   @ multi ./.electron-vue/dev-client ./src/renderer/main.js

You need to
# copy config.example.js in renderer to config.js by executing cp config.example.js config.js and set Mercury parser token
cp src/renderer/config.example.js config.js

before compiling

@boulaffasae  Thanks for the fix. Looks good

authors: boulaffasae mrgodhani

repo: mrgodhani/raven-reader


text:
GitHub Action fails on "Adapt" being not an imperative verb even though it is listed as such

The GitHub Action of my repository fails:
Run mristin/opinionated-commit-message@v3.0.0
Error: The message 1 is invalid:
* The subject must start with a verb in imperative mood, but it started with: "Adapt". Whether the word is in imperative mood is determined by whitelisting. The general whitelist is available at https://github.com/mristin/opinionated-commit-message/blob/master/src/mostFrequentEnglishVerbs.ts. You can whitelist additional verbs using "additional-verbs" input to your GitHub action (currently no additional verbs were thus specified). Moreover, you can also whitelist additional verbs in a file given as "path-to-additional-verbs" input to your GitHub action (currently the file is: .github/workflows/AdditionalVerbsInImperativeMood.txt). Please check the whitelist and either change the first word of the subject or whitelist the verb.
The original message was:
Adapt the schema files to v3.0.1

This adapts the schema files to version 3.0.1
of the specification.

However, this is not an official release yet
and may be subject to change.
This is only meant as reference for the
API specification.

However, I checked the whitelist file and the verb "adapt" is whitelisted in line 18
Can you help me troubleshoot this please?

@s-heppner I think you need to update to the latest version of opinionated-commit-message. It says in the logs that you are using 3.0.0, which is not the latest.

Thank you for your help!

authors: mristin s-heppner

repo: mristin/opinionated-commit-message


text:
希望修复下 X7.9.1 失效 问题

帮帮忙修复下 感谢

抱歉，暂时已经不再使用 koolshare 系列的固件(也没有相关设备)，目前的解决方案是在树莓派等小型设备上运行 ddns 工具；如果你也有类似的小型设备你可以使用 https://github.com/mritd/ddns。

authors: mritd oozj

repo: mritd/koolshare-gdddns


text:
Integrate with format?

Is there a way to make this work automatically along with the formatting?

Oops, wrong place...

repo: mrmlnc/posthtml-attrs-sorter


text:
Feature request

Ability to auto-unlock RLock's when the owning server is stopped, crashes, leaves the cluster, etc.

+1 for pr #100 :)

Fixed in redisson 1.3.0

authors: AndrewKolpakov mrniko sgraves66

repo: mrniko/redisson


text:
Wrap lines fail

Soft wrap option in Atom settings is ignored in log files when language-log plugin is active, so the lines never are wrapped.

Normally you do not want soft wrap on log files, but it can be enabled on all log files using the package settings page. I have added a note to the README.

authors: irinacen mrodalgaard

repo: mrodalgaard/language-log


text:
Add exposure (Android) and ISO+shootingTime (Ios)

What

Changes
/**

Add exposure -100 .. 100 range (It will be cast to posible range)

https://developer.android.com/reference/kotlin/androidx/camera/core/CameraControl#setexposurecompensationindex
*/
exposure?: number;

/**

Only IOS

Release param ISO. Out of range casting IOS to value = 400
https://developer.apple.com/documentation/avfoundation/avcapturedevice/1624646-setexposuremodecustom
*/
iso?: number;

/**

Only IOS

Release param shooting time.
https://developer.apple.com/documentation/avfoundation/avcapturedevice/1624646-setexposuremodecustom
*/
shootingTime?: number;

Tested on

Related issues

Hi, thanks for your PR! Is the prop required or not? In your code you provide a default value of 0, what happens if the user doesn't pass one? Is the exposure fixed to 0 then?

Hi, thanks for your PR! Is the prop required or not? In your code you provide a default value of 0, what happens if the user doesn't pass one? Is the exposure fixed to 0 then?

Hi. All new props is not required. For Android 0 exposure will set middle exposure, I thought it is default value but no=). I will add exposureState?.getExposureCompensationStep() for empty exposure with other changes ASAP. Thanks for theme updating =)

I'd just add if (exposure != null) to the if so the exposure will not be set if it's null, no?

Hmm actually what happens if the user passes an exposure value and then passes null again? Will it be updated to default or will it remain to the last one ...

I'd just add if (exposure != null) to the if so the exposure will not be set if it's null, no?

yeah, will do

Hmm actually what happens if the user passes an exposure value and then passes null again? Will it be updated to default or will it remain to the last one ...

Im not sure what it works with dynamically props =(

Hey, are there any plans to finish development of this feature, and is there anything that could be done to contribute?

authors: ktarasenkowow mrousavy sohcah

repo: mrousavy/react-native-vision-camera


text:
seeds SetSSLContextCallback

There should be a way to set SSL context callback function (CURLOPT_SSL_CTX_FUNCTION). Personally, I needed to call SSL_CTX_set_default_verify_paths inside this callback, but it could be useful to others as well.
Sample code:
static CURLcode sslctx_fn(CURL *curl, void *sslctx, void *parm)
{
  // Do whatever you want, for example:
  // SSL_CTX_set_default_verify_paths(static_cast<SSL_CTX*>(sslctx));

  // Return CURLE_OK if everything looks fine.
  return CURLE_OK;
}

void foo()
{
  ...

  conn->SetVerifyPeer(true);
  conn->SetSSLContextCallback(*sslctx_fn);
  RestClient::Response res = conn->get("/get");
  EXPECT_EQ(200, res.code);
}

Checklist
Not all of these might apply to your change but the more you are able to check
the easier it will be to get your contribution merged.

[ ] CI passes
[X] Description of proposed change
[ ] Existing issue is referenced if there is one
[X] Documentation (README, code doc blocks, etc) is updated
[X] Unit tests for the proposed change

When I try to build gtest, it fails in the autoreconf -i step:
<project-root>/vendor/gtest-1.7.0$ autoreconf -i
Makefile.am:183: error: Libtool library used but 'LIBTOOL' is undefined
Makefile.am:183:   The usual way to define 'LIBTOOL' is to add 'LT_INIT'
Makefile.am:183:   to 'configure.ac' and run 'aclocal' and 'autoconf' again.
Makefile.am:183:   If 'LT_INIT' is in 'configure.ac', make sure
Makefile.am:183:   its definition is in aclocal's search path.
autoreconf: automake failed with exit status: 1

P.S.: I tried with this change on our client code. It's working.

This example shows a sample use case of calling SSL_CTX_set_default_verify_paths (although it's boost, but I hope you get the idea).

repo: mrtazz/restclient-cpp


text:
Reduce memory copy in mrb_str_inspect() with UTF-8

:scream_cat: When I compiled optimally with gcc, I got a warning.
However, I could not understand why this warning was printed.
% gcc12 -Iinclude -DMRB_NO_PRESYM -DMRB_UTF8_STRING -Wall -O3 -c src/string.c
src/string.c: In function 'str_escape':
src/string.c:1225:18: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
 1225 |           buf[i] = p[i];
      |           ~~~~~~~^~~~~~
src/string.c:1209:8: note: at offset 4 into destination object 'buf' of size 4
 1209 |   char buf[4];  /* `\x??` or UTF-8 character */
      |        ^~~
src/string.c:1225:18: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
 1225 |           buf[i] = p[i];
      |           ~~~~~~~^~~~~~
src/string.c:1209:8: note: at offset 5 into destination object 'buf' of size 4
 1209 |   char buf[4];  /* `\x??` or UTF-8 character */
      |        ^~~

By taking a larger buffer size, the warning went away.
diff --git a/src/string.c b/src/string.c
index 0e204118a..00a3b87b4 100644
--- a/src/string.c
+++ b/src/string.c
@@ -1206,7 +1206,7 @@ static mrb_value
 str_escape(mrb_state *mrb, mrb_value str, mrb_bool inspect)
 {
   const char *p, *pend;
-  char buf[4];  /* `\x??` or UTF-8 character */
+  char buf[7];  /* `\x??` or UTF-8 character */
   mrb_value result = mrb_str_new_lit(mrb, "\"");
 #ifdef MRB_UTF8_STRING
   uint32_t ascii_flag = MRB_STR_ASCII;

But I don't know what that means, so I suggest this PR method.

Ah, maximum value from mrb_utf8len() (which is the biggest elements in mrb_utf8len_table) is 4. So gcc detected and warned. I'm impressed how smart gcc is.
And copying a substring to buf is meaningless. I accept the PR. Thank you!

I think the warning is valid if mrb_utf8len() returns 5 or 6, but it doesn't seem so.
After a little more checking, changing the type of clen from mrb_int to size_t also stopped the warning.
At this point I wondered about gcc's behavior, so I checked for bugs and found a similar report.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107476#c0
Others can be traced through "Depends on" at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=Wstringop-overflow.
This situation seems to be the same for gcc-13.0 as for gcc-12.2.
In addition, it seems that -Wstringop-overflow is included in -Wall since gcc-12.
:smile_cat: At any rate, I am happy to say that we have found areas for improvement.

authors: dearblue matz

repo: mruby/mruby


text:
🛑 Student Information System is down

In bf31237, Student Information System (https://filemaker.oca.ac.uk) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Student Information System is back up in 4096443 after 6 hours, 15 minutes.

repo: mrvinceo/ocaUptime


text:
Smart file watching

As discussed in #19 and other issues watching the full solution tree sometimes results in too many open files errors, especially when one uses client-side package managers like npm or bower. A solution could be to watch single directories, excluding problematic ones. My idea is to:

Extract project structure information from both the solution file and the top-level global.json "projects" key and use a bit of euristic (see later) to determine which subdirectories should be watched for changes.
Look for exclude patterns in each subdirectory: this could be made configurable but ignoring node_modules, bower_packages and other well-known names is probably a good start.
For each subdirectory that doesn't contain anything to ignore just create a single watcher.
For each subdirectory that contains something to ignore creare a top-level watcher with IncludeSubdirectories set to false and then one watcher for every directory.

We will end up with more watchers than strictly necessary but, given that one usually doesn't have tens of directories inside each project, not that much more.
Does this seems sensible or am I missing something?

It would need to handle new directories that get created or new projects being added. I wonder if there is any problem creating lots of individual file watchers.
I am still tempted to just rely on the IDE detecting file changes since this feature already exists and may be simpler to implement. It also completely fixes the too many files problem.

I fear that the IDE will not detect files added from the outside but I don't know about this part of MonoDevelop: which files exactly does it watch?

Yeah I agree it may not detect files added outside the IDE.
How often does adding files outside the IDE happen in practice? I was assuming that if you are in the IDE then you are adding new files using the IDE.
The IDE will detect files that have changed that it knows about. For example if you edit a .csproj file outside the IDE when you switch back to the IDE it knows the file has changed and will reload the project file. New files are different problem. This could be handled by rescanning the directories when the IDE receives focus again. Or maybe this is not automatic and instead the user can refresh a directory themselves in the solution window.
Right now if you add a new directory or files the solution window will not be updated even though the file watcher will detect this and be sending the files to the DNX host. However this is just something that was not yet implemented.

authors: fogzot mrward

repo: mrward/monodevelop-dnx-addin


text:
The automated release is failing 🚨

:rotating_light: The automated release from the main branch failed. :rotating_light:
I recommend you give this issue a high priority, so other packages depending on you can benefit from your bug fixes and new features again.
You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can fix this 💪.
Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.
Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the main branch. You can also manually restart the failed CI job that runs semantic-release.
If you are not sure how to resolve this, here are some links that can help you:

Usage documentation
Frequently Asked Questions
Support channels

If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.

No npm token specified.
An npm token must be created and set in the NPM_TOKEN environment variable on your CI environment.
Please make sure to create an npm token and to set it in the NPM_TOKEN environment variable on your CI environment. The token must allow to publish to the registry https://registry.npmjs.org/.

Good luck with your project ✨
Your semantic-release bot :package::rocket:

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

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


text:
🛑 Do53 Roost IPv4 UDP is down

In 0a13cef, Do53 Roost IPv4 UDP (http://107.189.10.142:9202) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Do53 Roost IPv4 UDP is back up in c85d077 after 9 minutes.

repo: mschirrmeister/upptime-loopx


text:
🛑 Do53 Roost IPv4 UDP is down

In b50eaf9, Do53 Roost IPv4 UDP (http://107.189.10.142:9202) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Do53 Roost IPv4 UDP is back up in 95643b8 after 19 minutes.


text:
Convert from BigDecimal to Coin

BigDecimal is used in many places throughout the bitcoinj-rpcclient module and probably elsewhere where we should probably be using the bitcoinj Coin class.
This includes:

Parameter and return types of BitcoinClient class.
Parameter and return types of the  BTCTestSupport trait.

This will be a good time to make better use of Jackson mappers.

Well, the conversion is done. We still need to do a better job of using Jackson, though.

I opened Issue #9 to track progress on making better use of Jackson. Since the API consistently uses Coin for parameters and return types, we can close this issue now.

repo: msgilligan/bitcoinj-addons


text:
What does the CLASS_AGNOSTIC mean?

And why CLASS_AGNOSTIC is set to True? I think we're not doing Object Segment Proposal, so it should be set to False..

I think the code is a bit different from the description in the paper..... I'm not good at coding and I think the code is hard to understand....

It means the class-agnostic bounding box regression. All categories share same weights during the training of bbox regression.

@Oh233 You mean there is only one single mask and bbox for a RoI, and the class is given by the score? So the mask and bbox are not chosen from the C+1 maps..

Only the bbox regression is class-agnostic, not the mask. Mask and classification scores are still selected from C+1 maps (21 for VOC) and bbox are selected from 2 maps (foreground/background).

@Oh233 Got it, thanks.

repo: msracver/FCIS


text:
Investigate exceptions thrown under options page

I was working on options page and noticed two exceptions are thrown. I think they were introduced with library extractor.

will. look into it when possible

Fixed it. Basically the error was happening in attachIfPossible() for extractors using third-party libs which aren't imported in the options.html. Because there's nothing to attach on options page, I added an if statement to only run attachIfPossible() outside options.html. Not the fanciest solution, but better that importing unnecessary libs and running code without any need.

repo: msramalho/SigToCa


text:
🛑 BN/SEM is down

In 6ef2e0a, BN/SEM (https://socialem.net) was down:

HTTP code: 0
Response time: 0 ms

Resolved: BN/SEM is back up in 519cfa0.

repo: mswd-io/upptime


text:
Support templating for histogram options

Make possible to set Bucket size, Min and Max to template variable

Personally, I don't use such feature. Pull request welcome :-)

repo: mtanda/grafana-histogram-panel


text:
Support remote password

Spawn sshpass process when --remote-password option exist.

Hey,
as stdin is supported I removed ssh support. If you would like to stream logs from remote host I suggest running something like:

ssh root@127.0.0.1 tail -F /var/log/syslog | frontail -

repo: mthenw/frontail


text:
🛑 https://911.ps is down

In 9ee390c, https://911.ps (https://911.ps) was down:

HTTP code: 0
Response time: 0 ms

Resolved: https://911.ps is back up in 9a07daa.

repo: mtitservice/site


text:
🛑 https://reports.mtit.pna.ps is down

In ef2bdc3, https://reports.mtit.pna.ps (https://reports.mtit.pna.ps) was down:

HTTP code: 0
Response time: 0 ms

Resolved: https://reports.mtit.pna.ps is back up in 2ee4a2d.


text:
🛑 https://www.pncecs.plo.ps is down

In 8b81c23, https://www.pncecs.plo.ps (https://www.pncecs.plo.ps) was down:

HTTP code: 0
Response time: 0 ms

Resolved: https://www.pncecs.plo.ps is back up in b12aad5.