text:
State Sync not working

I am testing state-sync from our RPC nodes which have been set up according to the config described below. Please let me know if I am doing anything wrong, or leaving out any necessary step.
Here is my application's tendermint version:
ABCI: 1.0.0
BlockProtocol: 11
P2PProtocol: 8
Tendermint: 0.37.1

My RPC nodes have the following config in app.toml
###############################################################################
###                        State Sync Configuration                         ###
###############################################################################

# State sync snapshots allow other nodes to rapidly join the network without replaying historical
# blocks, instead downloading and applying a snapshot of the application state at a given height.
[state-sync]

# snapshot-interval specifies the block interval at which local state sync snapshots are
# taken (0 to disable).
snapshot-interval = 1000

# snapshot-keep-recent specifies the number of recent snapshots to keep and serve (0 to keep all).
snapshot-keep-recent = 2

The node I am trying to bring up via state-sync has the following in config.toml. Trust Height is latest block -1000 and is updated each time, along with trust hash.
#######################################################
###         State Sync Configuration Options        ###
#######################################################
[statesync]
# State sync rapidly bootstraps a new node by discovering, fetching, and restoring a state machine
# snapshot from peers instead of fetching and replaying historical blocks. Requires some peers in
# the network to take and serve state machine snapshots. State sync is not attempted if the node
# has any local state (LastBlockHeight > 0). The node will have a truncated block history,
# starting from the height of the snapshot.
enable = true

# RPC servers (comma-separated) for light client verification of the synced state machine and
# retrieval of state data for node bootstrapping. Also needs a trusted height and corresponding
# header hash obtained from a trusted source, and a period during which validators can be trusted.
#
# For Cosmos SDK-based chains, trust_period should usually be about 2/3 of the unbonding time (~2
# weeks) during which they can be financially punished (slashed) for misbehavior.
rpc_servers = "http://34.31.152.238:80,http://35.246.188.47:80"
trust_height = 1569274
trust_hash = "59E5CBC5E2B0B3E251FC3667F4E8CC2DFB7ED12F1C041252E2169022CAC3A899"
trust_period = "168h0m0s"

# Time to spend discovering snapshots before initiating a restore.
discovery_time = "15s"

# Temporary directory for state sync snapshot chunks, defaults to the OS tempdir (typically /tmp).
# Will create a new, randomly named directory within, and remove it when done.
temp_dir = ""

# The timeout duration before re-requesting a chunk, possibly from a different
# peer (default: 1 minute).
chunk_request_timeout = "10s"

# The number of concurrent chunk fetchers to run (default: 1).
chunk_fetchers = "4"

However, the node does not sync. Instead, I see these logs:
6:08PM INF starting node with ABCI Tendermint in-process module=server
6:08PM INF service start impl=multiAppConn module=proxy msg={}
6:08PM INF service start connection=query impl=localClient module=abci-client msg={}
6:08PM INF service start connection=snapshot impl=localClient module=abci-client msg={}
6:08PM INF service start connection=mempool impl=localClient module=abci-client msg={}
6:08PM INF service start connection=consensus impl=localClient module=abci-client msg={}
6:08PM INF service start impl=EventBus module=events msg={}
6:08PM INF service start impl=PubSub module=pubsub msg={}
6:08PM INF service start impl=IndexerService module=txindex msg={}
6:08PM INF Version info abci=1.0.0 block=11 commit_hash= module=server p2p=8 tendermint_version=0.37.1
6:08PM INF This node is not a validator addr=49BF5A9A0C4117F5EB1E51AFFB59755D8371A8FA module=consensus pubKey=uEUPyozNqgYUQsSL9KWHJ4aas3YkiEczknKJKB08jpQ=
6:08PM INF P2P Node ID ID=0b8f89eb909b9098fe19af1d4d61e3e257d31c5a file=/home/ashish/.ssc/config/node_key.json module=p2p
6:08PM INF Adding persistent peers addrs=["e7f5e5327a8298eb04c29c4115ccf2d6a05ec732@35.233.157.115:26656","3abc213ec08ece180e6fa1443226689ecc4b7749@34.89.206.238:26656","239b182bab3252c26fc116bf00301f30f1dea01e@34.92.42.230:26656","8d936668e433e9e50cd4e60da218a9fe81950d3f@34.71.122.182:26656","65b64dc2d28e0116da22582cb947ec7bc8c91173@35.215.225.128:26656"] module=p2p
6:08PM INF Adding unconditional peer ids ids=[] module=p2p
6:08PM INF Add our address to book addr={"id":"0b8f89eb909b9098fe19af1d4d61e3e257d31c5a","ip":"0.0.0.0","port":26656} book=/home/ashish/.ssc/config/addrbook.json module=p2p
6:08PM INF service start impl=Node module=server msg={}
6:08PM INF Starting pprof server laddr=localhost:6060 module=server
6:08PM INF serve module=rpc-server msg={}
6:08PM INF service start impl="P2P Switch" module=p2p msg={}
6:08PM INF service start impl=Reactor module=blockchain msg={}
6:08PM INF service start impl=ConsensusReactor module=consensus msg={}
6:08PM INF Reactor  module=consensus waitSync=true
6:08PM INF service start impl=Evidence module=evidence msg={}
6:08PM INF service start impl=StateSync module=statesync msg={}
6:08PM INF service start impl=PEX module=pex msg={}
6:08PM INF service start book=/home/ashish/.ssc/config/addrbook.json impl=AddrBook module=p2p msg={}
6:08PM INF Saving AddrBook to file book=/home/ashish/.ssc/config/addrbook.json module=p2p size=30
6:08PM INF Ensure peers module=pex numDialing=0 numInPeers=0 numOutPeers=0 numToDial=10
6:08PM INF Starting state sync module=statesync
6:08PM INF Downloading trusted light block using options module=light
6:08PM INF service start impl="Peer{MConn{34.71.122.182:26656} 8d936668e433e9e50cd4e60da218a9fe81950d3f out}" module=p2p msg={} peer={"id":"8d936668e433e9e50cd4e60da218a9fe81950d3f","ip":"34.71.122.182","port":26656}
6:08PM INF service start impl=MConn{34.71.122.182:26656} module=p2p msg={} peer={"id":"8d936668e433e9e50cd4e60da218a9fe81950d3f","ip":"34.71.122.182","port":26656}
6:08PM INF service start impl="Peer{MConn{173.234.17.237:26656} fa64dcb9be1733fe27e932b3d5da1e685be6906a out}" module=p2p msg={} peer={"id":"fa64dcb9be1733fe27e932b3d5da1e685be6906a","ip":"173.234.17.237","port":26656}
6:08PM INF service start impl=MConn{173.234.17.237:26656} module=p2p msg={} peer={"id":"fa64dcb9be1733fe27e932b3d5da1e685be6906a","ip":"173.234.17.237","port":26656}
6:08PM INF service start impl="Peer{MConn{34.89.206.238:26656} 3abc213ec08ece180e6fa1443226689ecc4b7749 out}" module=p2p msg={} peer={"id":"3abc213ec08ece180e6fa1443226689ecc4b7749","ip":"34.89.206.238","port":26656}
6:08PM INF service start impl=MConn{34.89.206.238:26656} module=p2p msg={} peer={"id":"3abc213ec08ece180e6fa1443226689ecc4b7749","ip":"34.89.206.238","port":26656}
6:08PM INF service start impl="Peer{MConn{43.157.26.164:26656} e3f30a584c09a2a599ab58fbe8fc2958faf6c351 out}" module=p2p msg={} peer={"id":"e3f30a584c09a2a599ab58fbe8fc2958faf6c351","ip":"43.157.26.164","port":26656}
6:08PM INF service start impl=MConn{43.157.26.164:26656} module=p2p msg={} peer={"id":"e3f30a584c09a2a599ab58fbe8fc2958faf6c351","ip":"43.157.26.164","port":26656}
6:08PM INF sync any module=statesync msg={}
6:08PM INF service start impl="Peer{MConn{135.181.220.33:26656} 82417f944fbf680042de3c4acf33aed51b34e8ec out}" module=p2p msg={} peer={"id":"82417f944fbf680042de3c4acf33aed51b34e8ec","ip":"135.181.220.33","port":26656}
6:08PM INF service start impl=MConn{135.181.220.33:26656} module=p2p msg={} peer={"id":"82417f944fbf680042de3c4acf33aed51b34e8ec","ip":"135.181.220.33","port":26656}
6:08PM INF service start impl="Peer{MConn{165.154.224.37:26656} d9dabf20d621a021aac1477b5a714cd5a8d8a3b5 out}" module=p2p msg={} peer={"id":"d9dabf20d621a021aac1477b5a714cd5a8d8a3b5","ip":"165.154.224.37","port":26656}
6:08PM INF service start impl=MConn{165.154.224.37:26656} module=p2p msg={} peer={"id":"d9dabf20d621a021aac1477b5a714cd5a8d8a3b5","ip":"165.154.224.37","port":26656}
6:08PM INF service start impl="Peer{MConn{35.233.157.115:26656} e7f5e5327a8298eb04c29c4115ccf2d6a05ec732 out}" module=p2p msg={} peer={"id":"e7f5e5327a8298eb04c29c4115ccf2d6a05ec732","ip":"35.233.157.115","port":26656}
6:08PM INF service start impl=MConn{35.233.157.115:26656} module=p2p msg={} peer={"id":"e7f5e5327a8298eb04c29c4115ccf2d6a05ec732","ip":"35.233.157.115","port":26656}
6:08PM INF service start impl="Peer{MConn{35.215.225.128:26656} 65b64dc2d28e0116da22582cb947ec7bc8c91173 out}" module=p2p msg={} peer={"id":"65b64dc2d28e0116da22582cb947ec7bc8c91173","ip":"35.215.225.128","port":26656}
6:08PM INF service start impl=MConn{35.215.225.128:26656} module=p2p msg={} peer={"id":"65b64dc2d28e0116da22582cb947ec7bc8c91173","ip":"35.215.225.128","port":26656}
6:08PM INF service start impl="Peer{MConn{34.92.42.230:26656} 239b182bab3252c26fc116bf00301f30f1dea01e out}" module=p2p msg={} peer={"id":"239b182bab3252c26fc116bf00301f30f1dea01e","ip":"34.92.42.230","port":26656}
6:08PM INF service start impl=MConn{34.92.42.230:26656} module=p2p msg={} peer={"id":"239b182bab3252c26fc116bf00301f30f1dea01e","ip":"34.92.42.230","port":26656}
6:08PM INF sync any module=statesync msg={}
6:08PM INF Ensure peers module=pex numDialing=0 numInPeers=0 numOutPeers=9 numToDial=1
6:08PM INF We need more addresses. Sending pexRequest to random peer module=pex peer={"Data":{},"Logger":{"Logger":{}}}
6:08PM INF sync any module=statesync msg={}

