text:
Running list of coros that hold the event loop for too long

These coros have held the event loop for too long, and need to be more cooperative. The longest known blocking time is included:

Last verified at a2c69cee88626c9

[ ] SkeletonSyncer.run() running at /home/jcarver/code/trinity/trinity/sync/common/headers.py:129 800s (not a typo!)
[ ] Multiplexer._do_multiplexing() running at /home/jcarver/code/trinity/p2p/multiplexer.py:333 6.3s
[ ] BeamStateBackfill.run() running at /home/jcarver/code/trinity/trinity/sync/beam/backfill.py:142 2.9s
[ ] Connection._feed_protocol_handlers() running at /home/jcarver/code/trinity/p2p/connection.py:225 2.0s
[ ] BasePeerPool.connect_to_node() running at /home/jcarver/code/trinity/p2p/peer_pool.py:452 1.9s
[ ] PeerPoolEventServer.handle_native_peer_messages() running at /home/jcarver/code/trinity/trinity/protocol/common/peer_pool_event_bus.py:254 0.8s
[ ] BeamDownloader._store_nodes() done, defined at /home/jcarver/code/trinity/trinity/sync/beam/state.py:531 0.7s
[ ] BeamBlockImporter._preview_address_load() running at /home/jcarver/code/trinity/trinity/sync/beam/chain.py:811 0.5s
[ ] RegularChainBodySyncer._import_ready_blocks() running at /home/jcarver/code/trinity/trinity/sync/full/chain.py:1145 0.5s
[x] _run() running at /home/jcarver/code/trinity/trinity/bootstrap.py:275 0.3s

I collected this data with:
diff --git a/async_service/asyncio.py b/async_service/asyncio.py
index 3ae6abc..3a82653 100644
--- a/async_service/asyncio.py
+++ b/async_service/asyncio.py
@@ -32,10 +32,16 @@ class FunctionTask(BaseFunctionTask):
     #
     async def run(self) -> None:
         try:
-            await self._async_fn(*self._async_fn_args)
+            # Name the task, to make it easier to identify which task is holding the event loop too long
+            await asyncio.create_task(
+                self._async_fn(*self._async_fn_args),
+                name=self.name,
+            )
             if self.daemon:
                 raise DaemonTaskExit(f"Daemon task {self} exited")

(I think the create_task part is more important than the name= part)

_run() running at /home/jcarver/code/trinity/trinity/bootstrap.py:275  0.3s

This one is only called upon startup and it's where asyncio-rip runs the subprocess for a component, so I don't think there's much we can do to avoid it blocking for a bit. And even if there was I don't think it would improve startup time significantly

Agreed, just included it for completeness. But I'll check it off as WONTFIX for now.

Connection._feed_protocol_handlers() running at /home/jcarver/code/trinity/p2p/connection.py:225

This one may be fixed in #1964 (https://github.com/ethereum/trinity/pull/1964/files#diff-0677b3758440107726c19b15c4d05f0cR280-R281)

Multiplexer._do_multiplexing() running at /home/jcarver/code/trinity/p2p/multiplexer.py:333 6.3s

This one is interesting because _handle_commands() consumes items from an async iterator that relinquishes control back to the event loop on every iteration. But one of the things it does is decoding of messages, which I expect could take long but hopefully not 6s

But one of the things it does is decoding of messages

Which at least will get a nice performance boost with the new rust based RLP decoding that is in the works.

Ahah, I got a lead on why we have some coroutines complaining here that don't make any sense!
Check this out:
   DEBUG  2020-08-17 14:06:10,881           ETHPeerPool  ETHPeer (eth, 63) <Session <Node(0xaa9c91@54.165.18.108)> 490c579f-49ba-462f-bf24-e7c6a47dc70d>: uptime=3m18s, received_msgs=1590
   DEBUG  2020-08-17 14:06:10,881           ETHPeerPool  client_version_string='teth/v0.1/linux/go1.12.14'
   DEBUG  2020-08-17 14:06:10,882           ETHPeerPool      <class 'trinity.protocol.eth.commands.BlockBodiesV65'>: None!
   DEBUG  2020-08-17 14:10:38,179           ETHPeerPool      <class 'trinity.protocol.eth.commands.BlockHeadersV65'>: msgs=1  items=2  rtt=19.10/1.91/0.00  ips=0.05243  timeouts=0  quality=5
   DEBUG  2020-08-17 14:10:38,179           ETHPeerPool      <class 'trinity.protocol.eth.commands.NodeDataV65'>: msgs=1  items=0  rtt=19.50/10.00/0.00  ips=0.00000  timeouts=1  quality=0
...
 WARNING  2020-08-17 14:10:38,182               asyncio  Executing <Task pending name='_periodically_report_stats' coro=<BasePeerPool._periodically_report_stats() running at /home/jcarver/code/trinity/p2p/peer_pool.py:553> wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7f8ce0473550>()] created at /home/jcarver/.pyenv/versions/3.8.5/lib/python3.8/asyncio/tasks.py:643> cb=[<TaskWakeupMethWrapper object at 0x7f8cf404e6d0>()] created at /home/jcarver/.pyenv/versions/3.8.5/lib/python3.8/asyncio/tasks.py:382> took 267.314 seconds

Note that there is a 4.5 minute gap in the middle of reporting a single peer's stats.
The series of extra stats about a peer is logged here:
https://github.com/ethereum/trinity/blob/1af692e67f4c54fcd986e6fad6a9e51bbbfe667f/p2p/peer_pool.py#L547-L548
The extra stats are returned as a tuple, so there is no extra computation between each loop iteration. So it seems that the only remaining explanation is logging itself.

With the logging issue pushed out of the way (I think), I'm still getting some surprises. Here are some asyncio warnings, and how long they held the loop:
coro=<GetNodeDataV65Exchange.__call__() running at /home/jcarver/code/trinity/trinity/protocol/eth/exchanges.py:105>  28.395 seconds
coro=<BeamDownloader._get_nodes() done, defined at /home/jcarver/code/trinity/trinity/sync/beam/state.py:571>  26.139 seconds
coro=<PingAndDisconnectIfIdle.run.<locals>.set_msg_received() done, defined at /home/jcarver/code/trinity/p2p/p2p_api.py:47>  26.128 seconds
<Handle _chain_future.<locals>._set_state created at /home/jcarver/.pyenv/versions/3.8.5/lib/python3.8/asyncio/futures.py:374>  24.48 seconds
coro=<BasePeer._handle_subscriber_message() done, defined at /home/jcarver/code/trinity/p2p/peer.py:324>  21.53 seconds
coro=<BeamDownloader._node_hashes_present() running at /home/jcarver/code/trinity/trinity/sync/beam/state.py:649>  19.858 seconds
coro=<Multiplexer._do_multiplexing() running at /home/jcarver/code/trinity/p2p/multiplexer.py:342>  18.585 seconds
coro=<BeamDownloader._get_predictive_nodes_from_peer() done, defined at /home/jcarver/code/trinity/trinity/sync/beam/state.py:555>  18.081 seconds
coro=<BeamStateBackfill.pop_fastest_peasant() running at /home/jcarver/code/trinity/trinity/sync/beam/backfill.py:129>  16.53 seconds
coro=<BeamDownloader._get_nodes() running at /home/jcarver/code/trinity/trinity/sync/beam/state.py:576>  11.99 seconds
coro=<BaseManager._run_and_manage_task() running at /home/jcarver/code/async-service/async_service/base.py:300>  9.94 seconds
coro=<BeamDownloader.download_accounts() running at /home/jcarver/code/trinity/trinity/sync/beam/state.py:319>  4.408 seconds
coro=<AsyncioIsolatedComponent._loop_monitoring_task() running at /home/jcarver/code/trinity/trinity/extensibility/asyncio.py:28>  1.783 seconds
coro=<MissingDataEventHandler._serve_storage() running at /home/jcarver/code/trinity/trinity/sync/beam/chain.py:1093>  1.07 seconds
coro=<BeamBlockImporter._request_address_nodes() running at /home/jcarver/code/trinity/trinity/sync/beam/chain.py:889>  1.036 seconds
coro=<RegularChainBodySyncer._preview_ready_blocks() running at /home/jcarver/code/trinity/trinity/sync/full/chain.py:1088>  1.02 seconds
coro=<MissingDataEventHandler._serve_account() running at /home/jcarver/code/trinity/trinity/sync/beam/chain.py:1050>  0.908 seconds

This is the line that sometimes holds the event loop for too long during _do_multiplexing:
https://github.com/ethereum/trinity/blob/12103e8efe0bdb79b7febf5bb5a18b8d5ccec4d5/p2p/multiplexer.py#L90
Opening a PR soon

Waaat:
 WARNING  2020-08-19 15:56:19,285               asyncio  Executing <Task pending name='BeamDownloader._wait_for_nodes->_node_hashes_present' coro=<BeamDownloader._node_hashes_present() running at /home/jcarver/code/trinity/trinity/sync/beam/state.py:622> wait_for=<Future pending cb=[_chain_future.<locals>._call_check_cancel() at /home/jcarver/.pyenv/versions/3.8.5/lib/python3.8/asyncio/futures.py:360, <TaskWakeupMethWrapper object at 0x7f6700259370>()] created at /home/jcarver/.pyenv/versions/3.8.5/lib/python3.8/asyncio/futures.py:388> cb=[<TaskWakeupMethWrapper object at 0x7f66f02e6670>()] created at /home/jcarver/.pyenv/versions/3.8.5/lib/python3.8/asyncio/tasks.py:382> took 0.735 seconds

https://github.com/ethereum/trinity/blob/12103e8efe0bdb79b7febf5bb5a18b8d5ccec4d5/trinity/sync/beam/state.py#L618-L627
How could this possibly be holding the event loop for 0.7s?

authors: carver cburgdorf gsalgado

repo: ethereum/trinity


text:
Address pr feedback in black demo pr

What was wrong?
Addresses PR feedback on some minor formatting stuff in #581.
How was it fixed?
Addresses @pipermerriam 's feedback.
Cute Animal Picture

pinging @pipermerriam @carver @cburgdorf @lithp as this mostly touches stuff yall are closer to

source: gharchive/pull-request

license: MIT

license_type: permissive

license_source: github-api


text:
Handshake interface

What was wrong?
Identity scheme class only worked with ENR, but it's also responsible for the handshake.
How was it fixed?
Implement the basic interface and add a placeholder so that we don't have to implement the cryptography as long as it isn't properly specified.
Also some minor stuff:

rename node address to node id (both are used interchangeably in the spec, but address may collide with endpoint address)
add method to access public key (we'll need that for the handshake)
make node id and public key accessible on the ENR via properties

Cute Animal Picture

Sorry for the delay. Changes since last review:

Ellipsis instead of "pass" in abstract method bodies
Renamed "KeyAgreementResult" to "SessionKeys" and "perform_key_agreement" to "compute_session_keys"
In V4IdentityScheme.extract_public_key(enr), I don't assume anymore that the ENR has been validated before (a proper exception is raised). Instead, this assumption is only made in ENR.public_key. It's still not ideal, but better than before, as now this issue is only present in one, not two classes. Also, I've added an Exception("Invariant: ...") in the property to document this slightly awkward coupling.
Added id nonce signing and signature verification methods to the identity scheme which are also required for the handshake.
I got rid of the get_random_bytes interface. The only reason why I thought it would be useful is for testing (so that we can replace the non-deterministic os.urandom we should use in production with a pseudo random alternative). But now I don't like it anymore as it increases the complexity of the interface for no good reason. Instead, I just mock out os.urandom in tests via a fixture.

What I have not done (yet):

Use factories for creating ENRs. The problem here is that for most of the tests we actually test stuff in the ENRs __init__ function, so what I'd actually have to do is use some kind of ENRKwargFactory which doesn't feel very useful for future tests. So since the existing tests already work fine I'd rather not spend more time on it at the moment to get it right, but revisit this for the next time I need an ENR for tests.
Cleaned up the commit history. Will do so before I merge

Other than that, if I haven't missed anything, this is ready from my side.


text:
Elaine/bug fixes #94

Fixes bug described in issue #94

@elaineo
Great job.
viewed, function ok now.

authors: elaineo kimisan

repo: ethereumproject/TokenMint


text:
Crash

Summary
Bee crashed
Steps to reproduce
Run bee for a while, don't know much more
Actual behavior

panic: runtime error: slice bounds out of range [:16] with capacity 0

goroutine 66738288 [running]:
github.com/ethersphere/bee/pkg/localstore.New.func4(0xc003a364e0, 0x20, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        github.com/ethersphere/bee/pkg/localstore/localstore.go:233 +0xd1
github.com/ethersphere/bee/pkg/shed.Index.Get(0xc001cb6a90, 0xc000b87962, 0x1, 0x1, 0xc001ec28c0, 0xc000b89a10, 0x1703f40, 0x1703f48, 0xc003a364e0, 0x20, ...)
        github.com/ethersphere/bee/pkg/shed/index.go:154 +0x2aa
github.com/ethersphere/bee/pkg/localstore.(*DB).get(0xc0000ea600, 0x0, 0xc003a364e0, 0x20, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        github.com/ethersphere/bee/pkg/localstore/mode_get.go:61 +0x1f8
github.com/ethersphere/bee/pkg/localstore.(*DB).Get(0xc0000ea600, 0x1863680, 0xc009260f30, 0x0, 0xc003a364e0, 0x20, 0x20, 0x0, 0x0, 0x0, ...)
        github.com/ethersphere/bee/pkg/localstore/mode_get.go:46 +0x194
github.com/ethersphere/bee/pkg/retrieval.(*Service).handler(0xc001d26600, 0x1863680, 0xc009260f30, 0xc00d578040, 0x20, 0x20, 0x186a940, 0xc031dd9c20, 0x0, 0x0)
        github.com/ethersphere/bee/pkg/retrieval/retrieval.go:337 +0x554
github.com/ethersphere/bee/pkg/p2p/libp2p.(*Service).AddProtocol.func1(0x1876640, 0xc031dd9c00)
        github.com/ethersphere/bee/pkg/p2p/libp2p/libp2p.go:372 +0x876
github.com/libp2p/go-libp2p/p2p/host/basic.(*BasicHost).SetStreamHandlerMatch.func1(0xc00bf57fe0, 0x20, 0x7f93001e4310, 0xc031dd9c00, 0x1, 0x0)
        github.com/libp2p/go-libp2p@v0.13.0/p2p/host/basic/basic_host.go:580 +0x9f
created by github.com/libp2p/go-libp2p/p2p/host/basic.(*BasicHost).newStreamHandler
        github.com/libp2p/go-libp2p@v0.13.0/p2p/host/basic/basic_host.go:416 +0x613

duplicate of https://github.com/ethersphere/bee/issues/1340, fixed by https://github.com/ethersphere/bee/pull/1426

source: gharchive/issue

authors: Eknir veqtor

repo: ethersphere/bee


text:
no cheque in bee 0.6.2。

i was  upgrade bee from 0.5.3 to 0.6.2 few days ago . and it with full localstorage size .  before upgrade  i can got 5-15 cheque one day 。 after upgrade my node upload datasize  totaly 100 gigabytes at least .but i can't got any cheque。

This is not a problem report, but a complaint.  This sort of thing is better handled in the #bee-support channel of our Discord server.  If you read the conversations there, you'd know that checks are very rare in the 0.6 swarm at this time and that the developers are aware of it and looking into it.


text:
EP 0.7.0 Compatibility

Description

Changed EtherspotWallet and EtherspotPaymaster contracts to be compliant with new EntryPoint contract.
Changed any interfaces or imports that required amendments.
Changed test suite to match new contracts.
Removed any existing functionality that was no longer required (TestUtils).

Motivation and Context

To comply with new EntryPoint standard.

How Has This Been Tested?

Local test suite.

Screenshots (if appropriate):
Types of changes

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

@lbw33 Pls address the merge conflicts and change this PR as draft.

repo: etherspot/etherspot-prime-contracts


text:
Failing with "missing metadata.json" message when trying to upload a wheel

Trying to upload a wheel which works perfectly in other usages fails with the message:
invalid state: Could not find metadata.json

I get the same one. If I try to upload .tar instead then I get
error: not enough values to unpack (expected 2, got 1)

still no solution?

The issue is in the wheel files. The workaround is to parse the METADATA file as a fallback, using effectively the same strategy as __extract_source

i have found the same error

Took @caseyduquettesc proto-patch above and applied it in PR https://github.com/ethronsoft/gcspypi/pull/13
This fixes upload of wheels for me.

@jerryvurbl
With all the changes, I am still getting the "Could not find metadata.json" is there any other workaround for this? Thanks in advance.

authors: Mallouly caseyduquettesc ericpascual jerryvurbl mr-bjerre shaypoww

repo: ethronsoft/gcspypi

license_source: bigquery


text:
fix ProtectedRoute test

when the user is logged in - should render passed children
We need to mock useGetUserPermissionsQuery

I'm probably going to fix this as part of https://github.com/ethyca/fidesctl-plus/issues/246 -- many new pages require login checks, so I have spread the mock love.

authors: Kelsey-Ethyca ssangervasi

repo: ethyca/fides


text:
Add await

About this pull request
Fix #151.
Changes
Added await in sync_all_commands for get_all_commands.
Checklist

[ ] I've checked this pull request runs on Python 3.6.X.

Works on 3.9; very small diff.

[x] This fixes something in Issues.

Issue: #151

[ ] This adds something new.
[ ] There is/are breaking change(s).
[ ] (If required) Relevant documentation has been updated/added.
[ ] This is not a code change. (README, docs, etc.)

LGTM, although it would be ideal if it was tested on 3.6, i don't think that's necessary in this case

I completely forgot about this issue. Anyways, merging this pull request, thank you for contributing!


text:
Improve Github Action to integrate with codecov.io

after_success:
  - bash <(curl -s https://codecov.io/bash)

https://github.com/codecov/codecov-action

Lack of time

license: mit


text:
Apply CSS

Use Bootstrap and Milligram

Miligram only. Bootstrap conflicts with Miligram.

authors: AllysonMcGrath ggamb

repo: evalecillos/T-B-D


text:
Fix stacktrace conversion

I faced an issue with stacktrace first entry being incorrect.
Say in application we have something like that:
gitlab.com/project/api/repositories.(*ModelTranslation).Create
 	/service/repositories/model_translation.go:33
gitlab.com/project/api/services.(*Model).Create.func1
 	/service/services/model.go:68
github.com/go-pg/pg.(*Tx).RunInTransaction
 	/go/pkg/mod/github.com/go-pg/pg@v8.0.4+incompatible/tx.go:79
...

But Sentry received an exception with a bit different trace:
  File "/go/pkg/mod/github.com/pkg/errors@v0.8.1/errors.go", line 151, in WithStack
    callers(),
  File "/service/services/model.go", line 68, in func1
    err = modelTranslationRepo.Create(txCtx, mt)
  File "/go/pkg/mod/github.com/go-pg/pg@v8.0.4+incompatible/tx.go", line 79, in RunInTransaction
    if err := fn(tx); err != nil {
...

So the first entry in Sentry's trace leads to pkg/errors, but originally it was referring to the application code.
While trying to find the reason behind that I noticed stacktrace conversion in raven-go looked almost the same as in logrus_sentry except for a - 1 part here.
To be honest I'm not sure how exactly it works, but I did the same change for logrus_sentry and now I get correct stacktrace and it seems like all tests here still pass.

i try. but it didn't work


text:
🛑 demo.actionherojs.com is down

In 9c39741, demo.actionherojs.com (https://demo.actionherojs.com/api/status) was down:

HTTP code: 0
Response time: 0 ms

Resolved: demo.actionherojs.com is back up in 5f38b86.

repo: evantahler/upptime


text:
Messaging: add more vehicle properties

Fix https://github.com/evcc-io/evcc/issues/12862, refs https://github.com/evcc-io/evcc/issues/13212
/cc @cschlipf

Fürchte das fixed nicht das eigentliche Problem von #13212

authors: andig cschlipf

repo: evcc-io/evcc


text:
Docs: add more mbmd meter templates

@premultiply könntest Du QS machen? Fehlt noch ein verbreiteter Zähler den MBMD schon hat?

BTW, using template (release 0.90) sdm630 , configured as charge meter is created without currents.

authors: RTTTC andig


text:
Remove rootDir from Jest path configs

Jest was failing to exclude the __util__ directory from test runs.

Coverage remained the same at 99.554% when pulling 3de4413cc84fc0b75db8c5f15140e683b2fb72e3 on jessebeach:fix-jest-rootDir into 8f24ae4dcb0bed3a414d47ed716205007c933867 on evcohen:master.

Coverage remained the same at 99.554% when pulling 3de4413cc84fc0b75db8c5f15140e683b2fb72e3 on jessebeach:fix-jest-rootDir into 8f24ae4dcb0bed3a414d47ed716205007c933867 on evcohen:master.

¯_(ツ)_/¯

same same

authors: coveralls jessebeach


text:
Remove the "visible" attribute from the .pr files

The "visible" attribute is exported to the .pr file, but it is useless. It is used for display purposes only.
It must be removed and probably some other attributes too (inactive? sustained?)
I suspect that importing some of these causes bugs in single hand practice.

Exporting this attribute has been removed in v1.4

repo: evernost/gangQin


text:
DataTable Column linkLabel displays name of column for null values

Steps To Reproduce

Create a datatable that contains a column with contentType=link
Attempt to name the column using another column's name as the linkLabel, but where the column for the name has at least one null value

Environment

OS: MacOS
Browser: Firefox
Database: BQ

Expected Behavior
The displayed label should be null in the case where name_of_the_col is null
Actual Behaviour
The column name shown is name_of_the_col
.
Notes
I'm pretty sure this is because once it finds that name_of_the_col is null, it assumes that name_of_the_col is instead a string you wanted to call your column. We probably should be testing to see if name_of_the_col is undefined

Should it display null, or - (which is what regular null columns show)?

I think -. I think ideally not a link as well?

See comment on #1249

a9960ace55c94a4aa52889a5321be46358b10816
Is this resolved? @csjh @mcrascal

Fixed by #1253 & #1249

authors: ItsMeBrianD archiewood csjh mcrascal

repo: evidence-dev/evidence


text:
Calibration of servo_2_angle_pws - How?

Great project. Thanks for sharing your knowledge, experience and results of your hard work :)
I've successfully calibrated servo 1 using bg.calibrate(). The documentation advises "Repeat the process for the other servo.", but does not go into further detail.
How do I switch to servo 2 for the calibration process?

Hey cheesebox,
i have the same problem. Have you figured it out yet?
I know that you can pass servo=2 to calibrate to configure the outer motor --> bg.calibrate(servo=2)
But I always get, bad values for my motor, which drive die pen out of the boundary area.

authors: TheBigFudge cheesebox

repo: evildmp/BrachioGraph


text:
:zap: chore: Improve caching of nx.json

Description
Improve caching of build:types and test:coverage
Testing
Explain the quality checks that have been done on the code changes
Additional Information

[ ] I read the contributing docs (if this is your first contribution)

Your ENS/address:

Current dependencies on/for this PR:

main

PR #702   👈

PR #703

This stack of pull requests is managed by Graphite.

repo: evmts/evmts-monorepo


text:
Update scalatest to 3.1.0

Updates org.scalatest:scalatest from 3.0.8 to 3.1.0.
Release Notes/Changelog
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scalatest", artifactId = "scalatest" } ]

Applied Migrations

https://raw.githubusercontent.com/scalatest/autofix/e4de53fa40fac423bd64d165ff36bde38ce52388/3.0.x/rules/src/main/scala/org/scalatest/autofix/v3_0_x/RenameDeprecatedPackage.scala
https://raw.githubusercontent.com/scalatest/autofix/e4de53fa40fac423bd64d165ff36bde38ce52388/3.1.x/rules/src/main/scala/org/scalatest/autofix/v3_1_x/RewriteDeprecatedNames.scala

labels: semver-minor, scalafix-migrations

Pull Request Test Coverage Report for Build 36

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.4%) to 87.692%

Totals

Change from base Build 35:
0.4%

Covered Lines:
57

Relevant Lines:
65

💛  - Coveralls

authors: coveralls scala-steward

repo: evolution-gaming/serially


text:
Background Color does not change despite i set it for cell layout

Hi dear,
i set a color in cell layout for background but when i run it is still  white?

You need to set a TableView listener to be able to show your cell background color. Actually, It's a bug and it wouldn't be necessary. By the way, I have already fixed this problem. This weekend, I will be published new release. And it will be got this fix as well.

thanks man , as soon as possible.

authors: abolfazlrma evrencoskun

repo: evrencoskun/TableView


text:
[WIP] Use activeresource's ThreadsafeAttributes for thread safe config values

This PR proposes using Rails' activeresource's ThreadsafeAttributes to make this gem thread safe.

Looking good @korstiaan, any reason why this is still WIP? Cause otherwise i can merge and release a new version.

@Marthyn we'll have to wait for the activeresource maintainers to merge my PR on the 4-stable branche. It's only merged in master now, which requires Rails' activesupport > 5.0.0

@korstiaan Whats the status on this PR?

@korstiaan Whats the status on this PR?

authors: Marthyn korstiaan

repo: exactonline/exactonline-api-ruby-client


text:
Examine write access to BucketFS

Background and scenario
PM tried out the AI-Lab using

MacOS
Oracle Virtual Box
AI-Lab's VMDK image (VM Edition)
Exasol DB in demodb.exasol.com

See Confluence.
Problem
AI-Lab failed to write files to BucketFS.
curl https://demodb.exasol.com:2202

Both commands require VPN to be active
demodb seems to use a valid certificate from let’s encrypt

bucketfs-python seems to be able to write to the bucket

According to @ahsimb the AI-Lab is hard-coded to always use HTTP only.
In contrast the demodb only supports HTTPS connections.

For development and testing with Docker-DB and ITDE we need to make the Docker-DB expose the HTTPS port.

Time: ~1d

We solved the issue for certificates from trusted CA. The fix for self-signed certificates takes longer and will be tracked in https://github.com/exasol/ai-lab/issues/218

authors: Nicoretti ckunki tkilias

repo: exasol/ai-lab


text:
Add github templates

At issue and PR templates to allow easier creation of tickets and PRs.

We don't have ticket templates in the integration repositories yet. I will close this ticket since we will have to use an automated-mechanism to manage the templates in all repos uniformly at the same time.

authors: Nightapes redcatbear

repo: exasol/exasol-driver-go


text:
rowspan colspan

Hello
I need Excel file with columns from this table:

How I can do it?
Thanks

Is there any update on this?

<template>

        Header 1
        Header 2
        Header 3

        Rowspan 2
        Colspan 2

        Data 2-2

        Data 3-1

        Data 3-3

    <button @click="exportToExcel">Export to Excel</button>

</template>

authors: OlegFromOmsk anirudh411 jocongmin

repo: exceljs/exceljs


text:
Feature: Enable Org-wide visibility into projects

Stories
As private GitHub organization members
in order to be aware of all the work going on in our private org
I want to have read access to every repository in the organization
As a secret repository maintainer
In order to ensure that not everyone sees sensitive repositories
I want to exempt my repository from the org-wide visibility rule
Notes on implementation

[ ] Double-check with IT prior to ensure this isn't a policy issue (confirmed before but never hurts to double-check)
[ ] Decide on the "all org members" group name and add it to the configuration
[ ] Decide on the exemption tag name and add it to the configuration
[ ] Send a mass message to repositories to let them know this change is coming (include a date)

This is the kind of thing we'd probably want to follow-up on to make automated / scheduled (e.g. with an Azure Function). But this will be the quickest way to accomplish for now.
Initial format

Show list of repositories, split by exempt and non-exempt
Button to add the all org members group as viewers to the non-exempt repositories
Warning area to show exempt orgs that still have the group added, and a button to remove them
Show list of org members not added to the all-org-members group and a button to add them.

Closing this issue as it is now its own project.

repo: excellalabs/konmaripo


text:
Is there a way to change query dynamically ?

Hi i have used bool variable, setState, changenotifier. None of them worked . Please let me know if it is possible ?
Thank You

Try adding a key to PaginateFirestore widget and change it when you change the state. But this will reload the whole pagination view

yes, it worked after key addition.
Thank you

authors: excogitatr ganeshchenniah


text:
series: Move bonus instructions to README

series has the standard series exercise and a bonus exercise. The bonus AFAICT is unique to the Go track. I believe it is also the first time we encounter build tags in the track. This may be a good case for adding to the README directly or putting in a .meta/description.md.

I agree. I think there's a few exercises where we can move a lot of the text in a test suite into the README.
I think I'd prefer it went in the .meta/description.md file to keep it separate, unless this ends up being visually confusing.

authors: robphoenix tleen

repo: exercism/go


text:
proverb: adjusted difficulty to 3

Hey, I would suggest to change the difficulty of proverb to 3, as the exercise seems to be easy instead of medium for me

proverb is comparable to beer-song as it also has loops, formatting and stuff like that. beer-song even seems harder and is easy


text:
pharo maintainers link shows 0 - decide who to display

We need to fill out the maintainers.json file and set show_on_website to true, for those maintaining.

I can pick this one up. I'm a bit low on time and this is a quick win. I've had a look at the Ruby one for reference.
@macta I see your already in there. Do you want any additional info e.g. bio, visible on website?
@bencoman I take it you will want to be listed there too? Have a look at the file for the kind of information that can go there. Also let me know if you want to be visible on the website.
If I've left anyone else out who wants to be a maintainer, please leave a comment below.

Added my details.  I don't feel I've done enough lately or for the near future to take credit being visible on the web site.  I'd love to do more and hope to have time in a few weeks.

I’ll add something like you - but I’m in the road at the moment so not been able to easily update mine yet.
At least we are showing 1 maintainer which is a good start.
Looks nice on the site too!

I’ve done my bio too. Closing
Sent with GitHawk

authors: bencoman macta samWson

repo: exercism/pharo


text:
Update URL for Exercism Code of Conduct link.

See https://github.com/exercism/exercism/issues/4441.

Thanks @houhoulis!

authors: benreyn houhoulis

repo: exercism/racket


text:
Add rotational-cipher exericse

Closes #292

@robkeim Are you settled enough that you are ready to look at PR's? If not, no worries of course.

@ErikSchierboom thanks for asking, I'm getting settled in now and will start looking through PRs more regularly.

@robkeim Great! If you find you have a bit of spare time, I'd love to talk to you on what you think about the test generators. Let me know when you have some time :)

@ErikSchierboom yes let's definitely chat! What's your preferred mechanism of communication among the myriad of options we have in today's high tech world? :)

@robkeim I think a private chat on Gitter would be great.

Sounds good @ErikSchierboom. I just sent you a message so we can find a time that works for both of us.

authors: ErikSchierboom robkeim

repo: exercism/xcsharp


text:
new exercise: change

implementation of change exercise for Haskell.

I guess you already discovered that, @abo64 , but Travis CI runs configlet, so it will refuse a new exercise if it is not added to config.yaml.

In what position do you think this exercise should be added?

not sure. the algorithm is perhaps not so trivial, so maybe somewhere in the middle?

I would say it is harder than simple-cipher for sure, but maybe connect and go-counting are harder.
I would put it before connect for now. After we classify all the exercises, we will reorder everything, so it is just temporary.

I'm still not used to this new review feature in GitHub, so this time I'll just write normally.
The PR seems great! Thank you @abo64.
You still need to fix the errors that prevents Travis CI to accept your solution.
Also, run hlint on your solution. It will give you a suggestion.

Now the only issue seems to be the warnings about shadowing variable names, that cause error in Travis CI because your new exercises is tests with stack test --pedantic.

about the eta-reductions of addCoin and dropCoin: compiler complains then about arity mismatch?
or am I doing something wrong here?

The compiler seems to enforce that the two definitions of dropCoin have the same number of arguments.
You can leave it the way it is, or change the last definition to allow the reduction:
    dropCoin _ _ = flip const

Anyway, the exercise seems good to merged as it is. :smile:
The one last thing you can do - if you want to practice your git skill - it to squash all of those commits in one or two. One is easier, with two you can separate the change in config.yaml if you want.
Just remember that the commit names and messages will be eternalized in this repository's history, and thy name shall never be forgotten, Oh, brave contributor! :smile:
If you don't want to do it, I can squash everything while merging. Your choice!

thanks a lot @rbasso
as always when having a discussion with you I have learnt a lot again.

repo: exercism/xhaskell


text:
Modify config.json to add test pattern

As described in #154.
@rchavarria is this what we needed?

Yep! I think so. We'll see when it's merged and integrated into exercism.io

authors: matthewmorgan rchavarria

repo: exercism/xjavascript


text:
stdeviation correctness

Currently I do a weighted standard deviation of each interval weighted by the length of the interval, where I have a maximum weight of 15 minutes for each interval. Unclear if this is the correct way to do it.

Seems alright. Closing for now.


text:
Change categorical seperator

Currently, a underscore _ is used as categorical seperator https://github.com/experimental-design/bofire/blob/629c48aab38d4172cc2da0d5b4b5b7b432b66a92/bofire/domain/features.py#L27
This creates problems in the inverse_transform if an underscore is also present in the feature name of the categorical feature. At least in from_one_hot_encoding. Either we switch to a more rare seperator or we implement the from methods in a way that they are not failing when the column seperator is also used as a normal letter in the feature name. This would be the preferred solution.

Maybe the pandas functions pd.get_dummies and pd.from_dummies can be useful. They also use a separator (default value "_"), though. If the separator should be changed to "a more rare separator", it could also be a multi-character string to make collisions with feature names even less likely.

Solved with this PR: https://github.com/experimental-design/bofire/pull/200

authors: evo-nlueck jduerholt

repo: experimental-design/bofire


text:
Add some functions to control.lua

Add some missing functions to control.lua as some mod code errored due to them being missing.

Fixed

repo: explosivegaming/scenario


text:
Documentation incomplete on converting an existing project to expo

Currently the documentation leaves a lot of vital steps like creating an exp.json file, updating to the proper versions for react and react native, and adding expo to package.json. There might even be more steps that need to be taken, but I know at least these ones are needed even though they're not mentioned in the readme.

Tracking the fix for this issue here https://github.com/expo/xde/issues/113

Any plans to update the documentation?

authors: arapocket brentvatne kitsune7

repo: expo/xde


text:
Add variableHeight argument to CarouselProvider that disables the ratio

What:
Add a variableHeight attribute to CarouselProvider.
If set to true, the Slider will not adhere to the ratio being set with naturalSlideHeight and naturalSlideWidth.
The Slider will have the height of the biggest Slide.

Why:
So you can use non scaling context (like text on the slide).
Without these changes, the Slide would be either too small or too big (and just clip the Slide in half).
This somewhat addresses the issues in the following issues.  This does not however change the hide of the Slider depending on the current shown slide, which might be another cool addition.

https://github.com/express-labs/pure-react-carousel/issues/23
https://github.com/express-labs/pure-react-carousel/issues/225
https://github.com/express-labs/pure-react-carousel/issues/176
https://github.com/express-labs/pure-react-carousel/issues/154

How:
We store variableHeight in the store in CarouselProvider.
Each Slide then sets styles depending on that.
The styles Reset the position, height and padding-bottom css attributes, which allows the Slider to be as heigh as the biggest Slide, therefore dynamicaly scalling with the content.

Checklist:

[x] Documentation added/updated
[x] Typescript definitions updated
[x] Tests added and passing
[x] Ready to be merged

As this is my first change in the library, it might be wise to do a bit further testing, as I might have missed some egde cases.
But it feels very good, and all test pass.

Workaround
This can be archived "from the outside" by using these css rules:
.slider li {
    position: unset !important;
    height: unset !important;
    padding-bottom: unset !important;
}
.slider li .carousel__inner-slide {
    position: unset;
}

Generally, if it can be handled via CSS, then I'm against adding new props to the components.  But this seems to be a recurring theme with the height so I relent.
I have some requests though...
Can you add an example to our list of live demos?  I want to download the branch and see the demo so I can see how this affects a vertical carousel?
If one slide is 1000px in height, does that mean all slides are 1000px in height or are there "gaps" where the background will bleed through.  Have you looked at flex-box instead.  It will make all slides as tall as the tallest slide.
Is there an option for "variable width" on vertical carousels?
I might want to change the name to useIntrinsicDimension or intrinsicAxisSize or something more descriptive because "variable height" to me sounds like responsive height, and the carousel is currently responsive as is.  Might be confusing to others.  I'm getting the Axis concept from flex-box.

@mrbinky3000
I will add a Demo for sure.
Currently they do not flex to all become the same height.
Instead there is a gap beneath all smaller slides, that fills the missing height.
I am unsure what the right solution here would be regarding stretching all of the slides to be the same height, both (stretching and not-stretching) seem to make sense at first thought.
I haven't looked into the width case, so currently there is no such option, it shouldn't be too hard to add though.
Open for renaming, haven't put too much thought into that.
doNotEnforceRatio might be good candidate as well, as this is essentially what this does.

Looking at the vertical orientation:
The width of the whole slider currently scales to 100% of the container, in both vertical and horizontal arrangement. Based on that width, all the other sizes are calculated.
But to have the same behavior in vertical as in horizontal mode (with the new flag enabled), the height should be the size set from outside and all the rest depending on it, so the width then can become dependent on the widest slide.

Can you add the error for using this new flag in vertical mode?
Also can we change the name of the option to "isIntrinsicHeight".  We use "is[blank]" for booleans.  Also the word "use" implies a hook.
Make those changes and I will approve.

Let me know if the Error message is ok the way it is, or if you want to have something added :)

It's all good, thanks!

Thanks for this!
When is it going to be released?

when release ? :) thanks for this package

@allcontributors please add @reckter for code

:tada: This PR is included in version 1.26.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

repo: express-labs/pure-react-carousel


text:
Introducing Versioning to docs

This PR implements versioning to docs using mike.
Draft PR, needs the following to be considered "complete" my side:

[x] update release action to deploy docs with release tag

[ ] generate a nice "You are viewing old docs" message (I need to figure that out first)

As of right now, versioning is working on any PR to main (and this branch), but labeling them as main:unstable so anyone can see what are the main documentation as well

I am having troubles to use the overrides folder from here. It just seems to keep ignoring anything I put there.
Any of you have already worked with it?

Also, do you think it is better to clean up any local changes made with mike deploy within the makefile itself?

"Seeing not the latest docs":

"Seeing Latest docs":

I didn't want to test the release thingy in github actions without a proper merge and review (as it would create a new release)

I just realized I created this branch from fix/docs, so I also merged it with main to avoid any weird conflict it might have had.

/approve

/merge

authors: gusfcarvalho moolen

repo: external-secrets/external-secrets


text:
Plugin compilation warning

Hi.  I'm trying the example at https://extism.org/docs/write-a-plugin/js-pdk.  When I compile the plugin, I get:
warning: unknown name subsection with id 9 at 3197029

This is using version 0.5.0 of the extism-js compiler, on Linux x64.  (Ubuntu 22.04 on WSL)
It does produce a wasm file, but that file doesn't work in my Golang host.  I get the following when attempting to load the plugin:
module[wasi_snapshot_preview1] not instantiated

However, if I use the precompiled wasm sample files from https://github.com/extism/extism/tree/main/wasm my host works fine.

I figured out that I need to pass EnableWasi: true to extism.PluginConfig when loading in my host.  Now it works fine.  Still, I'm not sure what causes the warning during compilation or if I need to worry about that.

warning: unknown name subsection with id 9 at 3197029

This is just a warning saying that the runtime does not recognize a custom section added to the module. This is okay as the custom section is just some extra metadata. It's something happening because of a tool we are using under the hood but should go away soon. Thanks for reporting though!

I figured out that I need to pass EnableWasi: true to extism.PluginConfig when loading in my host.

Good to hear! Yes, js plug-ins need wasi enabled right now unfortunately. However they don't actually need to use the filesystem or network unless your plug-in does.

authors: bhelx mattjohnsonpint

repo: extism/js-pdk


text:
无法在arm64 openwrt 运行

CGO_ENABLED=1 GOOS=linux GOARCH=arm64 CC=aarch64-linux-gnu-gcc go build main.go
编译了一个，但是只能在
Linux NanoPi-R2S 5.4.50 #2 SMP PREEMPT Wed Jul 8 15:28:03 CST 2020 aarch64 aarch64 aarch64 GNU/Linux
下运行，
但是无法在openwrt下运行。
求解，
tun2socks-aarch64.zip

root@OpenWrt:~/tun# ldd tun2socks
        /lib/ld-linux-aarch64.so.1 (0xffffb677f000)
        libpthread.so.0 => /lib/ld-linux-aarch64.so.1 (0xffffb677f000)
        libc.so.6 => /lib/ld-linux-aarch64.so.1 (0xffffb677f000)
        ld-linux-aarch64.so.1 => /lib/ld-linux-aarch64.so.1 (0xffffb6750000)
Error relocating tun2socks: __printf_chk: symbol not found
Error relocating tun2socks: __vfprintf_chk: symbol not found
Error relocating tun2socks: __fprintf_chk: symbol not found

你应该下载对应的 OpenWrt SDK，CC 和 CXX 指定为 openwrt SDK 的 gcc 和 g++，这样这可以运行了

系统是
https://downloads.openwrt.org/snapshots/targets/rockchip/armv8/
这里下载的，
貌似sdk也在这里，
是编译的时候下载sdk，还是在openwrt系统下载安装sdk
具体能指教下吗？

给编译一下呀，

如果你运行OpenWrt的设备空间大，可以直接通过opkg安装golang及gcc，不过开启cgo编译时可能会报一个错误，你可以自己google一下解决。
如果运行OpenWrt的空间不够大，那就在一个Linux上使用SDK，下载解压，staging目录下可以找到gcc，具体过程可以google。

export PATH=/home/openwrt-sdk-rockchip-armv8_gcc-8.4.0_musl.Linux-x86_64/staging_dir/toolchain-aarch64_generic_gcc-8.4.0_musl/bin:$PATH
export STAGING_DIR=/home/openwrt-sdk-rockchip-armv8_gcc-8.4.0_musl.Linux-x86_64/staging_dir/
env GOOS=linux GOARCH=arm64 CGO_ENABLED=1 CC=aarch64-openwrt-linux-musl-gcc CXX=aarch64-openwrt-linux-g++ go build -a -ldflags="-w -s"  ./main.go

编译成功，用不了

CGO_ENABLED=1 CC=aarch64-openwrt-linux-musl-gcc CXX=aarch64-openwrt-linux-g++ GOOS=linux GOARCH=arm64 go build -o server -ldflags '-s -w --extldflags "-static -fpic"' main.go
编译成功，但是用不了。
root@OpenWrt:~/tun# ldd server
ldd: server: Not a valid dynamic program
root@OpenWrt:~/tun# ./server
2020/08/11 02:58:21 failed to open tun device: no such file or directory
root@OpenWrt:~/tun# ./server -h
Usage of ./server:
  -blockOutsideDns
        Prevent DNS leaks by blocking plaintext DNS queries going out through non-TUN interface (may require admin privileges) (Windows only)
  -loglevel string
        Logging level. (debug, info, warn, error, none) (default "info")
  -proxyType string
        Proxy handler type (default "socks")
  -tunAddr string
        TUN interface address (default "10.255.0.2")
  -tunDns string
        DNS resolvers for TUN interface (only need on Windows) (default "8.8.8.8,8.8.4.4")
  -tunGw string
        TUN interface gateway (default "10.255.0.1")
  -tunMask string
        TUN interface netmask, it should be a prefixlen (a number) for IPv6 address (default "255.255.255.0")
  -tunName string
        TUN interface name (default "tun1")
  -tunPersist
        Persist TUN interface after the program exits or the last open file descriptor is closed (Linux only)
  -version
        Print version
root@OpenWrt:~/tun# ./server -tunAddr "10.255.0.2" -tunGw  "10.255.0.1" -tunMask "255.255.255.0" -tu
nName "tun1" -tunDns "8.8.8.8,8.8.4.4" -proxyType "socks" -proxyServer "192.168.6.1:1080"
flag provided but not defined: -proxyServer
Usage of ./server:
  -blockOutsideDns
        Prevent DNS leaks by blocking plaintext DNS queries going out through non-TUN interface (may require admin privileges) (Windows only)
  -loglevel string
        Logging level. (debug, info, warn, error, none) (default "info")
  -proxyType string
        Proxy handler type (default "socks")
  -tunAddr string
        TUN interface address (default "10.255.0.2")
  -tunDns string
        DNS resolvers for TUN interface (only need on Windows) (default "8.8.8.8,8.8.4.4")
  -tunGw string
        TUN interface gateway (default "10.255.0.1")
  -tunMask string
        TUN interface netmask, it should be a prefixlen (a number) for IPv6 address (default "255.255.255.0")
  -tunName string
        TUN interface name (default "tun1")
  -tunPersist
        Persist TUN interface after the program exits or the last open file descriptor is closed (Linux only)
  -version
        Print version

tun2socks-arm64-openwrt.zip
搞 定。

请教，
root@OpenWrt:~# route add -net 104.16.0.0/16 gw 10.255.0.1 dev tun1 root@OpenWrt:~#  ip route default via 10.16.0.1 dev pppoe-wan 10.16.0.1 dev pppoe-wan scope link  src 10.16.225.6 10.255.0.0/24 dev tun1 scope link  src 10.255.0.1 104.16.0.0/16 via 10.255.0.1 dev tun1 192.168.6.0/24 dev br-lan scope link  src 192.168.6.1
这样设置之后，全局走104.16.0.0/16已经正常走隧道了，也就是tun1/10.255.0.1
我想设置子网 192.168.6.171走隧道，其他不走，
路由表怎么添加？
root@OpenWrt:~# route add   -net  192.168.6.171 netmask 255.255.255.255  dev tun1 root@OpenWrt:~# route Kernel IP routing table Destination     Gateway         Genmask         Flags Metric Ref    Use Iface default         10.16.0.1       0.0.0.0         UG    0      0        0 pppoe-wan 10.16.0.1       *               255.255.255.255 UH    0      0        0 pppoe-wan 10.255.0.0      *               255.255.255.0   U     0      0        0 tun1 192.168.6.0     *               255.255.255.0   U     0      0        0 br-lan 192.168.6.171   *               255.255.255.255 UH    0      0        0 tun1 root@OpenWrt:~# ip route default via 10.16.0.1 dev pppoe-wan 10.16.0.1 dev pppoe-wan scope link  src 10.16.130.161 10.255.0.0/24 dev tun1 scope link  src 10.255.0.1 192.168.6.0/24 dev br-lan scope link  src 192.168.6.1 192.168.6.171 dev tun1 scope link
这样设置之后，是不通的、无法上网。
root@OpenWrt:~# route add -net  192.168.6.171 netmask 255.255.255.255 gw 10.255.0.1 dev tun1 root@OpenWrt:~# route Kernel IP routing table Destination     Gateway         Genmask         Flags Metric Ref    Use Iface default         10.16.0.1       0.0.0.0         UG    0      0        0 pppoe-wan 10.16.0.1       *               255.255.255.255 UH    0      0        0 pppoe-wan 10.255.0.0      *               255.255.255.0   U     0      0        0 tun1 192.168.6.0     *               255.255.255.0   U     0      0        0 br-lan 192.168.6.171   10.255.0.1      255.255.255.255 UGH   0      0        0 tun1 root@OpenWrt:~# ip route default via 10.16.0.1 dev pppoe-wan 10.16.0.1 dev pppoe-wan scope link  src 10.16.130.161 10.255.0.0/24 dev tun1 scope link  src 10.255.0.1 192.168.6.0/24 dev br-lan scope link  src 192.168.6.1 192.168.6.171 via 10.255.0.1 dev tun1
这样设置也是不通的。


text:
Color contrast specification / cmd line option

I'd be interested in the ability to control the contrast of colors in the palette relative to the source image using a command-line argument. I find that many of the colors can, at times, be difficult to read e.g. in partially transparent terminals through no fault of the application; I've done some work making a python script to evaluate the average pixel value of the source image and modify the colors in the palette to have >= a specific contrast ratio according to the formulae outlined in the W3 contrast specifications. I'd like to work on implementing the actual math I've written into pywal itself in a fork, and if you'd like I'd be glad to have it pulled in when I'm finished.

Here's an example of the palette from this wallhaven background being modified to a contrast ratio of 3.0. The W3 spec recommends a minimum of 3 for large text, 4.5 for standard text, and 7 for enhanced contrast on standard text; I find that even just ensuring it's at least 2 helps with making sure the colors are readable in the terminal.

Okay, i got no issue with that, but the actual implementation would have to be added into the generic color adjust function: https://github.com/eylles/pywal16/blob/ce46d3c8cfd7fa064dcdf4c6c36c54c2eb19f01a/pywal/colors.py#L67
As the way pywal works is that it is assumed every single backend can return at least 8 colors that are different enough (big assumption) then the generic color adjust function touches them up to create a ligh colorscheme (if flag is passed) or return either a legacy 9 colors scheme or the new 16 colors scheme with either the darken or lighten methods.
To adjust the contrasts between the 8 base colors (background color0, foreground color7, 6 assorted colors 1 to 6) such that the function can still flip the foreground and background to create a light colorscheme and/or darken the colors 1 to 7 or lighten the colors 9 to 14 to preserve the 2 methods used that allows users to choose either amore muted or an almost pastel look for the final palette, the constrast adjust would have to be performed before the other adjust operations.
At least that is my assesment at the moment.

Another potential problem would be that so far I've been getting the average pixel value by using imagemagick to convert the image to 1x1, and as I understand not all of the backends require imagemagick, so it might require a different method of getting the average color or that option wouldn't work without imagemagick installed.
The other design decision would indeed be whether to have it before or after the other generic adjustments; in my mind it would be a completely optional post-processing step on the final colors. In my opinion if the theme is flagged to be light or dark, the generic adjustments might give the colors enough contrast that they wouldn't need to be changed any further; if the contrast adjustment was done first, it might end up modifying the colors further from what the backend originally output than necessary.
That being said I'm just going to keep messing with it on my end for the time being!

It also occurred to me that it might be hard to use a command-line argument to control the desired contrast ratio if it was in the generic_adjust function, as the argument would have to get passed around different places; in contrast (pun acknowledged), if it was somewhere in the neighborhood of colors.get():
https://github.com/eylles/pywal16/blob/ce46d3c8cfd7fa064dcdf4c6c36c54c2eb19f01a/pywal/colors.py#L230
then it could be passed into this method alongside the saturation value in saturate_colors

That could work, for me there is no problem adding more arguments to the generic_adjust function, after all that boat sailed long ago when the ability to generate 16 colors was first added and then later when i added the lighten method, i know that is a hassle for any project using pywal16 as a library, but so far the only project i know does that is wpgtk and they added support for pywal16 back in january, pywal16 has changed internally quite a bit since so no idea how it works for them as i don't use wpgtk.
Rambling aside, doing the contrast adjust after the generic adjust is the way to go.

Another stumbling block I'm running into again that I had run into before and forgotten about is the numbering of the color schemes, which is a bit more fundamental to how the application actually works. I've noticed that the first half of the colors are always darker, and the second half are always brighter. When modifying the colors to ensure their contrast this becomes a bit of a complicated problem; the way I had it set up before was to just process all the colors (except perhaps color0), but it would make more sense to only modify the foreground colors.
The thing that I've noticed is, this gets complicated when talking about light vs dark themes, because there's not really a strong delineation between "foreground" or "background" colors (except e.g. color0 clearly being a background color) in the schemes. Templates that use color2, for example, will always be using the darker version of the color compared to color10 regardless of whether the theme is dark or light.
The reason this is even a question I asked to myself is that you can see the contrast-ification making the front 8 and back 8 colors much closer together, which in some ways defeats the purpose of having 16 colors, but if I'm trying to style a terminal to make the text stand out on a dark background I need the specific colors used in the template to have the required contrast.
I think for now, as an optional post-processing step, I'd make it work the way it had already where it just modifies (or at least checks on) almost all of the colors except say 0 and 15 that get explicitly used in different templates as foreground/background. I bring it up mostly as food for thought.

well, the "frontrow" colors (1 to 7) being darker than the "backrow" colors (9 to 15) is an intentional part of the "format" for 16 colors colorschemes, as usually the colors 1 to 6 are the "normal" colors while colors 9 to 14 are the "bright" colors, color 0 is usually the same as background (but not always) and color 15 is the same as foreground (not always)
an example of a popular theme that follows that unspoken spec would be dracula, particularly the xresources dracula theme is a great example.

I have a working build with everything in the scope of what I set out to do, but there is one caveat (which I don't think would end up being that much of a deal, but it's worth bringing up)
I added the contrast argument on my branch as one of the variables used for the cache name, but adding that will invalidate existing cached color schemes. It shouldn't cause any unexpected overlap or unintentional loading of old cached themes, but it would make themes have to be generated again next time the command was used.
If there were a design decision later down the line to move the contrast checking before the generic adjustments, then all it would take is the function calls to get moved around and the contrast value being passed through those extra functions as we discussed!

I added the contrast argument on my branch as one of the variables used for the cache name, but adding that will invalidate existing cached color schemes. It shouldn't cause any unexpected overlap or unintentional loading of old cached themes, but it would make themes have to be generated again next time the command was used.

okay let me see if i get that correctly, does it work in a similar way to the cols16 method? say for example, i pass an image to pywal16, using the --cols16 flag with the 'darken' argument and the result colorscheme will be named like path_to_waifu_image_png_16_darken_wal_None_42069_1.1.0.json but if i pass 'lighten' then the name will be like path_to_waifu_image_png_16_lighten_wal_None_42069_1.1.0.json.
so with the --contrast flag if i were to pass say '2' the colorscheme name would be something like:      path_to_waifu_image_png_16_darken_wal_None_2_42069_1.1.0.json
but passing a 3 would be:
path_to_waifu_image_png_16_darken_wal_None_3_42069_1.1.0.json
right? or did i fail to understand?

I ran the unit tests with python -m unittest discover tests from the pywal16 directory and everything output OK

i will be honest with you, since i've been working on the pywal16 fork i've never used the unit tests, only discovered those existed a couple days before releasing 3.6.0, all this time i've been rawdogging the testing of pywal16 by running it with every image i can, with every flag relevant to what i'm doing and keeping an open eye if it blows up and how.
anyway, i will take if that your testing was thoroughly and it works as intended.
if you got any question please feel free to ask, as a codebase pywal was written in 2017, way before the advent of LSPs, treesitter and all the current coding niceties we are used as of current year, thus cruft is bound to exist on the less worked parts of pywal.

Yeah I didn't think the unit tests had been touched in a while and they had gotten set up a long long time ago, I was mostly curious if they would pick up on anything I missed 😅.
As for the caching, I passed the string from the command line argument in directly:
wal -i "path_to_img_png" --cols16 -n caches to path_to_img_png_16_darken_dark_None_None_None_1995855_1.1.0.json (extra None compared to the same command without the branch changes) whereas wal -i "path_to_img_png" --cols16 -n --contrast 3 will cache to path_to_img_png_16_darken_dark_None_None_3_1995855_1.1.0.json
This works but isn't necessarily the greatest way to do it because passing --contrast 3 and --contrast 3.0 will cache to different files even though their meaning is equivalent

This works but isn't necessarily the greatest way to do it because passing --contrast 3 and --contrast 3.0 will cache to different files even though their meaning is equivalent

Open the pr, i'm already thinking of how to normalize the argument values so that 3 and 3.0 will go to the same file.

authors: ambertia eylles


text:
New Node added no show

Hi @ezraroi,
Thanks for creating and sharing this project.
I am trying to add a new node using a custom context menu.
After the new node is added I can see it inside the treeData array, but it doesn't show on the tree though.
I have created a plunker reproducing this issue.
I appreciate any help.

you will need to use $timeout as the adding to the vm.treeData is executed outside if angular as this is an javascript executed by the jstree component it self.
$timeout(function() {
  vm.addValue($node);
});

Thanks for the fast response. It works !!!!!

authors: ezraroi jmelosegui

repo: ezraroi/ngJsTree


text:
Better codecov conf

wait all 3 build before reporting
color range between 70 and 100
round down with 2 precision
treshold of 0.1% for success in ci
require coverange change for commenting

@Meakk : this does not seems to work as expected, investigation needed.


text:
Update the OTLP-Arrow bridge to demonstrate use of per-request authorization

The former examples/bridge now includes the use of per-request metadata.

I will avoid replacing the prior example, leave it (with batch processor) and add this example as a new one, since batch processor is incompatible with per-request metadata.


text:
Support Production Workloads

I want Persul to support production workloads. This issue defines what that actually means in terms of numbers.
Numbers
PURL creation
Parameters
A rough estimation which I have repeatedly used, adjusted for nice fractions:

1.000 distinct users creating purls
1.000 purls created / per day * per user (= 40 / hour ~ 0.6 / minute)
86.400 purls created / day * user

breaks down into 3.600 / hour = 60 / minute = 1 / second

purls have a minimum lifespan of 10 years

Deductions
Given these numbers ...

86.400.000 purls would be created every year
864.000.000 purls would have been created after 10 years

Side note on data types:

32-bit integer IDs will be able to address ~4 billion PURLs.
With 64 bit that would go up to 18.446.744.073.709.551.615
UUIDs are 128 bit have an adress space large enough that I won't bother writing down the number. Don't quote me on that 😉

PURL resolution
In my use case I expect that PURLs will be resolved infrequently, potentially never.
Due to that expectation I don't yet have detailed numbers expect these:

Only 10% of all PURLs are ever resovled. The remaining 90% are created but never resolved.
Users expect a PURL to resolve within 1 second on average. This does not take into account the time the actual resolved URL is loaded by browsers since that is not under Persurls control.

Related

#28
#7

I ran the application (based on #42) on Railway while trying to set up a demo deployment (see #40). I ran the load tests which gave me these numbers (1 minute for each parameter set):

Concurrent PURL creators
 Average request time

1-25
 10-20ms

50
 50ms

100
 700ms

200
 800ms

250
 1.2s

500
 2.6s

This shows that there is definitely a bottleneck at least due to the addition of a RWMutex in #38.
Right now these numbers are okay with me and the show a potential for optimization. I am sure that the request times will go down once SQLite is replaced with a dedicated database #7.

I re-ran load tests on Railway using Postgres and a connection pool of max 10 connections. Results:

Concurrent PURL creators
 Average request time

1-25
 3ms - sometimes with a couple of 20ms

50
 3ms - more with a couple of 20ms

100
 10-20ms - still with a lot of 3-5ms requests

250
 10-30ms

500
 10-50ms

1000
 wide range from 10ms to 400ms

Service metrics:

Postgres metrics:

Summary

Generally response times have dramatically improved with the addition of postgres in #50.
1000 agents tried to create a PURL every 50ms. In the current test these agents created a total of 190.382 purls in 1 minute.

As far as request/response time of PURL creation goes, I consider Persul to be production ready.

[ ] I have not yet done any tests on resolve times which I may add later
[ ] Currently, the id columns of the purls table is an 32bit integer. A future version of persul will have to go for a 64bit integer. To avoid downtime due to reaching this limit, the system should implement a health check based on the remaining available row count in the purls table.

repo: fabiante/persurl


text:
Use providers argument for extractor

Replaces hard-coded providers in extractor's InferenceSession with input providers argument.

Hi @davidtvs, thank you for the PR

authors: davidtvs fabio-sim

repo: fabio-sim/LightGlue-ONNX


text:
http: proxy error: context canceled

With the latest couple of version, we get a lot of these errors:
fabio    | 2017/07/06 14:58:15 http: proxy error: context canceled
fabio    | 2017/07/06 14:58:16 http: proxy error: context canceled
fabio    | 2017/07/06 14:58:16 http: proxy error: context canceled
fabio    | 2017/07/06 14:58:16 http: proxy error: context canceled
fabio    | 2017/07/06 14:58:16 http: proxy error: context canceled
fabio    | 2017/07/06 14:58:16 http: proxy error: context canceled
fabio    | 2017/07/06 14:58:16 http: proxy error: context canceled
fabio    | 2017/07/06 14:58:16 http: proxy error: context canceled
fabio    | 2017/07/06 14:58:16 http: proxy error: context canceled
fabio    | 2017/07/06 14:58:16 http: proxy error: context canceled
fabio    | 2017/07/06 14:58:16 http: proxy error: context canceled
fabio    | 2017/07/06 14:58:16 http: proxy error: context canceled
fabio    | 2017/07/06 14:58:16 http: proxy error: context canceled
fabio    | 2017/07/06 14:58:16 http: proxy error: context canceled
fabio    | 2017/07/06 14:58:16 http: proxy error: context canceled
These are requests from visual studio polling a nuget server for updates by the way.
The complexe flow:
visual studio -> fabio -> haproxy doing an url rewrite -> nexus repository manager.
We run fabio in a docker container.
We have these errors with any version later than 1.3.8-go1.7.5
With 1.3.8-go1.7.5, we don't have this problem.
If I add a haproxy in front of fabio, I also don't get this error.
We're not using SSL.
Anyone got any idea if this can be caused by a go bug?

Same problem.
I try to add a route like :

route add new_service xx.domain.com http://a-new-url.zz.com

Fabio log :
2017/09/27 14:21:34 http: proxy error: context canceled
2017/09/27 14:21:34 http: proxy error: context canceled
2017/09/27 14:21:34 http: proxy error: context canceled

Can you post your runtime config?

+ service-a service.production.mydomain.com/ http://192.168.100.10:80/
+ new-service service.mydomain.com/ http://service.production.mydomain.com

on which route is fabio causing the error? Is that reproducible? Do you have write or read timeout set in the config?

The error is when I test http://service.mydomain.com .
My simple config :
proxy.addr = :9999,:443;proto=tcp+sni,:1234;proto=tcp

Duplicate of #264

Closing because of duplicate

authors: magiconair tbouvet tomstaijen

repo: fabiolb/fabio


text:
Fabio Using Container IPs to create routes

I have a Nomad Cluster with 3 servers, 3 Clients and a Consul Cluster with 3 servers and Consul Agent running everywhere. I used Fabio as Systemd service. All are running on RHEL8. Regular health checks and services related to Nomad, Fabio and Consul are reporting fine into Consul's UI.
The problem I am running into is when I execute a Nomad Job with any container that has an exposed port. In this case a tomcat container with port 8080 exposed inside container. Nomad job syntax below:
job "tomcat-test" {
  datacenters = ["dev"]
  type        = "service"

  update {
    max_parallel     = 1
    min_healthy_time = "30s"
    healthy_deadline = "5m"
    auto_revert      = false
    canary           = 3
    health_check     = "checks"
  }

  group "test-group" {
    count = 3

  network {
        port "http" {
          to = 8080 # Mapping to container port externally
        }
  }

  task "tomcat-test" {
    driver = "podman"
    config {
      image = "nexus.mydomain.com:8081/my-ubi/rhel8-tomcat9:latest"
      auth {
        username = "nomad-user"
        password = "N0madUs3r"
      }
          ports = ["http"]
     }

    service {
      name = "tomcat-test"
          port = "http"
      tags = [
        "urlprefix-/tomcat-test strip=/tomcat-test",
      ]
      check {
        type     = "http"
        path     = "/"
        interval = "2s"
        timeout  = "2s"
      }
    }
   }
}
}

On Nomad UI the job ID shows the actual Nomad Client's host IPs and Nomad's Dynamic ports.
Actual Network Interface IPs and Dynamic Nomad Ports
Name                    Host Address                                    Mapped Port
http                       10.201.2.203:21246                          8080
http                       10.201.2.204:22048                          8080
http                       10.201.2.204:28093                          8080

However, in Fabio, I see that routes are created pointing to Container's internal IPs and port numbers.
1              tomcat-test        /tomcat-test      http://10.88.0.15:8080/ strip=/tomcat-test          33.33%
2              tomcat-test        /tomcat-test      http://10.88.0.13:8080/ strip=/tomcat-test          33.33%
3              tomcat-test        /tomcat-test      http://10.88.0.12:8080/ strip=/tomcat-test          33.33%

We have an external load balancer with Nomad Clients (because they have Fabio Service on them) configured in pool for accessing the apps and services running on Nomad Clients using urlprefix. Every time I access the Nomad Client's externally advertised address, Fabio forwards the requests to the Container's internal IP and port.
I can access the app or service fine if my request is going to Host A and Fabio's routing table is pointing to the container's IP that happens to be running on Host A at that time as a part of Fabio's round-robin scheme. (Fluke/Random)
However if I try to access the same app/service again, Fabio points the request to either Host B or Host C's container's internal IP from Host A as a part of it's Round-Robin strategy. Since Host A is active on external load balancer's pool serving the requests and also since Host A can't reach an IP of a container running on either Host B or Host C, I get 'Page isn't working' error.
If I keep hitting refresh, I get the page again on 3rd attempt as it points back to the container IP running on the Host A because of round-robin. Any way to make Fabio use only actual host IPs and ports instead of container IPs.
Everything works fine if I am running a raw_exec or java driver based apps using ${NOMAD_PORT_http}. My guess is there's no two networks involved and it's going with the actual host's IPs. However in the case of container, there are two networks involved and it's picking the container network to create routes instead of using the latter.
Please help.

I suspect this is going to be down to how the nomad podman task driver works. Like docker, podman will create a separate network stack for a task group and Nomad has to decide whether to register the podman stack details or the host details when it registers the service with consul. If you look in consul you will likely see the service registration details are for the internal (podman stack) network.
If you update the service definition in your job file to include address_mode: "host" it might fix things for you :) Note that this might then break health checks as these can have their own address_mode and don't inherit the service setting - but in your case as you want the host ip and port hopefully it will be fine.

I moved the service health check stanza to group stanza and it started working as expected. Thank you. :)

authors: arunkchow far-blue


text:
Modify MVP - FIM code that supports diffing topologies

Diffying topologies works.
        diff_res = self.topoA.diff(self.topoB)

where diffres is a TopologyDiff dataclass:
@dataclasses.dataclass
class TopologyDiffTuple:
    nodes: set[Node]
    components: set[Component]
    services: set[NetworkService]
    interfaces: set[Interface]

@dataclasses.dataclass
class TopologyDiff:
    added: TopologyDiffTuple
    removed: TopologyDiffTuple

Note that both topologies (topoA and topoB) must be loaded into Neo4j. Remember that all ModelElement objects (Node, Component, Interface, NetworkService) are shallow and build their innards by querying the underlying backend (Neo4j in this case) when properties are needed. Both graphs topoA and topoB must therefore be present, otherwise only names and GUIDs of the elements will be known.
Creating them can be done thusly:
        self.n4j_imp = Neo4jGraphImporter(url=self.neo4j["url"], user=self.neo4j["user"],
                                          pswd=self.neo4j["pass"],
                                          import_host_dir=self.neo4j["import_host_dir"],
                                          import_dir=self.neo4j["import_dir"])
        self.topoB = f.ExperimentTopology(importer=self.n4j_imp)
        new_id = str(uuid.uuid4())
        # if you need to override graph id use new_graph_id, otherwise parameter is optional
        self.topoB.load(graph_string=graph_A_string, new_graph_id=new_id)

Also now the code allows to dynamically connect/disconnect interfaces from services, not just passing them in the constructor (although that is still valid):
        self.topoA.add_network_service(name='bridge2', nstype=ServiceType.L2Bridge)
        nD = self.topoA.add_node(name='NodeD', site='UKY')
        nic4 = nD.add_component(name='nic4', ctype=ComponentType.SharedNIC, model='ConnectX-6')
        self.topoA.network_services['bridge2'].connect_interface(nic4.interface_list[0])
        nE = self.topoA.add_node(name='NodeE', site='UKY')
        nic5 = nE.add_component(name='nic5', ctype=ComponentType.SharedNIC, model='ConnectX-6')
        self.topoA.network_services['bridge2'].connect_interface(nic5.interface_list[0])

Similarly you can disconnect:
        disconnected_interface = self.topoB.nodes['NodeD'].components['nic4'].interface_list[0]
        self.topoB.network_services['bridge2'].disconnect_interface(disconnected_interface)

Also now substrate models can be validated, not just experiment topology objects.
NOTE: NetworkService objects continue to have site property, however it is no longer set in the constructor (because it may not be possible) by default. Instead the validate() call sets it. Also NetworkService constructor does allow explicitly setting the site property if needed and validate() call checks that it was set correctly based on the interfaces that were connected to the service.

This is in PyPi as 1.3.0b2

repo: fabric-testbed/InformationModel


text:
Re-introduce skipped tests

https://github.com/fabric8-services/fabric8-wit/issues/2343 involves database migrations and until the database is migrated some of the tests will not pass. These tests that depend on the database have been skipped via https://github.com/fabric8-services/fabric8-wit/pull/2333 (https://github.com/fabric8-services/fabric8-wit/pull/2333/commits/08a84da3740c5ac874429245b0f8779f4cca781a)
Once database migrations have been added, the skipped tests should be enabled.

The issues has been resolved. Closing it.


text:
Add EE API tests to PRs

This PR adds EE API tests to WIT pipeline.
Ref: https://github.com/fabric8-services/fabric8-wit/issues/2164
Co-authored-by: Konrad Kleine 193408+kwk@users.noreply.github.com

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Cc @jarifibrahim

[test]

Codecov Report

Merging #2197 into master will increase coverage by 0.05%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #2197      +/-   ##
==========================================
+ Coverage   69.63%   69.69%   +0.05%
==========================================
  Files         171      171
  Lines       15754    15754
==========================================
+ Hits        10971    10979       +8
+ Misses       3785     3777       -8
  Partials      998      998

Impacted Files
Coverage Δ

remoteworkitem/scheduler.go
60.97% <0%> (+7.31%)
:arrow_up:

remoteworkitem/jira.go
100% <0%> (+25%)
:arrow_up:

Continue to review full report at Codecov.

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

[test]

[test]

@kwk Made some changes as you asked for, except the separate job one.

@kwk Added code to kill wit process during cleanup.

@kwk You changed the call from make test-e2e to make docker-test-e2e. Is this enough or more needs to be done?

[test]

[test]

@rgarg1 your script EE_API_automation/cico_run_EE_tests_wit.sh executes these steps which won't work on CI I think:
/home/kkleine/go/src/github.com/fabric8-services/fabric8-wit/tmp/fabric8-test/EE_API_automation/cico_run_EE_tests_wit.sh
installing dependency
[sudo] Password for kkleine:

[test]

[test]

Can you confirm if you saw that prompt locally?

@rgarg1 yes, I was running it locally.
I've made a change in be67277 to manually bring up the necessary containers that we need. So far the make target docker-compose-up hasn't been used in CI which is why now we do all the setup in the e2e-tests target, including the download of docker-compose. I hope this works now.

[test]

authors: aslakknutsen centos-ci codecov-io jarifibrahim kwk rgarg1


text:
"Edit" button does not respect the version of the doc

Is this a bug report?
Yes

Have you read the Contributing Guidelines on issues?
Of course!11
Environment
(Docusaurus version via npm outdated docusaurus or yarn outdated docusaurus, OS, Node, npm, yarn)
1.2.1
Steps to Reproduce

(Write your steps here:)

Go to https://docusaurus.io/versions
Choose a non-master version, like 1.0.11
Go to a doc, like: https://docusaurus.io/docs/en/1.0.11/commands#docusaurus-start-port-number
Click Edit

Expected Behavior

I expect to edit the 1.0.11 version of api-commands.md, not master's api command.md. I should be taken https://github.com/facebook/Docusaurus/edit/master/website/versioned_docs/version-1.0.11/api-commands.md, not https://github.com/facebook/Docusaurus/edit/master/docs/api-commands.md
Actual Behavior
Clicking on Edit take me to master: https://github.com/facebook/Docusaurus/edit/master/docs/api-commands.md
Reproducible Demo
Reproduced on docusaurus.io

I think this might be intended. Changes are only made for next docs.
Let's say we are currently at 1.0.13. There is a typo that has occured since version 1.0.11.
With the proposed behavior, if we fix the typo of the docs in 1.0.11, the typo will still occurs in 1.0.12 and 1.0.13.
But I do agree that the current behavior is slightly weird as well.

authors: endiliey machikoyasuda

repo: facebook/Docusaurus


text:
bit.ly/CRA-PWA link is broken

https://github.com/iansu/create-react-app/blob/7c65ba71f12559ef15c7b005d6bd0e9119e7e806/packages/react-scripts/template/src/index.js#L11 links to http://bit.ly/CRA-PWA but when you follow the link, it takes you to https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#making-a-progressive-web-app and that section isn't in the template.

duplicate of #5536 probably should have searched

repo: facebook/create-react-app