I check the status on my local node and it shows me this:
{"NodeInfo":{"protocol_version":{"p2p":"8","block":"11","app":"0"},"id":"0b8f89eb909b9098fe19af1d4d61e3e257d31c5a","listen_addr":"tcp://0.0.0.0:26656","network":"ssc-testnet-1","version":"0.37.1","channels":"40202122233038606100","moniker":"state-sync-node","other":{"tx_index":"on","rpc_address":"tcp://127.0.0.1:26657"}},"SyncInfo":{"latest_block_hash":"","latest_app_hash":"","latest_block_height":"0","latest_block_time":"1970-01-01T00:00:00Z","earliest_block_hash":"","earliest_app_hash":"","earliest_block_height":"0","earliest_block_time":"1970-01-01T00:00:00Z","catching_up":true},"ValidatorInfo":{"Address":"49BF5A9A0C4117F5EB1E51AFFB59755D8371A8FA","PubKey":{"type":"tendermint/PubKeyEd25519","value":"uEUPyozNqgYUQsSL9KWHJ4aas3YkiEczknKJKB08jpQ="},"VotingPower":"0"}}

Anything in the debug logs --log_level="*:debug"? https://docs.cometbft.com/main/explanation/core/running-in-production#logging

Anything in the debug logs --log_level="*:debug"? https://docs.cometbft.com/main/explanation/core/running-in-production#logging

Sorry just saw this. I will revert back today with the logs.

@melekes please see the debug log from today:
sscd.log

Hi @melekes or anyone from the CometBFT team,
Any thoughts or way forward on this?

Hey guys, any updates on this? I realized I also needed seed nodes and I have added those to my node's config.toml and tried running this. Still no luck - same issue.

@hvanz could you please take a look at this issue (as a part of the state-sync sprint)?

I looked at the log; it seems that Comet requests the list of snapshots from its peers, but it never gets a response. Is it possible that the problem is in the implementation of ListSnapshots in the application?

I looked at the log; it seems that Comet requests the list of snapshots from its peers, but it never gets a response. Is it possible that the problem is in the implementation of ListSnapshots in the application?

@hvanz It is a vanilla Cosmos SDK application and in a public repo. Feel free to look at what we are doing: https://github.com/sagaxyz/ssc/blob/c4a5823177409f4ee0ea4f99f0a7cf0c412668a7/cmd/sscd/cmd/root.go#L228

Hi @melekes @hvanz I figured out the issue after @hvanz indicated it was not finding a snapshot. We have persistent peers values and rpc nodes values. The RPC nodes are the ones that have the state-sync snapshots and our persistent peers listed in the config.toml do not have state-sync snapshots.
My local node is now running and syncing with a state-sync snaphot.
I did not find this requirement for the persistent peers to have the state-sync snapshot nodes listed. I only knew of the rpc_servers value, which was correctly set. I may have missed this in the docs but in case it is not there, please add the requirement to also have the persistent_peers include the nodes that are serving the state-sync snapshots.

@ashishchandr70 glad you've figured it out 👍 we will check the docs, thanks

Hi @ashishchandr70, I'm glad that you found the problem. Indeed, the snapshots are requested from all known peers, including the persistent peers. It's mentioned in the code but probably the documentation should be more explicit about it. https://github.com/cometbft/cometbft/blob/v0.37.1/statesync/reactor.go#L272-L278

@hvanz could you please make it clear in the docs?

authors: ashishchandr70 hvanz melekes

repo: cometbft/cometbft


text:
grpc: Add base gRPC server with version service to v0.37.x-experimental

Addresses #1420.
Refer to the companion PR for v0.38 for additional details: #1437

PR checklist

[x] Tests written/updated
[x] Changelog entry added in .changelog (we use unclog to manage our changelog)
[ ] Updated relevant documentation (docs/ or spec/) and code comments

Closing until we get signals that this is needed in v0.37.

source: gharchive/pull-request

authors: adizere cason

license_type: permissive

license_source: github-api


text:
rpc: tweaked the block search test

Improved the BlockSearch test within the RPC to make sure it matches against a value if the block events are generated.
The previous version had a query that would never match and this way it is harder to test whether indexing was performed correctly.

PR checklist

[x ] Tests written/updated
[ ] Changelog entry added in .changelog (we use unclog to manage our changelog)
[ ] Updated relevant documentation (docs/ or spec/) and code comments

Should this be backported?

I added the backport labels, confirmed it works on all branches, but will need some tweaking for 0.34 as it has this match_events keyword. I'll take care of it.

authors: jmalicevic sergio-mena


text:
Addressing comet/comet#1174. First version

As per title.
rendered
Once you're OK with the text, I'm planning to adapt the structure so that it is an RFC in the Comet repo.
There are two "TODOs" in the "Eventual requirements" section. Please let me know what you think.

Thanks folks for all your comments 🙏. I'll go through them tomorrow 👀

Notice that the rendered version should point to the latest version on the branch, namely: https://github.com/cometbft/knowledge-base/blob/sergio/addressing-1174/protocols/abci/addressing-1174.md

As a generic comment, I think this is a very nice discussion and problem to address. Some practical terms in think we should discuss and find more precise definitions:

The external validity definition needs some improvement; we should look how validity is handled by other protocols. In general, the property of BFT consensus is that a value proposed by a correct value is eventually decided. For values proposed by Byzantine agents, there are multiple definitions and ways to deal with

The changes in the consensus protocol are interesting. I wonder whether we can replace locked value/round by valid value/round on the properties. We need in fact to consider the corner cases when they differ. But they can only differ by having valid round/value more updated (fresher) than locked round/value.

As a generic and simplistic definition: a valid value is a value that I would propose; a locked value is a valued that I have accepted (prevoted for)
Regarding the pseudo-code, we have to recall that the introduction of the valid value is posterior to the writing of this pseudo-code. That is why it is a little confusing, as the valid part was introduced afterwards in order to handle with hidden locks and ensure progress after GST.

An idea that I had, I would like some feedback on it, is that we do not remove the valid(v) calls from the algorithm, in none of the clauses.
We should be able, instead, of writing a valid(v) method that does consider:

Whether we have already validated v, in which case we might skip the validation cost and just return the previous value produced by the external validation (application)
Whether we observed a quorum of processes that have validated v, in the form of 2f+1 Prevote(id(v); this allows us, again, to avoid the external validation by the application
Whether we observed a a quorum of processes that have accepted v, in the form of 2f+1 Precommit(id(v)

The main point that I have here is that a process must validate a proposed value at least once. The question is whether a rejection of a proposal block by a non-deterministic external validation procedure should prevent us from committing (or enable the commitment) of a block. The validation check performed by the blockchain (i.e., is the block a valid block?) should be performed at least once for every committed block.

In the spirit of PBTS, notice that the change introduced there was to create two validation methods, the valid(v) that remained untouched, and an additional non-deterministic timely(v) predicate. This second predicate was only evaluated when a block was received for the first time, as it was a timing predicate. In the case of re-proposed blocks, the fact that $2f + 1$ processes have considered the block timely enabled us to drop the timely check in this case.

An idea that I had, I would like some feedback on it, is that we do not remove the valid(v) calls from the algorithm, in none of the clauses.

I guess this is related to the separation of valid as a mathematical function (where it doesn't matter how often it is called) and Process_Proposal (where it might matter how often it is called if it uses oracle data). The question is whether we want to capture the latter point in the pseudo code...
I think at a very early stage, Dev has written a pseudo code variant of ABCI++ with Process_Proposal. The question is whether we should formalize it in this way, and thus eliminate the "schisma" between valid and Process_Proposal?

Another question that we need to address is how to handle the recovery of a node.
The assumption that valid(v) is a deterministic method enables us to employ this method both in regular operation and in recovery mode. So, if a node during regular operation has deemed a block valid, therefore it has issued a Prevote for the block, when this situation arises again in recovery mode, the validation should produce the same output. Otherwise, if the block is reject in this different context, the node will Prevote nil, which is an equivocation.
This same question was raised for PBTS. The solution proposed (but not implemented) is to persist in the consensus WAL the information needed to evaluate the timely predicate. Namely, we have to persist the receive time of a proposal, which is the non-deterministic part of the timely evaluation. The method, by itself, is deterministic, so that we need only to ensure that it is invoked with the same parameters both in regular and recovery mode.
How we can handle this situation when ProcessProposal is not deterministic? The first solution that came to mind is to persist in the WAL the output of this validation method when it is invoked during regular operation. The invocation of this method therefore becomes a non-deterministic external event processed by the consensus protocol. Since we probably cannot replay the exactly same (application and timing) context used during regular operation, we don't have much options than to store the result of this operation in disk. Once in recovery mode, we should be able to identify that we have the output of this validation and therefore must not perform it again, with the risk of producing a different behavior at consensus level (i.e., equivocating).

Addressed outstanding comments. I think this is ready to land as an RFC PR on CometBFT repo. If there are further comments, they can be added there. Merging this

authors: cason josef-widder sergio-mena

repo: cometbft/knowledge-base


text:
complicated parser and ' or + character

filename
Airfiles #04 The 'Big Show' 2.cbz
turns title into
The' Big Show' 2
filename
Army #11 Operation 'Z'.cbz
turns title into
Operation' Z'
filename
De Dwaas Van De Koning #009 Het Testament Van d'Artagnan.cbz
turns title into
Het Testament Van d' Artagnan
notice the added space after the '
I am using the complicated parser through command line , but the same behaviour is seen in the GUI .
Using version 1.6.0a21.dev0
The same happens with + signs .
filename
De Man of Steel #01 The Invasion + Power of The Monster.cbz
turns title into
The Invasion+ Power of The Monster
When a title start with a ' character , it drops it completely .
For example
Atari Force #09 'Als Uw Oog U Tot Last Is...'.cbz
turns title into
Als Uw Oog U Tot Last Is'
drops the first ' completely (and it also drops the ... for some reason)

that's because quotes shouldn't be in filenames 😝. I'll see if I can get to this next week

If you need a Comic series to test with , this would be a good example for the ' sign :
https://www.stripinfo.be/reeks/index/1847_De_psy

source: gharchive/issue

authors: lordwelch protofolius

repo: comictagger/comictagger


text:
Joystickd readme in tools outdated

Joystickd in tools does not seem to function, and it's readme instructions are out of date.
When running all three scripts with no visible console errors and all dependencies working correctly, joystickd.py does not move the steering wheel.
The readme instructions are also out of date. For example, you do not need to manually set ALL_OUTPUT anymore.

Everything should still work, I used it pretty recently. I updated the readme with some new instructions. Can you get it to work with those instructions?

Another thing that will stop joystick use (and MOCK boardd, and a lot of the Panda Python example scripts) is running firmware built for EON, including the default/signed shipped FW from Comma. In short, a Panda flashed for actual driving with openpilot won't work for any of these tools.
Firmware built with the EON option expects a keepalive from OP boardd, and the missing keepalive kicks Panda back to NOOUTPUT within a couple seconds after the tool sets an output mode.
It's very easy to run into this, and hard for a newbie to figure out because the failure is totally silent, and it's something of an annoyance to reflash Panda if your usual development environment is virtualized.
I ran into this the hard way recently, but had not submitted a PR to fix it because I'm not sure of a workable approach that Comma would find acceptable. I don't like having to flash back and forth, and I'd especially like to be able to use the Panda tools from a vehicle-installed EON/C2. For my own development purposes, I hacked around it by setting the heartbeat timeout to an entire day.
Alternatives are to add a USB command to disable (or lengthen) keepalives, or to augment all the various development tools to send the heartbeat commands periodically. Or, even if no automatic workaround is acceptable, we could at least have the dev tools detect EON firmware and bail out with an informative notice.

I tried to get joystickd to work as well for some time to no avail. But what you mentioned @jyoung8607 sounds pretty much the same issue I was having, it was silently failing, but the code was still running and looked as if it was working, but nothing would happen.
If you have a simple guide to what you did to get past this it would be extremebly helpful. Did you create your own panda firmware with the heartbeat or eon firmware?

I think if you follow Willem's updated instructions, it's more likely to work for officially supported cars since it's using the new boardd that emits keepalives. I have not tested this personally with an EON or Comma signed build.
For the old instructions using boardd_old.py, with the default Panda firmware, I think you would have trouble with missing keepalives on EON builds, and also you can't go into ALL_OUTPUT mode without DEBUG firmware built from source. You'd also have trouble if your car's safety mode is in the ALLOW_DEBUG group as not yet officially supported.
You should retry with Willem's updated instructions. If that doesn't work, you should build the Panda firmware yourself from source, ideally on Ubuntu bare metal (virtualization makes it difficult to carry out the reflash step) so all the DEBUG stuff is enabled for you.

repo: commaai/openpilot

license: MIT


text:
Couldn't make the black panda to turn the wheel by sending the STEERING_LKA CAN command

The wheel can turn a little, most of the time not even noticeable. After debugging, I found that increasing the torque cannot exceed a limit (between 350 and 400) and the steering angle only changes a little.
In addition, the EPS_STATUS LKA_STATE becomes 9 after the torque increases beyond the limit. I also found if the torque is below the limit, the LKA_STATE flickers between 1 and 5 quickly, which I don't think it's normal.
After installing the black panda, should the car itself still send the STEERING_LKA message to the CAN bus? It seems that when I print out the logcan messages, the car itself is still sending bus: 000 {'CHECKSUM': 78.0, 'LKA_STATE': 0.0, 'STEER_REQUEST': 0.0, 'STEER_TORQUE_CMD': 0.0}. Is this expected?
My theory is that the STEERING_LKA messages sent from the car itself interferes with the messages sent from openpilot. Not sure if that's case.

After debugging, I found out the issue:
Can1 (bus number 0) should not get the LKA 740 messages from the camera (FRC). The messages from the camera will cause conflict with the 740 messages that I send by using the openpilot joystick controller.


text:
Systemd logcatd

I'm in need for sone help on my Honda Insight.  I have openpilot and sent back because I asked about brightness.  They sent a new one and now it says in is unsupported. Can you help?

What do I do with this information?

I load branch "master" and the camera dent go on.


text:
Country specific config for payment methods

Config for payments needs to be done in a way that you are able to show different payment methods in the checkout based on the country selected in your billing address.

This is a bigger task.
First question: is (or should) the abstract framework be able to decide about allowed / not allowed countries?
If yes, then what are the rules?
If it is a shop responsibility then there is already a build in feature, that allows the shop to pass a filter function into the "getMethods" - API call that is executed every time where any kind of filtering is possible.
Filtering itself has to be discussed in more detail and is not in scope for the first iteration I think.

authors: MGA-dotSource floriansattler


text:
a fix and a url update

fix dates in blog archive list to not be for current displayed post
update url to stackage readme section on adding package
bump to final lts-22.43

Nice, thanks. :) I'll work on getting this deployed, which is still a bit of a bad process.

Thanks

Finally deployed now. :)

authors: chreekat juhp

repo: commercialhaskell/stackage-server


text:
Don't error if there is no $HOME/.bookmarks.jsonl

Instead, give a helpful suggestion:

try mark add {url} !

Fixed in #45

repo: commondatageek/mark


text:
App Crash on Login

Summary:
Login leads to crash of app
Steps to reproduce:
Start App
Type in login data.
Hit "login" button.
System logs:

STACK_TRACE=java.lang.RuntimeException: Unable to start activity ComponentInfo{fr.free.nrw.commons/fr.free.nrw.commons.contributions.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.accounts.Account.hashCode()' on a null object reference
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2678)
	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2743)
	at android.app.ActivityThread.-wrap12(ActivityThread.java)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1490)
	at android.os.Handler.dispatchMessage(Handler.java:102)
	at android.os.Looper.loop(Looper.java:154)
	at android.app.ActivityThread.main(ActivityThread.java:6165)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:778)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.accounts.Account.hashCode()' on a null object reference
	at android.os.Parcel.readException(Parcel.java:1690)
	at android.os.Parcel.readException(Parcel.java:1637)
	at android.content.IContentService$Stub$Proxy.setSyncAutomaticallyAsUser(IContentService.java:1060)
	at android.content.ContentResolver.setSyncAutomaticallyAsUser(ContentResolver.java:2107)
	at android.content.ContentResolver.setSyncAutomatically(ContentResolver.java:2097)
	at fr.free.nrw.commons.contributions.MainActivity.initMain(MainActivity.java:110)
	at fr.free.nrw.commons.contributions.MainActivity.onCreate(MainActivity.java:84)
	at android.app.Activity.performCreate(Activity.java:6687)
	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1140)
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2631)
	... 9 more

Device and Android version:
ANDROID_VERSION=7.1.1
PHONE_MODEL=Moto G Play
Commons app version:
APP_VERSION_CODE=561
APP_VERSION_NAME=2.12.3
Would you like to work on the issue?
I don't have the qualification to work on this issue

Hi, this bug should have been fixed in v2.13.1. Could you register for beta testing and let us know if it fixes the problem for you? Otherwise, the new version should be available to everyone by the end of the week (if everything goes well).

Sure.
How do I register for beta?

I installed the Beta but the problem still occurs.
From the crash log I've send:
APP_VERSION_CODE=775
APP_VERSION_NAME=2.13.1
ANDROID_VERSION=7.1.1
PHONE_MODEL=Moto G Play
STACK_TRACE=java.lang.NullPointerException: Attempt to read from field 'java.lang.String android.accounts.Account.name' on a null object reference
at fr.free.nrw.commons.contributions.ContributionsFragment.setUploadCount(ContributionsFragment.java:363)
at fr.free.nrw.commons.contributions.ContributionsFragment.onCreateView(ContributionsFragment.java:166)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2600)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:881)
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303)
at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:439)
at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2079)
at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1869)
at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824)
at androidx.fragment.app.FragmentManagerImpl.execSingleAction(FragmentManagerImpl.java:1696)
at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:299)
at androidx.fragment.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:235)
at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1244)
at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1092)
at androidx.viewpager.widget.ViewPager.onMeasure(ViewPager.java:1622)
at android.view.View.measure(View.java:19883)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6087)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:19883)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
at android.view.View.measure(View.java:19883)
at androidx.drawerlayout.widget.DrawerLayout.onMeasure(DrawerLayout.java:1119)
at android.view.View.measure(View.java:19883)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6087)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
at android.view.View.measure(View.java:19883)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6087)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:758)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:640)
at android.view.View.measure(View.java:19883)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6087)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:19883)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6087)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:758)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:640)
at android.view.View.measure(View.java:19883)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6087)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:689)
at android.view.View.measure(View.java:19883)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2293)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1384)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1637)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1272)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6408)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:874)
at android.view.Choreographer.doCallbacks(Choreographer.java:686)
at android.view.Choreographer.doFrame(Choreographer.java:621)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6165)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:778)
REPORT_ID=798a844b-fdd8-4ccf-953f-3b181b009244

@misaochan
I installed the Beta but the problem still occurs.
From the crash log I've send:
APP_VERSION_CODE=775
APP_VERSION_NAME=2.13.1
ANDROID_VERSION=7.1.1
PHONE_MODEL=Moto G Play
STACK_TRACE=java.lang.NullPointerException: Attempt to read from field 'java.lang.String android.accounts.Account.name' on a null object reference
at fr.free.nrw.commons.contributions.ContributionsFragment.setUploadCount(ContributionsFragment.java:363)
at fr.free.nrw.commons.contributions.ContributionsFragment.onCreateView(ContributionsFragment.java:166)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2600)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:881)
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303)
at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:439)
at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2079)
at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1869)
at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824)
at androidx.fragment.app.FragmentManagerImpl.execSingleAction(FragmentManagerImpl.java:1696)
at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:299)
at androidx.fragment.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:235)
at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1244)
at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1092)
at androidx.viewpager.widget.ViewPager.onMeasure(ViewPager.java:1622)
at android.view.View.measure(View.java:19883)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6087)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:19883)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
at android.view.View.measure(View.java:19883)
at androidx.drawerlayout.widget.DrawerLayout.onMeasure(DrawerLayout.java:1119)
at android.view.View.measure(View.java:19883)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6087)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
at android.view.View.measure(View.java:19883)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6087)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:758)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:640)
at android.view.View.measure(View.java:19883)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6087)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:19883)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6087)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:758)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:640)
at android.view.View.measure(View.java:19883)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6087)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:689)
at android.view.View.measure(View.java:19883)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2293)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1384)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1637)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1272)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6408)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:874)
at android.view.Choreographer.doCallbacks(Choreographer.java:686)
at android.view.Choreographer.doFrame(Choreographer.java:621)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6165)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:778)
REPORT_ID=798a844b-fdd8-4ccf-953f-3b181b009244

This seems to be a different one from the one mentioned in the original issue log, @fnordson So just to confirm, you are able to login in successfully but as soon as you get logged in, the app crashes?

@ashishkumar0207
Just before the app disappears and the crash report pop-up comes up, I think I can see a small text saying that the login was successful. It's just too fast everything and I'm not sure if the text was there the last time.
From my standpoint it looks like the same behaviour:
Start App
Type in login data.
Hit "login" button.
App disappears and crash report pop-up comes up.

@misaochan Why has this been closed?
Is it supposed to be fixed (it isn't on my phone)?
Fixed in the next version?

The associated PR has been merged, so the issue is auto-closed. It will be released in the next hotfix, which should be soon.

authors: ashishkumar468 fnordson misaochan

repo: commons-app/apps-android-commons


text:
Headers to distinguish where suggestions come from

How about placing small headers to show why suggestions are made?
Prototype:
--- Nearby ---
Trafalgar Square
Buckingham Palace
--- Guessed from name ---
Demonstration
Climate change
--- Recent ---
Roti prata
Rendang

When I take a picture, I know already what type of suggestion will be correct. For instance if the last upload was of the same thing, I know I must select everything in "Recent". If I am in a famous place but photographing something unrelated to this place (for instance a vehicle) then I can ignore all "Nearby" suggestions. Etc. Having sections will thus make selection faster.
It could also allow making the suggestions list a bit longer without it feeling too long?

Hm, this sounds like a great suggestion, but I think I will have to pick between this and #70 for the grant proposal, due to the time limitations. Which do you think would be more important?

Difficult choice haha. It does not sound as difficult as anonymization, and will probably be more useful to most people.

Okay, this one it is then! :)

How do we want the headers to look like? Should they actually take up slots in the ListView like all the categories, just with the '--' to make it obvious that they are headers?

Is there an easy to use component that provide this? Either a ListView with a special setting, or a child class of ListView, or a totally different component.

I was envisioning something like this, maybe with smaller and less eye-catching headers:

http://stacktips.com/tutorials/android/listview-with-section-header-in-android

Hm. This is turning out to be much more complicated than I expected.
I've tried to apply this tutorial (and other similar ones) to our code, but the main issue is that all the solutions that I've found involve adding the section headers to the ArrayList that is used as the data source in the adapter. So now our data source contains not just CategoryItems but also header items.
This could be workable, but in CategorizationFragment.java most of the existing code assumes that every item in the data source is a Category, and operates on it accordingly. Also most of the existing methods rely on using the index of an element in the ArrayList for category selection, assignment, etc. It feels rather messy to have headers be part of that array, and to have to keep checking for getItemViewType(position) whenever we want to perform any operations on categories? I tried this method anyway at https://github.com/misaochan/apps-android-commons/commits/header-list-2 , but stopped after it became unwieldy.
I wonder if there might be a better way to handle this, given that it is only a UI change, so we probably shouldn't be introducing all these extra elements into the data source?

Is there no way to have each row contain an object, and use this object
rather than using the row's index?
On Sun, Nov 6, 2016 at 3:38 PM, Josephine Lim notifications@github.com
wrote:

Hm. This is turning out to be much more complicated than I expected.
I've tried to apply this tutorial (and other similar ones) to our code,
but the main issue is that all the solutions that I've found involve adding
the section headers to the ArrayList that is used as the data source in the
adapter. So now our data source contains not just CategoryItems but also
header items.
This could be workable, but in CategorizationFragment.java most of the
existing code assumes that every item in the data source is a Category, and
operates on it accordingly. Also most of the existing methods rely on using
the index of an element in the ArrayList for category selection,
assignment, etc. It feels rather messy to have headers be part of that
array, and to have to keep checking for getItemViewType(position)
whenever we want to perform any operations on categories? I tried this
method anyway at https://github.com/misaochan/
apps-android-commons/commits/header-list-2 , but stopped after it became
unwieldy.
I wonder if there might be a better way to handle this, given that it is
only a UI change, so we probably shouldn't be introducing all these extra
elements into the data source?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/commons-app/apps-android-commons/issues/76#issuecomment-258663552,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGFBvfAg7df6HaWkg-KFUwW1OdqsnFsks5q7XYDgaJpZM4HmH_N
.

I'm not sure, but it would involve an almost complete refactor of CategorizationFragment.
Alternatively, I was thinking of trying a 3rd party library: https://github.com/commonsguy/cwac-merge

The 3rd party libraries I mentioned are on a Apache 2.0 license. Should be okay to include them, right?

Apache 2.0 is OK, yes.

The 3rd party library works (as seen in https://github.com/misaochan/apps-android-commons/tree/header-list-cwac-merge , headers are produced for GPS, recent, and title cats), but further issues have been discovered along the way.
The main issue is that in order to get this to work, I have needed to create a separate adapter for the empty search field (which displays automatically-generated GPS, recent, and title cats along with their headers), and for the non-empty search field (which displays the results of a manual category search with no headers).
In the app currently, selected categories are aggregated and displayed at the top of the list, from any type of category suggestion (manual or automatic). This is really useful and something I don't want to lose. But with two separate adapters, I can't seem to get this to happen anymore - selected categories remain selected but are only displayed in their respective adapter (automatic cats that are selected only display when search field is empty, manual cats only display when search field is not empty).
At this stage I think the amount of work needed for me to complete this task is exceeding the benefits that it would bring (headers would be really nice but I don't think it is a dealbreaker for most users). It's entirely possible that I'm missing something simple, so I will leave this issue and my associated branch open, but will move on to the next task for now.

Would you mind posting a screenshot of what it looks like with
header-list-cwac-merge ?
Thanks!
On Mon, Nov 14, 2016 at 2:51 PM, Josephine Lim notifications@github.com
wrote:

The 3rd party library works (as seen in https://github.com/misaochan/
apps-android-commons/tree/header-list-cwac-merge , headers are produced
for GPS, recent, and title cats), but further issues have been discovered
along the way.
The main issue is that in order to get this to work, I have needed to
create a separate adapter for the empty search field (which displays
automatically-generated GPS, recent, and title cats along with their
headers), and for the non-empty search field (which displays the results of
a manual category search with no headers).
In the app currently, selected categories are aggregated and displayed at
the top of the list, from any type of category suggestion (manual or
automatic). This is really useful and something I don't want to lose. But
with two separate adapters, I can't seem to get this to happen anymore -
selected categories remain selected but are only displayed in their
respective adapter (automatic cats that are selected only display when
search field is empty, manual cats only display when search field is not
empty).
At this stage I think the amount of work needed for me to complete this
task is exceeding the benefits that it would bring (headers would be really
nice but I don't think it is a dealbreaker for most users). It's entirely
possible that I'm missing something simple, so I will leave this issue and
my associated branch open, but will move on to the next task for now.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/commons-app/apps-android-commons/issues/76#issuecomment-260253875,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGFBgBwj5F_QtmXxRPiCSh23JlFzTfKks5q9_bdgaJpZM4HmH_N
.

Sure. This is of the automatic categories (I hadn't hooked it up to the filterYears() method yet, so years are still being displayed):

And this is of the manual categories:

This looks like a superb idea, and the screenshots above are really helpful. Is this still something that needs to be implemented?
Chris.

Yes.

Could we add this to a target milestone, then; it's been open for eight years? It looks like people support it as an idea, so if we have a target release, it may attract volunteers who want to write the code.
Just an idea.
This isn't meant to sound harsh, but it feels like good ideas Luke this, should at least be on the 'To Do' list.
Chris

authors: chrisdebian misaochan nicolas-raoul


text:
Fixes #4934 enforced Wikimedia character blacklisting on captions and…

Description (required)
Originally the caption and description TextViews would accept any characters. It was possible to upload files with banned characters. Now, an input filter is used to remove these banned characters.
Fixes #4934
What changes did you make and why?
A new InputFilter class was applied to the caption and description TextViews. This filter checks for any illegal characters and removes them. The set of illegal characters can be found here: blacklist.
Tests performed (required)
Tested ProdDebug on Pixel 6 with API level 31.
Also included unit tests for the new InputFilter class.

I just tested, it works great and indeed fixes the bug.

Hi Alex!
Did you get a chance apply the minor modifications?
If you have no time, I can also do it for you, like you want :-)

Hi Nicolas.
Sorry for the delay, I had to do some traveling.
The new PR can be found here: #4955.

No problem, I hope you had a nice trip!
Tip: you can update an existing pull request, simply by pushing new commits to it.

authors: AlexMahlon nicolas-raoul


text:
[WIP] Explore nearby pictures test

Description (required)
Fixes #INSERT_ISSUE_NUMBER_HERE
What changes did you make and why?
Tests performed (required)
Tested {build variant, e.g. ProdDebug} on {name of device or emulator} with API level {API level}.
Screenshots (for UI changes only)
Need help? See https://support.google.com/android/answer/9075928

Note: Please ensure that you have read CONTRIBUTING.md if this is your first pull request.

This was successfully implemented in another PR I believe. :-)

authors: neslihanturan nicolas-raoul


text:
"Cannot read property 'length' of undefined" error appears when open easyCla page at PCC

Steps :

Login admin portal
Search Project which have cla enabled
Open easyCla page

Actual Results : "Cannot read property 'length' of undefined" error appears & page is inaccessible
ERROR TypeError: Cannot read property 'length' of undefined
    at ActivityLogComponent_Template (activity-log.component.html:2)
    at executeTemplate (core.js:9614)
    at refreshView (core.js:9480)
    at refreshComponent (core.js:10651)
    at refreshChildComponents (core.js:9277)
    at refreshView (core.js:9530)
    at refreshEmbeddedViews (core.js:10605)
    at refreshView (core.js:9504)
    at refreshEmbeddedViews (core.js:10605)
    at refreshView (core.js:9504)

https://images.zenhubusercontent.com/194341141/d542169a-41d2-40e1-b3e8-d9834843c814/easycla_error.mp4

@thakurveerendras the error is thrown on activity-log.component.html so looks like a PCC issue on the frontend

Thanks @nickmango ,
Added frontend ticket for above case (https://jira.linuxfoundation.org/browse/PCC-1591).

Closing as this appears to be a front-end issue in the PCC. Thanks!

authors: dealako nickmango thakurveerendras

repo: communitybridge/easycla


text:
Activate Lightbox with custom HTML

Let's say I don't want to use img, and I can to activate the lightbox on , how do I achieve this?
I actually tried it but console.log gave "Invalid Images"
Thanks in advance!

If you want to achieve a simple modal, without connection to any images, you should use the normal UI-Modal (https://angular-ui.github.io/bootstrap/#/modal).

authors: EyesOnlyNet drixie

repo: compact/angular-bootstrap-lightbox

license: mit

license_source: bigquery


text:
ROE-2405 Trusts associated with OE

JIRA link
https://companieshouse.atlassian.net/browse/ROE-2405
Change description

Update index files to include new url with params
Update html for change link with params
Update trust involved page to redirect to next page with url params
Update add.trust to include ActiveSubmissionBasePath in html template

Work checklist

[x] Tests added where applicable
[ ] UI changes meet accessibility criteria

Merge instructions
We are committed to keeping commit history clean, consistent and linear. To achieve this, this commit should be structured as follows:
<type>[optional scope]: <description>

and contain the following structural elements:

fix: a commit that patches a bug in your codebase (this correlates with PATCH in semantic versioning),
feat: a commit that introduces a new feature to the codebase (this correlates with MINOR in semantic versioning),
BREAKING CHANGE: a commit that has a footer BREAKING CHANGE: introduces a breaking API change (correlating with MAJOR in semantic versioning). A BREAKING CHANGE can be part of commits of any type,
types other than fix: and feat: are allowed, for example build:, chore:, ci:, docs:, style:, refactor:, perf:, test:, and others,
footers other than BREAKING CHANGE: <description> may be provided.

looks ok to me once dans's comments resolved

repo: companieshouse/overseas-entities-web


text:
feat: add upcoming events page that displays all the upcoming events

This PR resolves #92 by displaying all the upcoming events in a single dedicated page.
Output:

It's look better. I have done for #98  as well.


text:
Fix promise-handling bug in creation of planning documents

[#181124054]
Fixes a copy/paste/logic bug in planning document promise-handling which likely explains the occurrence of extraneous planning documents in some circumstances.
@scytacki I also added tests that would have caught the bug, officially closing the barn door. Adding the tests required setting up offline mocking of firebase that should prove useful for writing additional tests down the road.

The database mocking is complex. I could see it being hard to maintain. It would probably fail in a weird way if some code under test makes an unexpected firebase call. But lets see how it goes. :)

It's coupled tightly to the code under test, which certainly makes it more fragile, but is also why I restricted the mocking to within each individual test. At least this way when you're restructuring some code the tests of that specific code are likely to break, but it won't require updates to a shared mock that then cascades to other failing tests. In this particular case, the important point is that it tests the promise-handling logic, which was the point of the exercise.


text:
Refactor how dragging to move objects works.

Simplifies how we track the temporary position of objects on the drawing canvas while they are being dragged to move them.
Previously this was done by holding an "objectsBeingDragged" list in state, hiding these objects in the render phase, and creating clones of these objects outside of the model with altered x and y coordinates.
The new code uses volatile dragX and dragY coordintes that are part of the object model and used by the normal render process. Having these be volatile prevents each step of the drag from adding an undo step.
This concept is borrowed from https://github.com/concord-consortium/quantity-playground/blob/main/src/diagram/models/dq-node.ts#L27

The UX looks good. I think I'm forgetting some of the tricky dragging and selection cases.
If you want to test the variable chip object you can use the example unit. Then add the second node-arc tile. The rollover of the button on the toolbar is "Diagram". Then add the drawing tool. Now you should see a V= tool bar button on the drawing tool. Clicking this will add a variable chip to the drawing tool.
Here is the link to test it on the deployed branch:
https://collaborative-learning.concord.org/branch/refactor-draw-object-drag/?appMode=dev&unit=example

Another nice side effect of this, change is that if you open the same document on the left and right sides. When you drag the drawing objects around on the left you'll see them on the right side. Previously you'd only see the change on the left when you stopped dragging.

authors: bgoldowsky scytacki


text:
jobs API endpoint serves SVG badges of latest status

@xoebus did the heavy lifting.

typical URI:
https://ci.blabbertabber.com/api/v1/pipelines/main/jobs/always-succeeds/badge

Build Status
Shield
Implemented

nil (build never run)

yes

StatusAborted

yes

StatusSucceeded

yes

StatusFailed

yes

StatusErrored

yes

Similar to the badges served by Travis CI
SVG created courtesy shields.io
Badge style: flat

Here's a deployment of a Concourse dev release with the badges: https://ci.blabbertabber.com:

And here are the badges (pulled from the live site!):

[fixes #72388008]
Signed-off-by: Brian Cunnie bcunnie@pivotal.io

looks great! prioritizing.

I need it so bad, looks great.
Will use it definitely :)

authors: cunnie ernado vito

repo: concourse/atc


text:
Payment method using coinpayments.net

Hi there, I am wondering if it would be possible to add https://www.coinpayments.net/ as a payment method onto the store as this is a quickly growing form of payment and it would also open more possibilities with what people are accepting etc.

There shouldn't be any restriction from the community store side of things to allow for integration here, it can handle both client side and server side handling in different ways to accommodate different payment gateways.
It really just comes down to the amount of work that might be required. Stripe for example has both a client side library (for the pop up form) as well as strong server side libraries, so it ends up being a bit easier than others. For this one, I'm not really seeing anything that handles the client side, so stuff like picking what cryptocurrency you want to use, really the final payment interface would all need to be written.
Personally I wouldn't have plans to work on this (I'd need a client to request it), but I'm happy to point someone in the right direction. The existing payment gateways do act as good code examples.

If a "client" did decide they wanted said feature. what's your estimates on pricing for it's creation?
Furthermore would it be something you'd consider if you where to be paid to develop this new payment method?

authors: Mesuva hemipatu


text:
EasyPost will not load anymore.

www.mdius.com
Just spins on checkout again.
Was trying to delete my EasyPost USPS shipping and it crashed my shipping.
I cannot give error codes till tomorrow, but it is related to EasyPost has no index number.
You've helped me with this issue before.

It seems to be working now.
Was able to delete the problem and shipping works.


text:
Update Dark Panels for greater clarity, fresher design palette.

These dark side panels are really hard on some screens/eyes and are really the only place where we go so low light/contrast. I do think it'd be nice if we had a 'dark mode' - but that should be all encompassing and higher contrast. Lets see some options for updating that which is grey on dark grey to a fresher (and more ADA friendly) palette.

Agree with @mlocati re. search block, content type selector menu should be the main event and search box then only show if necessary.
I like the block menu on single lines allowing for longer block names. Could the button container be extended full width as with the container menu above?
Also the popup menu entry to open the content sidebar is overdue a change from 'Add Block' to 'Add Content' (this ties in with the wording used in the top bar '+' icon tooltip).

Should Page Template and Theme even be on the same panel?
There are times when the grid of block icons is useful, and times when the list with room for names is useful. Can we have it toggle between the 2 views?
I like the colour @katalysis has added. More interesting than grey on grey.
Can the current Alt-click behaviour on the add '+' icon to lock the block panel be made more obvious? May users never realise it is there. There are also inconsistencies of panel behaviour when the block add '+' is locked and switching between Blocks/Stacks/Clipboard.
When filtering the block add panel with a search, can the search be sticky, at least for the current page edit, or perhaps extended to the current user session?
Thinking of @fmaruna's liking for my 'recent buttons' quick pick on the Button Nav demo, can something similar be done for the block add panel? A section at the top of the block panel with a quick pick of the last few block types added for easy selection without needing to scroll down or search.
That would be for block types, unpopulated.
A different shortlist would be for the few most recently added/saved blocks to automatically be at the top of the Clipboard, or even another section for the last N blocks added, so there would be separate panels for 'Clipboard>' and 'Recent Blocks>'

Marking this as completed.

authors: JohntheFish aembler fmaruna gary-portlandlabs katalysis


text:
Faster nginx rewrite rule

As discussed in Slack with @KorvinSzanto

PS: it requires some testing in case of DIR_REL is not empty (ie concrete5 is installed in a subdirectory)


text:
Fix infinite redirection visiting existing dirs when seo.trailing_slash is false

Condition:

using Apache with .htaccess set by concrete5
users visits an existing directory (eg /concrete/images)

Execution:

the browser visits /concrete/images
Apache sees that /concrete/images is not a file and it's not a folder containing index.php/index.html, and it sends the request to index.php but with /concrete/images/ as request path
Here's the mod_rewrite log:strip per-dir prefix: /var/www/concrete/images -> concrete/images
applying pattern '.' to uri 'concrete/images'
RewriteCond: input='/var/www/concrete/images' pattern='!-f' => matched
RewriteCond: input='/var/www/concrete/images/index.html' pattern='!-f' => matched
RewriteCond: input='/var/www/concrete/images/index.php' pattern='!-f' => matched
rewrite 'concrete/images' -> 'index.php'
add per-dir prefix: index.php -> /var/www/index.php
trying to replace prefix /var/www/ with /
strip matching prefix: /var/www/index.php -> index.php
add subst prefix: index.php -> /index.php
internal redirect with /index.php [INTERNAL REDIRECT]
strip per-dir prefix: /var/www/concrete/images/ -> concrete/images/
applying pattern '.' to uri 'concrete/images/'
RewriteCond: input='/var/www/concrete/images/' pattern='!-f' => matched
RewriteCond: input='/var/www/concrete/images//index.html' pattern='!-f' => matched
RewriteCond: input='/var/www/concrete/images//index.php' pattern='!-f' => matched
rewrite 'concrete/images/' -> 'index.php'
add per-dir prefix: index.php -> /var/www/index.php
trying to replace prefix /var/www/ with /
strip matching prefix: /var/www/index.php -> index.php
add subst prefix: index.php -> /index.php
internal redirect with /index.php [INTERNAL REDIRECT]
strip per-dir prefix: /var/www/index.php -> index.php
applying pattern '.' to uri 'index.php'
RewriteCond: input='/var/www/index.php' pattern='!-f' => not-matched
pass through /var/www/index.php

the response factory sees that the request URL does not end with a slash, so it build a redirect response to /concrete/images
go to point 1 until the browsers stops the request because of too many redirects

PS: fix #6785

GitHub is having some issues: I pushed https://github.com/mlocati/concrete5/commit/bb60410b8253e79905fa1629a6349843e72b0d65 to my fix-infinite-redirection-existing-dir branch, but this PR isn't updated.

Ok, now it's here too


text:
Release 0.3.2

Checklist

[x] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

repo: conda-forge/atomap-feedstock


text:
Update to 3.6

Using GitHub tarball.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

authors: conda-forge-linter ocefpaf

repo: conda-forge/ckanapi-feedstock


text:
Don't patch llvm packages for new versions

Checklist

[ ] Used a static YAML file for the patch if possible (instructions).
[ ] Only wrote code directly into generate_patch_json.py if absolutely necessary.
[ ] Ran pre-commit run -a and ensured all files pass the linting checks.
[ ] Ran python show_diff.py and posted the output as part of the PR.
[ ] Modifications won't affect packages built in the future.

cc @beckermr @h-vetinari

The PR is clear and thank you! Can we xref any known issues about this or why we stopped patching now?

I don't remember why I patched it in the first place. Let's try not patching for new versions.

precommit.ci autofix

Thanks.

Can we xref any known issues about this or why we stopped patching now?

https://github.com/conda-forge/llvmdev-feedstock/pull/142, https://github.com/conda-forge/llvmdev-feedstock/issues/141 are the ones I'm aware of. Looking at the git history, this seems to come from #20, which doesn't have other references AFAICT.

authors: beckermr h-vetinari isuruf


text:
upgrade to 6.2.0

Checklist

[x] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

requirements: run: colorama>=0.3.4 must contain a space between the name and the pin, i.e. colorama >=0.3.4

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

This fixes a few dependencies that the bot in #10 didn't get.

authors: conda-forge-linter ickc

repo: conda-forge/defopt-feedstock


text:
DGL v2.1.0 w/ liburing

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

The broken link check is most likely due to conda-forge/admin-requests#958. @conda-forge-admin, please restart ci.

@conda-forge-admin, please rerender

@conda-forge-admin , please restart CI

Ok, seems everything is working now, except for the Osx builds, which are blocked by https://github.com/conda-forge/tensorflow-feedstock/pull/372 or https://github.com/conda-forge/tensorflow-feedstock/pull/374.

@conda-forge-admin, please rerender

@h-vetinari, would you have any hints on what to do about those stdlib2.12 cuda builds?

So I think what's happening is that - in a CUDA-enabled recipe - you're overriding this big zip, and as you're only overriding it partially (one key out of many), you need to match the length of the other keys in that zip.
I needed to do something similar in arrow to override the compiler version (note, you'd need a third entry for linux because the CUDA 12 migrator adds to the length of that zip).
Perhaps an easier alternative would be to set
os_version:
  linux_64: cos7

in conda-forge.yml though, which should also ensure that you get the newer stdlib

@conda-forge-admin, please rerender

Seems this is finally ready, @conda-forge/dgl :tada: However, I suggest to first merge #38, then rebase this on top of the new main and only merge after that.

Thanks so much for fixing conflicts @zklaus

authors: h-vetinari hmacdope jakirkham zklaus

repo: conda-forge/dgl-feedstock


text:
MNT: Re-render the feedstock [ci skip]

Hi! This is the friendly conda-forge-admin automated user.
I've re-rendered this feedstock with the latest version of conda-smithy (2.3.0) and noticed some changes.
If the changes look good, then please go ahead and merge this PR.
If you have any questions about the changes though, please feel free to ping the 'conda-forge/core' team (using the @ notation in a comment).
Remember, for any changes to the recipe you would normally need to increment the version or the build number of the package.
Since this is an infrastructural change, we don't actually need/want a new version to be uploaded to anaconda.org/conda-forge, so the version and build/number are left unchanged and the CI has been skipped.
Thanks!

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

authors: conda-forge-admin conda-forge-linter

repo: conda-forge/frosted-feedstock


text:
Rebuild 2.7

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

authors: chrisburr conda-forge-linter

repo: conda-forge/gsoap-feedstock


text:
Release v1.1.0

Checklist

[x] Used a fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

Closing in favor of #1.

Hi! This is the friendly automated conda-forge-webservice.
It appears you are making a pull request from a branch in your feedstock and not a fork. This procedure will generate a separate build for each push to the branch and is thus not allowed. See our documentation for more details.
Please close this pull request and remake it from a fork of this feedstock.
Have a great day!

Hi! This is the friendly automated conda-forge-webservice.
It appears you are making a pull request from a branch in your feedstock and not a fork. This procedure will generate a separate build for each push to the branch and is thus not allowed. See our documentation for more details.
Please close this pull request and remake it from a fork of this feedstock.
Have a great day!

authors: auneri conda-forge-linter

repo: conda-forge/ipyslurm-feedstock


text:
Update to v0.11.0

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

repo: conda-forge/iris-esmf-regrid-feedstock


text:
Update jupyter-sysml-kernel to 0.15.0

Checklist

[X] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[X] Reset the build number to 0 (if the version changed)
[X] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[X] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

authors: conda-forge-linter ivan-gomes


text:
update recipe for re-render

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

This PR:

re-renders the recipe
replace summary, which appears to be for simplejson (?)

@conda-forge-admin, please rerender

@conda-forge-admin, please rerender

repo: conda-forge/legendgram-feedstock


text:
Fix RPATH for libraries.

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

This PR fixes an issue with RPATH entries in libraries.
See conda-forge/cuda-feedstock#10

Requires:
https://github.com/conda-forge/libcublas-feedstock/pull/14
https://github.com/conda-forge/cuda-nvrtc-feedstock/pull/3
https://github.com/conda-forge/libnvjitlink-feedstock/pull/3

repo: conda-forge/libcusolver-feedstock


text:
[DEVOPS-601] Update conda recipe with Jinja template

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

@conda-forge-admin, please rerender@conda-forge-admin, please rerender@conda-forge-admin, please rerender@conda-forge-admin, please rerender

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe/meta.yaml:

ℹ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.

For the host section of the recipe, you should usually use python {{ python_min }} for the python entry.
For the run section of the recipe, you should usually use python >={{ python_min }} for the python entry.
If the package requires a newer Python version than the currently supported minimum version on conda-forge, you can override the python_min variable by adding a Jinja2 set statement at the top of your recipe (or using an equivalent context variable for v1 recipes).

This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/12354822754. Examine the logs at this URL for more detail.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.

authors: SophieCurinier conda-forge-admin

repo: conda-forge/mira-simpeg-feedstock


text:
add dep zlib

Checklist

[x] Used a fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

authors: conda-forge-linter looooo

repo: conda-forge/netgen-feedstock


text:
Release v0.1.7

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender

authors: conda-forge-linter mattwthompson

repo: conda-forge/openff-utilities-feedstock


text:
version 0.23.0

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

repo: conda-forge/pyrosar-feedstock


text:
try running test suite

fix #14

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@jan-janssen now running test suite
it's only 17 tests, and not all executables are tested but I guess it's a good start

@conda-forge-admin, please rerender

@ltalirz thanks a lot

@ltalirz By the way if you want to add yourself as a maintainer feel free to do so.

authors: conda-forge-linter jan-janssen ltalirz

repo: conda-forge/qe-feedstock


text:
[do not merge; testing stuff] 4.1: Reenable Windows builds

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=582673&view=logs&j=a70f640f-cc53-5cd3-6cdc-236a1aa90802 built successfully!
I'm re-enabling the other platforms again.

Thanks

authors: conda-forge-linter isuruf mbargull

repo: conda-forge/r-base-feedstock


text:
up to v0.0.37

up version to 0.0.37
reformat about section

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender

authors: conda-forge-linter ngam

repo: conda-forge/singularity-hpc-feedstock


text:
Dependency update

Update dependencies
bump version

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe/meta.yaml:

No valid build backend found for Python recipe for package snowflake-ml-python using pip. Python recipes using pip need to explicitly specify a build backend in the host section. If your recipe has built with only pip in the host section in the past, you likely should add setuptools to the host section of your recipe.

authors: conda-forge-admin sfc-gh-srudenko


text:
Add python-dateutil as a dependency

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender

authors: conda-forge-linter tomvothecoder

repo: conda-forge/xcdat-feedstock


text:
disable compilers when dependencies are extra

For the following package tornado_sqlalchemy_login there is a dependency for pybind11 but it is just an extra and in dev mode. However, grayskull is adding the compilers anyway. It should not add it

grayskull is fetching the extra's but not using them yet (see https://github.com/conda-incubator/grayskull/issues/150)
So how is grayskull "adding" the compilers and in what section?

that is correct now, and thanks again for the feature that you developed :)

authors: marcelotrevisani woutdenolf

repo: conda-incubator/grayskull


text:
Add template-files composite action

Description

We've been using github.com/BetaHuhn/repo-file-sync-action to synchronize files from conda/infrastructure for a while now and have found that it doesn't perform in the way we need it to (bulk syncing with templating), the upstream author is not particularly responsive anymore, and since the upstream action is written in NodeJS/Typescript its not particularly simple to fork and fix.
Thus we implement a small composite action that implements a pull process and uses Jinja as the templating engine. Since this is a decentralized pull process this also gives more control to individual repos instead of having a central sync conductor.

I have verified that the workflow still works in https://github.com/conda-sandbox:

https://github.com/conda-sandbox/upstream mocks https://github.com/conda/infrastructure
https://github.com/conda-sandbox/downstream mocks any of the conda projects, e.g.: https://github.com/conda/conda

See a scheduled run (where new updates are fetched from upstream): https://github.com/conda-sandbox/downstream/pull/19
And a manually triggered run (where we enable nested templating features): https://github.com/conda-sandbox/downstream/pull/20

repo: conda/actions


text:
Feature: Source connector modes

Feature description
Add ability source connector to working in following modes:

read existing data, enable CDC
ignore existing data, enable CDC

It was added in this PR:
https://github.com/conduitio-labs/conduit-connector-stripe/pull/8

authors: maksenius voscob

repo: conduitio-labs/conduit-connector-stripe


text:
Apache.Avro support for .net framework 4.x

Why is that .Net framework support is removed in Apache.Avro 1.9.1 onwards? Is there plan to support .Net framework in upcoming versions? Is there anyway for .Net framework 4.x applications to consume latest apache.avro changes?

previously, Confluent maintained a fork of the official repo to facilitate rapidly making changes required to use the library with Confluent.Kafka. In 1.9.1, the official Avro library incorporated all our bug fixes and overtook our fork in terms of features and we switched over in 1.4. Our fork supported net451, but the official library only supports back to netstandard2.0. This is compatible with net461 and above.

authors: PaluruSumanth mhowlett

repo: confluentinc/confluent-kafka-dotnet


text:
Q: transactional producer configs for mulit-broker(cluster) behind load balancer

Description
I am trying following:

Setup Two brokers behind a load balancer(which will route traffic based on availability, load, etc).
Create a producer(with transaction support) by setting load balancer host address as bootstrap server.
It works fine fine till there are no disconnects, but one fine day following happens:

%6|1591244167.286|FAIL|app-trx#producer-2| [thrd:sasl_plaintext://load-balanacer-host:9092/bootstrap]: sasl_plaintext://load-balanacer-host:9092/bootstrap: Disconnected (after 1516513ms in state UP)
%3|1591244167.286|ERROR|app-trx#producer-2| [thrd:sasl_plaintext://load-balanacer-host:9092/bootstrap]: sasl_plaintext://load-balanacer-host:9092/bootstrap: Disconnected (after 1516513ms in state UP)
%3|1591244453.733|FAIL|app-trx#producer-2| [thrd:sasl_plaintext://broker-1-ip:9092/1001]: sasl_plaintext://broker-1-ip:9092/1001: Connect to ipv4#broker-1-ip:9092 failed: No route to host (after 3006ms in state CONNECT)
%3|1591244453.733|ERROR|app-trx#producer-2| [thrd:sasl_plaintext://broker-1-ip:9092/1001]: sasl_plaintext://broker-1-ip:9092/1001: Connect to ipv4#broker-1-ip:9092 failed: No route to host (after 3006ms in state CONNECT)
%3|1594301839.904|ADDPARTS|app-trx#producer-2| [thrd:main]: TxnCoordinator/1002: Failed to add partition "topic-name" [0] to transaction: Broker: Producer attempted to use a producer id which is not currently assigned to its transactional id
%1|1594301839.904|TXNERR|app-trx#producer-2| [thrd:main]: Fatal transaction error: Failed to add partitions to transaction: Broker: Producer attempted to use a producer id which is not currently assigned to its transactional id (INVALID_PRODUCER_ID_MAPPING)
%3|1594301839.904|ERROR|app-trx#producer-2| [thrd:main]: Fatal error: Broker: Producer attempted to use a producer id which is not currently assigned to its transactional id: Failed to add partitions to transaction: Broker: Producer attempted to use a producer id which is not currently assigned to its transactional id

Did I configure something wrong, please advice?
I did get on zkCli for /brokers/topics/topic-name, it gave following:
{"version":1,"partitions":{"1":[1001,1002],"0":[1002,1001]}}

How to reproduce
Not an issue.
Checklist
Please provide the following information:

[ ] A complete (i.e. we can run it), minimal program demonstrating the problem. No need to supply a project file.
[x] Confluent.Kafka nuget version. 1.4.0
[ ] Apache Kafka version.
[ ] Client configuration.
[ ] Operating system.
[ ] Provide logs (with "debug" : "..." as necessary in configuration).
[ ] Provide broker log excerpts.
[ ] Critical issue.

Setup Two brokers behind a load balancer(which will route traffic based on availability, load, etc).

Kafka + protocol take care of availability / load balancing for you already - you shouldn't try to use a load balancer for this purpose. The .net client expects to maintain connections directly to brokers as it requires. I'm aware of some people using a level of indirection on the bootstrap servers to allow them to switch out broker addresses (if all other connections fail, the bootstrap server addresses will be used to find the cluster again), but I haven't done this personally, and I believe there is some devil in the detail here.

authors: gelihu mhowlett


text:
Not able to send messages to kafka asynchronously and get a callback to handle the errors (if any) later

Description
We are using Confluent.Kafka 1.5.2. For serializing keys and values, we use Confluent.SchemaRegistry.Serdes.Avro 1.5.2.
Apache.Avro contract version is 1.9.1.
We are trying to use the below Produce API to send messages asynchronously and get a callback at a later point. We plan to handle the errors via callback.
void Produce(string topic, Message<TKey, TValue> message, Action<DeliveryReport<TKey, TValue>> deliveryHandler = null);
At runtime, we are getting error "System.InvalidOperationException: Produce called with an IAsyncSerializer key serializer configured but an ISerializer is required.
at Confluent.Kafka.Producer2.Produce(TopicPartition topicPartition, Message2 message, Action`1 deliveryHandler)"
How to reproduce
producerBuilder = new ProducerBuilder<string, T>(producerconfig)
.SetKeySerializer(new Confluent.SchemaRegistry.Serdes.AvroSerializer(schemaRegistryconfig))
.SetValueSerializer(new Confluent.SchemaRegistry.Serdes.AvroSerializer(schemaRegistryconfig))
.Build();
producerBuilder.Produce(topicName, data, CallbackHandler);
Checklist
Please provide the following information:

[ ] A complete (i.e. we can run it), minimal program demonstrating the problem. No need to supply a project file.
[x] Confluent.Kafka nuget version. 1.5.2
[ ] Apache Kafka version.
[ ] Client configuration.
[ ] Operating system.
[ ] Provide logs (with "debug" : "..." as necessary in configuration).
[ ] Provide broker log excerpts.
[x] Critical issue.

you need to convert the async serializer into a sync one. there's a helper method for this:
using Confluent.Kafka.SyncOverAsync;
then use .AsSyncOverAsync() on the serializer instance.

authors: AdikaSinghvi mhowlett


text:
cp-ansible ignores ssl.principal.rules ( w/ MTLS AUTH ) just extract the full subject from the JKS/certificate to super.users

hello,
we want to use MTLS auth between kafka brokers, and trying to use principal.rules to extract data from the certificates subject, but the CP-Ansible ignores this paramater and export the full subject and adding it to the super.users list ( with manual adding it's OK )
https://github.com/confluentinc/cp-ansible/blob/fd56742ff5b63a75d4be64b7c5d4118b68fbe2ee/roles/kafka_broker/tasks/set_principal.yml#L22-L55
here is the lack of this logic !
pls fix it !
Thanks

Hello @buznyusz
Can you please have a look at the PR https://github.com/confluentinc/cp-ansible/pull/905
This is available in 7.1.x onwards.
Let me know if this serves the purpose here. Thanks!

authors: buznyusz nsharma-git

repo: confluentinc/cp-ansible


text:
feature: Retry count available in header

[x] docs
[x] update / link to from issues
[x] include issue number
[x] Remove WorkContainer from any public API - e.g. delay provider in options

Spirit of:

#65

Redundant by

#216

Blocked by:

#223

Redundant by

#216

repo: confluentinc/parallel-consumer


text:
Login only form

How to modify such that there is only Login, but no Registration form because it is an internal app I am working on and the logic is simply when username and password (hashed) match initialized username and password that is created once upon app launch. Thanks

The form would be basically the same just with fewer fields:
var loginFormSchema = new SimpleSchema({
    username: {
        type: String,
        max: 60,
        label: "Username"
    },
    password: {
        type: String,
        max: 60,
        min: 8,
        label: "Password"
    }
});

RegistrationForm = React.createClass({
    _onSubmit(doc) {
       Meteor.loginWithPassword(doc.username, doc.password, (error, result) => {
            // Handle error/success
        })
    },
    render() {
        return (
            <Form schema={registrationFormSchema} id="login-form" onSubmit={this._onSubmit}>
                <TextInput name="username" />
                <TextInput name="password" type="password" />
                <SubmitButton label="Login" />
            </Form>
        )
    }
});

Near the bottom, do you mean
Thanks

repo: coniel/meteor-react-form-handler


text:
enabled param is not taken into consideration with infinitqueries

Hi, There was an issue about enabled param not working in useQuery that seems to have been fixed in this commit, unfortinatenly the problem still persist at useInfinitQuery and also headers provided to useInfinitQuery dont seem to be sent, but maybe the issues are related.
Can yo check this issue please

Yeah looks like I forgot to port that to useInfiniteQuery. Will submit a fix shortly. In the meantime, you can use the 'disableQuery' symbol as the input to that api.
Regarding headers not being passed through, how are you passing the headers in?

As for the headers, i think it was just due to the disable param not being considered. Since the  query is supposed to be enabled only after some auth headers are computed. Thats why i didnt find them in the logs. So the headers are fine i think. Its just the disabled param that needs fixing 👍

Thank you @paul-sachs for the fast action 🎉🎉🎉 , any rough estimate on where this will be released ?

Should be able to get to a release later today. Just trying to nail down if a previous change warrants a 2.0 since it changed the queryKey used by infiniteQuery.

Awesome 😎, thank you very much @paul-sachs 🙏

Fixed in https://github.com/connectrpc/connect-query-es/releases/tag/v1.2.0

authors: acbeni paul-sachs

repo: connectrpc/connect-query-es


text:
As a user, I need my message to be processed on its destination domain

Problem
See https://github.com/connext/nxtp/issues/1714
Subtask: proveAndProcess
We need to implement relayer transmission cycle for proveAndProcess
Ideas to solve this

Implementation plan:

[subgraph] track dispatch() messages at Origin domain subgraph
[subgraph] track proveAndProcess() messages at Destination domain subgraph
[cartographer] update and add new fields to Cartographer
[lighthouse] In the lighthouse, pull all the transfers from cartographers where processed: false | null, and call proveAndProcess() it

Once this will start working we will create a new user story from the dev perspective to add sanity checks for root submission, or additional checks depending on domains and have an ideal time around calling proveAndProcess() and polling.
Subtasks

[x] https://github.com/connext/nxtp/issues/1753
[x] https://github.com/connext/nxtp/issues/1791
[x] https://github.com/connext/nxtp/issues/1792
[x] https://github.com/connext/nxtp/issues/1793

Acceptance Criteria

slow path transfers are working.

completed

authors: jakekidd sanchaymittal

repo: connext/nxtp


text:
Feature request: composeReducers

Type
Feature request
Wot's the request
I think it'd be pretty cool if this library introduced a new method, composeReducers, that managed composing multiple reducers into one reducer.
More info
With a typical reducer API, like the one used in useReducer, composing reducers is straightforward. One way to do it is:
export default function composeReducers(reducers) {
  return (state, action) =>
    reducers.reduceRight(
      (prevState, reducer) => reducer(prevState, action),
      state
    );
}

It is quite a bit more complex to compose reducers with use-reducer-with-side-effects. A few of the things you have to keep in mind are:

the return value of a reducer is on longer the input for the next one, since they receive state as an input but output both state and side effects
since the sideEffects don't pass through to the next reducer, you must keep and concatenate an array of all of the returned side effects outside of the loop
a Symbol is used for NoUpdates in this lib, rather than the previous state object, so you must track the # of Symbols returned to determine if an update actually occurred

None of these points are insurmountable, but it is a bit to think about as a consumer of this lib who is trying to split out a big reducer into smaller pieces. A composeReducers export from this lib would make it easier for devs to organize their reducers in this way.
Other notes
If this isn't added, then it might be a good idea to explicitly export NO_UPDATE_SYMBOL so that folks can reliably check for no updates when writing their own composer fn. (It can be accessed by calling NoUpdate() but that seems a lil hacky for this purpose imo)
Prior art

Redux - composeReducers

Here's an example implementation in userland that seems to be working. It could probably be tidied up a bit with direct access to NO_UPDATE_SYMBOL.
If you're :+1: to this idea, I can make a PR. Lmk what you think!

love the idea, have been thinking about implementation myself

i published 2.0.0 on the beta tag witth . all changes integrateed

Closing since this is resolved :v:

authors: conorhastings jamesplease


text:
Add BT Coin Token

为确保 Token Profile 的顺利通过，务必逐一确保以下检查项并补充项目资料：
.json 及 .png 文件检查项

[x] logo 尺寸：120*120 px
[x] logo 背景：透明
[x] 代币有至少一笔成功的转账记录
[x] 此项对于 ERC-20 项目方：合约地址有大小写（做 checksum）
[x] .json 和 .png 文件名一致（包括大小写）

项目资料：
团队背景：Btoken区块链交易云平台是一款由前阿里巴巴（天天动听技术团队）音乐播放器早期创始团队打造，当时《天天动听》APP用户数破4亿一度超越支付宝的用户数。
2017年底团队进军区块链，并于2018年独立研发首条公链和BTOKEN交易云平台。
项目基本情况：平台提供项目方自建交易所和一键发币功能，平台主站上线主流交易对和优质项目币。
平台发行平台Token“BT”，总量1亿，团队5%，排行奖励5%，剩余90%每期销售，通过收取的USDT和手续费来回购销毁，不断销毁不设上限。后期BT销售完成后通过手续费继续回购BT销毁 。
BT公链也会择机上线，BT做为公链燃料和手续费。公链代码已经开源。https://github.com/btoken-io/btoken
媒体报道：
区块链交易云平台BTOKEN今日上线，平台币BT涨幅超500%
官方公告：
BToken交易云平台官方通告 ** 请使用手机访问 **
收录的交易所：Btoken交易云平台
转账所需 Gas Limit（对 ERC-20 项目方）：（默认为 60000）

https://github.com/consenlabs/token-profile/blob/master/tutorial/erc20-tutorial.zh-CN.md#资料的完整和准确

抱歉，公告中的措辞需要调整，完善 token profile 仅是为帮助用户更好的了解代币。不成为「官方合作」

我更新了下公告请检查下 (BToken交易云平台官方通告 )[https://www.btokens.net/notice/] **公告暂不支持请使用手机访问 **

抱歉，公告中的措辞需要调整，完善 token profile 仅是为帮助用户更好的了解代币。不成为「官方合作」

我已经修改了公告，请检查下有没有问题

@tstt
请审核一下

欢迎在社区中推荐用户使用 imToken 2.0 管理资产。

repo: consenlabs/token-profile


text:
Kaia token

官方公告：
https://www.facebook.com/111393203545176/posts/115920343092462?s=1568473956&sfns=mo
团队背景：
2018 年公司联合全球最具规模的新加 AI 区块链基金会，共同开发 KAIA，公 司收购了国内外数个实力雄厚的 AI 公司，并应用区块链技术将 AI 智能相结合。 形成更为强大的大数据处理。
项目基本情况：
KAIA 是一个分散的、无垄断的、可自定义的区块链 AI 底层技术开放服务平 台。KAIA 以区块链技术为核心，以其独特、安全、稳定的大数据处理性能为依 托，以人工智能建模和预测为依据，以 AI 量化套保交易为应用场景，以控制数 据和模型使用以及无障碍支付等服务为手段，构建了一个高技术含量的区块链服 务平台。
官网: "http://www.kaiacoin.net/index.php?m=Home&c=Index&a=login&language=zh-cn"
建议 gas limit：60000

有两个问题需要解决：

关于 checksum
https://github.com/consenlabs/token-profile/blob/master/tutorial/erc20-tutorial.zh-CN.md#具体如何操作

要求发布「官方公告」的渠道可从贵方官网跳转