process exit event does not contains exit code argument

When electron exit, exit event is emitted on process object. However, the event handler should receive a code argument, containing the exit code specified in app.exit or process.exit call. It receive instead undefined.
This prevent correct working of modules such as tape that check the exit code.
Steps to reproduce:
process.on('exit', code => console.log('exit:', typeof code));
setTimeout(() => {
  require('electron').app.exit(0);
}, 1000)

It it can help, you can reproduce also using the tape test suite on this repo. As you see, tape is not outputting the last part of tap tests output.


refactored leaflet-measure

sorted out leaflet.measure feature from Transerve PR #159

Why is leaflet-measure not installed via npm?

#165 uses the leaflet-measure npm package. The style now looks different. I've tested using touch screen simulator and it works fine. Let me know if there's any problem.

With the mesaure tool from npm the measurements are given in imperial units. Can it be changed to use the metric system?
Also, if we use the npm version, the one in views/map/leafletMeasure is obsolete...

The light green drawings are really hard to see with the background maps we currently have.


Added Savings & Investment form

In order to move between forms, added Navigaton service.
Reorganised the features, the reasoning is that its all one big
story. Done it in a messy war for now, because I just want it to
work. Then I'll revisit it later.
Added Web Console for debugging.

Looks good, :+1:


feat(prospectType): [INFRA-1120] Update scheduled surfaces to reflect new prospect types

Goal
Update the shared ProspectType enum and ScheduledSurfaces type to reflect new prospect types
References
https://github.com/Pocket/prospect-api/pull/534
JIRA ticket:

INFRA-1120

Changes were merged as part of another PR.


Feature/Removing Nodes Removes Hierarchy [PLAT-1127]

⭐ Not in JIRA yet, but a query for this will have to be updated post-OSF groups
Purpose
Embosf needs to support deleting a node with many descendants in a sane way.
Sending a DELETE request to a node detail should delete the node and all its subcomponents, so long as the client has permission to delete all subcomponents.
If the client does not have permission to one or more of the nodes, return a 403 with a useful error message.
Changes

Changes implemented at model-level; Node.remove_node removes entire hierarchy provided you have admin permissions to all nodes
API DELETE node and BULK DELETE nodes modified to still throw original errors prior to v2.12
BULK DELETE now calls Node.remove_node to consolidate code into one place.  Since remove_node handles a lot of the functionality we were previously using BULK DELETE for, would discourage bulk deletes at this point.

QA Notes

Would do a regression of deleting nodes with and without children.
Double check deleted public nodes are removed from search
Double check comments that were on deleted nodes cannot be accessed via the API

Documentation

Side Effects
Bulk delete operations can be slower, as the entire hierarchy for each node specified would be deleted.  Bulk deletes probably aren't as necessary anymore because a single request to the highest node will delete everything underneath.  I recommend discouraging bulk_updates after v2.12.
Ticket
https://openscience.atlassian.net/browse/PLAT-1127

@sloria, I guess I should wait to reconcile with https://github.com/CenterForOpenScience/osf.io/pull/8826?  This ticket has Node.remove_node() remove every node in the hierarchy, and @erinspace's work has all files removed for every node.  So I should probably wait for her listener changes and then wrap them into this PR.

@pattisdr Good call.

Up to date with Erin's work @sloria


candle transformation is very slow

I have encountered a situation with a big set of data, that transform function is very slow and needs improvements.

start set of data: 385,577
start interval: 1 Minute
end set of data: 3,243 (without fix: 3,221)
end interval: 2 Hours

Default time taken to execute: 150,000 ms
Time taken to execute after optimizations: 29,000 ms
Code:
IEnumerable<IOhlcv> ienumCandles = tradyCandles.AsEnumerable();
var transformedTradyCandles = ienumCandles.Transform<PerMinute, BiHourly>();

Before:
private static IOhlcv ComputeIOhlcvData(IEnumerable<IOhlcv> candles, DateTimeOffset startTime, DateTimeOffset endTime)
{
	var candle = candles.Where(c => c.DateTime >= startTime && c.DateTime < endTime);
	if (candle.Any())
	{
		var dateTime = candle.First().DateTime;
		var open = candle.First().Open;
		var high = candle.Max(stick => stick.High);
		var low = candle.Min(stick => stick.Low);
		var close = candle.Last().Close;
		var volume = candle.Sum(stick => stick.Volume);
		return new Candle(dateTime, open, high, low, close, volume);
	}
	return null;
}

After:
private static IOhlcv ComputeIOhlcvData(IEnumerable<IOhlcv> candles, DateTimeOffset startTime, DateTimeOffset endTime)
{
	List<IOhlcv> inputCandles = candles.ToList();
	List<IOhlcv> candle = new List<IOhlcv>();
	bool started = false;
	for (int i = 0; i < candles.Count(); i++)
	{
		if (!started && inputCandles[i].DateTime >= startTime)
		{
			started = true;
			candle.Add(inputCandles[i]);
		}
		else if (started)
		{
			if (inputCandles[i].DateTime >= endTime)
			{
				break;
			}

			candle.Add(inputCandles[i]);
		}
	}

	if (candle.Any())
	{
		var dateTime = candle.First().DateTime;
		var open = candle.First().Open;
		var high = candle.Max(stick => stick.High);
		var low = candle.Min(stick => stick.Low);
		var close = candle.Last().Close;
		var volume = candle.Sum(stick => stick.Volume);
		return new Candle(dateTime, open, high, low, close, volume);
	}
	return null;
}

While I do see, that there is some difference in output result (I don't have time now, to study what exactly is wrong) - the improvement is seen with a naked eye.
The only requirement is that data needs to be ordered. It can be done as the first step using LINQ. In my set of data all candles were in correct order so I skipped that part.
Additionally, I think transformation can be performed in parallel for different date-time periods.
I would appreciate if you investigated this issue more deeply and came up with some code optimizations.
P.S. Yes, according to profiler ComputeIOhlcvData takes the most time to execute. I think that the reason for that is that LINQ is iterating over all records over and over again. In the best case scenario (if data is ordered) - we need to do it only once!!! (in default implementation the code does it at least 3,000 times) In my new implementation, code also does it  3,000 time, but, it quits iterating over candles as soon as first out-of range candle is encountered. It gave 5x performance boost. I imagine that completely-rewritten transformation will get the job done in at most 1/5 time than my result..

Here, I have made an example, which will ONLY work for 1Minute to 2Hours transformation.

Default time taken to execute: 150,000 ms (records: 3,221)
Time taken to execute after optimizations Nr.1: 29,000 ms (records: 3,243)
Time taken to execute after optimizations Nr.2: 132 ms (records: 3,242)

Old code:
public static IReadOnlyList<IOhlcv> Transform<TSourcePeriod, TTargetPeriod>(this IEnumerable<IOhlcv> candles)
	where TSourcePeriod : IPeriod
	where TTargetPeriod : IPeriod
{
	if (typeof(TSourcePeriod).Equals(typeof(TTargetPeriod)))
		return candles.ToList();

	if (!IsTimeframesValid<TSourcePeriod>(candles, out IOhlcv err))
		throw new InvalidTimeframeException(err.DateTime);

	if (!IsTransformationValid<TSourcePeriod, TTargetPeriod>())
		throw new InvalidTransformationException(typeof(TSourcePeriod), typeof(TTargetPeriod));

	var outIOhlcvDatas = new List<IOhlcv>();
	var periodInstance = Activator.CreateInstance<TTargetPeriod>();

	var startTime = candles.First().DateTime;
	while (startTime <= candles.Last().DateTime)
	{
		var nextStartTime = periodInstance.NextTimestamp(startTime);
		if (periodInstance.IsTimestamp(startTime))
		{
			var outIOhlcvData = ComputeIOhlcvData(candles, startTime, nextStartTime);
			if (outIOhlcvData != null)
				outIOhlcvDatas.Add(outIOhlcvData);
		}
		startTime = nextStartTime;
	}

	return outIOhlcvDatas;
}

private static IOhlcv ComputeIOhlcvData(IEnumerable<IOhlcv> candles, DateTimeOffset startTime, DateTimeOffset endTime)
{
	var candle = candles.Where(c => c.DateTime >= startTime && c.DateTime < endTime);

	if (candle.Any())
	{
		var dateTime = candle.First().DateTime;
		var open = candle.First().Open;
		var high = candle.Max(stick => stick.High);
		var low = candle.Min(stick => stick.Low);
		var close = candle.Last().Close;
		var volume = candle.Sum(stick => stick.Volume);
		return new Candle(dateTime, open, high, low, close, volume);
	}
	return null;
}

New code (optimizations Nr. 2)
public static IReadOnlyList<IOhlcv> Transform<TSourcePeriod, TTargetPeriod>(this IEnumerable<IOhlcv> candles)
	where TSourcePeriod : IPeriod
	where TTargetPeriod : IPeriod
{
	if (typeof(TSourcePeriod).Equals(typeof(TTargetPeriod)))
		return candles.ToList();

	if (!IsTimeframesValid<TSourcePeriod>(candles, out IOhlcv err))
		throw new InvalidTimeframeException(err.DateTime);

	if (!IsTransformationValid<TSourcePeriod, TTargetPeriod>())
		throw new InvalidTransformationException(typeof(TSourcePeriod), typeof(TTargetPeriod));

	var outIOhlcvDatas = new List<IOhlcv>();

	var startTime = candles.First().DateTime;
	var periodStart = GetPeriodStart(startTime);
	var periodEnd = periodStart.AddHours(2);
	List<IOhlcv> inputCandles = candles.ToList();
	List<IOhlcv> candle = new List<IOhlcv>();
	for (int i = 0; i < inputCandles.Count(); i++)
	{
		var dt = inputCandles[i].DateTime;
		if (dt >= periodEnd)
		{
			periodStart = periodEnd;
			periodEnd = periodStart.AddHours(2);

			ComputeIOhlcvDataPreprocessed(outIOhlcvDatas, candle);
			candle = new List<IOhlcv>();
		}

		candle.Add(inputCandles[i]);
	}

	if (candle.Any())
	{
		ComputeIOhlcvDataPreprocessed(outIOhlcvDatas, candle);
		candle = null;
	}

	return outIOhlcvDatas;
}

private static DateTimeOffset GetPeriodStart(DateTimeOffset dt)
{
	return new DateTimeOffset(dt.Year, dt.Month, dt.Day, dt.Hour, 0, 0, dt.Offset);
}

private static void ComputeIOhlcvDataPreprocessed(List<IOhlcv> result, IEnumerable<IOhlcv> candle)
{
	if (candle.Any())
	{
		var dateTime = candle.First().DateTime;
		var open = candle.First().Open;
		var high = candle.Max(stick => stick.High);
		var low = candle.Min(stick => stick.Low);
		var close = candle.Last().Close;
		var volume = candle.Sum(stick => stick.Volume);

		result.Add(new Candle(dateTime, open, high, low, close, volume));
	}
}

And again, I will repeat myself - the code is done for demo purposes. It has some hard-coded periods. You are free to modify it to make a universal solution out of that.
It's just to show that there is a huge room for improvement.

@pavlexander Thanks for the investigation & the optimized code. You're right with the 1st optimization, LINQ is lazy-evaluated, the Where clause have been evaluated every Any(), First(), Last(), Sum(), Min(), Max() operation.
A traditional for-loop (your approach) to create a new list is also a solver to this problem. I think ToList() after the Where clause may also work like the traditional loop but i have to verify.
You're also right with the 2nd optimization, the Where clause in each while loop is too costly, using your approach (iterate candles through the list) is better.
The part will be updated maybe in this weekend. Again, thanks for your contribution :D

@pavlexander The code is patched. Please see if the performance issue has fixed 😃

@lppkarl yes, I can verify that now it's 437x faster than previous implementation :)
Thank you for taking care of this issue and of course, for Trady! You are doing a great job.


Remove Upper Bar

I cannot seem to find a way to remove the top bar (the one that normally has a title on it) from my app. Is there any way to do it?

You should ask this on StackOverflow. If you don't add an AppBar to your Scaffold, there won't be any AppBar. You can put your body content inside SafeArea to make sure that your content is positioned properly. You should read about those in docs or watch videos about Flutter widgets on YouTube.


DRC20 - A standard interface for Dfinity tokens

DRC: 20
Title: Dfinity Fungible Token Standard
Author: Avida<EMAIL_ADDRESS>Simpson<EMAIL_ADDRESS>Status: Drafting
Category: Token DRC
Created: 2021-11-03

Abstract
A standard interface for Dfinity tokens. The standard complies with ERC20 interface specification, and has some improvements to match IC network features.
Motivation
This standard describes fungible token interface that allows to be interacted by applications(off-chain applications and on-chain smartcontracts). And solve some problems of tokens in IC network application scenarios.
The core concept of this standard is:
(1) to keep it as decentralized as possible;
(2) to abstract the generic interfaces and not to include non-essential and individual functional interfaces into the specification.
Token developers can extend it as needed.
Improved features:

Consistency of holder's account-id.
ICP Ledger canister uses account-id(address) as account identifier, while most other canisters use principal-id as account identifier. It brings complexity to users. This standard will use account-id as account identity, and is compatible with the use of principal-id.

Using the pub/sub model instead of the event mechanism.
Dfinity does not have an effective event notification mechanism, and the off-chain SDK needs to actively query the network status. In another scenario, the application canister can use the publisher-subscriber model to subscribe to token canister’s messages and execute callback methods. Therefore, this standard adds subscribe() method. Subscribers need to implemente callback methods for onTransfer, onLock, onExecute, and onApprove messages. The query history records method can be used as a supplement when the subscriber fails to receive a message.

Solving malicious exploits of approvals.
In order to prevent the abuse of the approval method and facilitate risk management, this standard adds approvals() method to facilitate holders to check their approvals.

Transaction records storage and query.
Dfinity does not store smart contract transaction records in blocks like ethereum. Token canister needs to keep transaction record data by itself. The storage space of canister is limited and it is dangerous to store all transaction records in one canister. This standard provides the txnQuery() method for querying the recent transaction records.  It is recommended that only the recent records be kept in the token canister, and more history records can be stored in a separate canister.

Preventing canister cycles balance attack.
According to IC network rules, the caller of canister is not required to pay gas, and it is up to canister to pay gas. It may lead to ddos attacks. So the token canister should ask the caller of the update call to pay gas. This standard adds the gas() method to help the caller estimate the cost of gas. The setGas method is not included in the standard, it is up to the developers to decide, it may be a fixed fee or set through an external governance canister.

Lock/execute model improves atomicity.
Canister's asynchronous messaging model does not provide atomicity guarantees for cross-canister transfers. The non-atomicity of cross-canister transfers is one of the technical features of IC networks that cannot be solved at the system level and needs to consider designing for atomicity within the application logic. For example, creating logical locks, and escrowing token through a middleman.
Creating a two-phase commit structure for transactions can provide the underlying functionality to improve atomicity. Therefore, lockTransfer()/lockTransferFrom() and executeTransfer() methods are added to the standard.

More Issues:

Immutability and decentralization
There are two important factors for keeping token decentralized.
(1) The immutability of the Canister code. The controller of canister can be set to the blackhole address if necessary.
(2) Equal rights and no special permission roles. If there is a need to manage canister, it is recommended to use governance canister to solve.

Preventing re-entrance attacks
Token canister calls to the callback method carry the risk of re-entrance attacks. Measures: Collect gas from the sender and update the canister state before the callback call.

Mint and burn methods
Token distribution rules and economic models should be considered by the token issuer. It is better practice that the token does not contain the mint() and burn() methods. Developers can extend this if they really need to. If you just need the burn() method, 807077e900000000000000000000000000000000000000000000000000000000(this's 0 address with checksum) can be used as the blackhole address.

Specification
Token
DRC20 Token Contract.
Types
type Metadata = record {
    name: text;
    content: text;
};
type Gas = variant {
    cycles: nat;
    token: nat;
    noFee;
};
/* Address: principal string or account-id hex */
type Address = text;
type AccountId = blob;
/* Txid:
   Require unique txid in a token. It is recommended to use DRC202 standard to generate txid.
*/
type Txid = blob;
type TxnResult = variant {
    ok: Txid;
    err: record {
        code: variant {
            InsufficientBalance;
            InsufficientAllowance;
            InsufficientGas;
            LockedTransferExpired;
            UndefinedError;
        };
        message: text;
    };
};
type ExecuteType = variant {
    fallback;  /* operator with access: _decider(anytime), _from(when expired). */
    sendAll;  /* operator with access: _decider(when not expired). */
    sendAndFallback: nat;  /* operator with access: _decider(when not expired). */
};
type Operation = variant {
    transfer: record {
        action: variant {
            send;
            mint;
            burn;
        };
    };
    lockTransfer: record {
        locked: nat;  /* be locked for the amount */
        expiration: int;  /* Expiration timestamp(Time.Time) = lockTransferTimestamp + _timeout */
        decider: AccountId; /* Who has access to execute the executeTransfer() before it expires */
    };
    executeTransfer: record {
        lockedTxid: Txid;
        fallback: nat; /* `from` receives back the amount */
    };
    approve: record {
        allowance: nat;
    };
};
type Transaction = record {
    from: AccountId;
    to: AccountId;
    value: nat;   /* `to` receives the amount (If lockTransfer operation, value SHOULD be 0)  */
    operation: Operation;
    data: opt blob;
};
type TxnRecord = record {
    txid: Txid;
    caller: principal; /* It could be: sender/spender/decider */
    timestamp: int;
    index: nat;
    nonce: nat;
    gas: Gas;
    transaction: Transaction;
};
type Callback = func (record: TxnRecord) -> ();
type MsgType = variant {
    onTransfer;
    onLock;
    onExecute;
    onApprove;
};
type Subscription = record {
    callback: Callback;
    msgTypes: vec MsgType;
};
type Allowance = record {
    spender: AccountId;
    remaining: nat;
};
type TxnQueryRequest = variant {
    txnCountGlobal;
    txnCount: record { owner: Address; };
    getTxn: record { txid: Txid; };
    lastTxidsGlobal;
    lastTxids: record { owner: Address; };
    lockedTxns: record { owner: Address; };
};
type TxnQueryResponse = variant {
    txnCountGlobal: nat;
    txnCount: nat;
    getTxn: opt TxnRecord;
    lastTxidsGlobal: vec Txid;
    lastTxids: vec Txid;
    lockedTxns: record { lockedBalance: nat; txns: vec TxnRecord; };
};
type InitArgs = record {
    totalSupply: nat;
    decimals: nat8;
    gas: Gas;
    name: opt text;
    symbol: opt text;
    metadata: opt vec Metadata;
    founder: opt Address;
};

Methods
NOTES:

The following specifications use syntax from Candid

standard
Returns standard name. E.g. "DRC20 1.0".
OPTIONAL - This method can be used to improve usability, but the value may not be present.
standard: () -> (text) query;

name
Returns the name of the token. E.g. "ICLighthouseToken".
OPTIONAL - This method can be used to improve usability, but the value may not be present.
name: () -> (text) query;

symbol
Returns the symbol of the token. E.g. "ICL".
OPTIONAL - This method can be used to improve usability, but the value may not be present.
symbol: () -> (text) query;

decimals
Returns the number of decimals the token uses. E.g. 8, means to divide the token amount by 100000000 to get its user representation.
decimals: () -> (nat8) query;

metadata
Returns the extend metadata info of the token, It's Metadata type. E.g. 'vec {record { name: "logo"; content: "data:img/jpg;base64,iVBOR....";}; }'.
OPTIONAL - This method can be used to improve usability, but the value may not be present.
metadata: () -> (vec Metadata) query;

cyclesReceive
Sends/donates cycles to the token canister in _account's name, and return cycles balance of the account. If the parameter _account is null, it means donation.
OPTIONAL - This method can be used to improve usability, but the value may not be present.
cyclesReceive: (_account: opt Address) -> (balance: nat);

cyclesBalanceOf
Returns the cycles balance of the given account _owner in the token.
OPTIONAL - This method can be used to improve usability, but the value may not be present.
cyclesBalanceOf: (_owner: Address) -> (balance: nat) query;

gas
Returns the transaction fee of the token. E.g. "variant { token=10000000 }".
Note Support cycles, token as gas charging method. If selected token as gas, it will be additionally charged from the balance of account _from, not be charged from the _value of transfer().
gas: () -> (Gas) query;

totalSupply
Returns the total token supply.
totalSupply: () -> (nat) query;

balanceOf
Returns the account balance of the given account _owner, not including the locked balance.
balanceOf: (_owner: Address) -> (balance: nat) query;

transfer
Transfers _value amount of tokens from caller's account to address _to, returns type TxnResult.
On success, the returned TxnResult contains the txid. The txid is generated in the transaction, is unique in the token transactions. Recommended method of generating txid(DRC202 Standard): convert token's canisterId, caller's accountId, and caller's nonce into [nat8] arrays respectively, and join them together as txInfo: [nat8]. Then get the txid value as: "000000"(big-endian 4-bytes, encode(caller.nonce)) + "0000..00"(28-bytes,sha224(txInfo)).
Parameter _data is used in the pub/sub model as a parameter when calling the subscriber's callback method, it can also be used as the memo for the transaction. (same below)
Note Transfers of 0 values MUST be treated as normal transfers. An account transfer to itself is ALLOWED.
transfer: (_to: Address, _value: nat, _data: opt blob) -> (result: TxnResult);

transferFrom
Transfers _value amount of tokens from address _from to address _to, returns type TxnResult.
The transferFrom method is used for allowing contracts to transfer tokens on your behalf. This can be used for example to allow a contract to transfer tokens on your behalf and/or to charge fees in sub-currencies. The caller is spender who SHOULD be authorized by the _from account and have an allowance(_from, _spender) value greater than _value.
Note Transfers of 0 values MUST be treated as normal transfers. _from account transfer to itself is ALLOWED.
transferFrom: (_from:Address, _to: Address, _value: nat, _data: opt blob) -> (result: TxnResult);

lockTransfer
Locks a transaction, specifies a _decider who can decide the execution of this transaction, and sets an expiration period _timeout seconds after which the locked transaction will be unlocked. The parameter _timeout SHOULD not be greater than 1000000 seconds.
Creating a two-phase commit structure for transactions can improve atomicity. The process is, (_owner) lock the transaction -- (_decider) execute the transaction or (_owner) fallback the transaction when expired
lockTransfer: (_to: Address, _value: nat, _timeout: nat32, _decider: opt Address, _data: opt blob) -> (result: TxnResult);

lockTransferFrom
spender locks a transaction.
lockTransferFrom: (_from: Address, _to: Address, _value: nat, _timeout: nat32, _decider: opt Address, _data: opt blob) -> (result: TxnResult);

executeTransfer
The decider executes the locked transaction _txid, or the owner can fallback the locked transaction after the lock has expired.
executeTransfer: (_txid: Txid, _executeType: ExecuteType) -> (result: TxnResult);

txnQuery
Queries the transaction records information.
Query type _request:
#txnCountGlobal: returns global transaction count.
#txnCount: returns owner's transaction count.
#getTxn: returns details of the transaction with id txid.
#lastTxidsGlobal: returns the latest transaction txids of the global.
#lastTxids: returns owner's latest transaction txids.
#lockedTxns: returns the locked balance of owner, and the locked transaction records.
txnQuery: (_request: TxnQueryRequest) -> (response: TxnQueryResponse) query;

subscribe
Subscribes to the token's messages, giving the callback function and the types of messages as parameters. Subscribers will only receive messages that are related to them (the subscriber is transaction‘s _from, _to, _spender, or _decider).
The subscriber SHOULD be a canister, Implementing callback functions in the code.
subscribe: (_callback: Callback, _msgTypes: vec MsgType) -> bool;

subscribed
Returns the subscription status of the subscriber _owner.
OPTIONAL - This method can be used to improve usability, but the value may not be present.
subscribed: (_owner: Address) -> (result: opt Subscription) query;

approve
Allows _spender to withdraw from your account multiple times, up to the _value amount.
If this function is called again it overwrites the current allowance with _value.
NOTE: When you execute approve() to authorize the spender, it may cause security problems, you can execute approve(_spender, 0) to deauthorize.
approve: (_spender: Address, _value: nat) -> (result: TxnResult);

allowance
Returns the amount which _spender is still allowed to withdraw from _owner.
allowance: (_owner: Address, _spender: Address) -> (remaining: nat) query;

approvals
Returns all your approvals with a non-zero amount.
approvals: (_owner: Address) -> (allowances: vec Allowance) query;

Subscriber's Callback
tokenCallback (customizable)
Token canister subscribers should implement a callback function for handling token published messages.
Message types are: onTransfer, onLock, onExecute, and onApprove. The callback function is given as an argument by calling subscribe() of token.
type Callback = func (record: TxnRecord) -> ();

Implementation
Different implementations are being written by various teams.
Example implementations

ICLighthouse

References

EIP-20 Token Standard
ERC-223 Token Standard
ERC-667 Token Standard
Thoughts on the token standard
dfinance-tech/ic-token
Toniq-Labs/extendable-token
enzoh/motoko-token
Psychedelic/standards
dfinity-fungible-token-standard
Candid

Is it necessary to add the nonce attribute to the transaction in order to prevent double sending of transactions?


Updates to Team Page

https://user-images.githubusercontent.com/99246719/201387679-ef6ef271-4fc0-4696-a4e7-7106e0881d05.mov

Looks good to me, one nit might be to add a link to the jobs page. Though that's already at the bottom of the screen.

Looks good to me, one nit might be to add a link to the jobs page. Though that's already at the bottom of the screen.

Stage two of the Team Page will be a "Working at FlowForge" section, which will include values, lin to handbook, etc. and link to job/careers page.
Cut it at this for now so it's at least better than what we have.


Caused by: java.lang.VerifyError: com/google/vrtoolkit/cardboard/CardboardDeviceParams

Just try demo. Get it crash error. Anyone know it?
01-24 15:24:12.468    7271-7271/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.Error: FATAL EXCEPTION [main]
Unity version     : 4.6.0b20
Device model      : Xiaomi HM 1SW
Device fingerprint: Xiaomi/armani/armani:4.3/JLS36C/JHCMIBH45.0:user/release-keys
Caused by: java.lang.VerifyError: com/google/vrtoolkit/cardboard/CardboardDeviceParams
at com.google.vrtoolkit.cardboard.HeadMountedDisplayManager.createCardboardDeviceParams(HeadMountedDisplayManager.java:214)
at com.google.vrtoolkit.cardboard.HeadMountedDisplayManager.(HeadMountedDisplayManager.java:54)
at com.google.vrtoolkit.cardboard.CardboardView.init(CardboardView.java:768)
at com.google.vrtoolkit.cardboard.CardboardView.(CardboardView.java:263)
at com.google.vrtoolkit.cardboard.plugins.unity.UnityCardboardActivity.onCreate(UnityCardboardActivity.java:184)
at android.app.Activity.performCreate(Activity.java:5135)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2182)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2268)
at android.app.ActivityThread.access$600(ActivityThread.java:148)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1263)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5162)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:756)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:572)
at miui.dexspy.DexspyInstaller.main(DexspyInstaller.java:171)
at dalvik.system.NativeStart.main(Native Method)

Hello,
I had the same problem and solve it by Updating the SDK tools to revision 22.3 and the SDK Platform-Tool to revision 19.0.  in the SDK Manager.

Thank @EnnouriMK
I try to update SDK tools to revision 24.0 and the SDK Platform-Tool to revision 20.0.0. But, the issue still exist.

Hello,
Make sure you are pointing to this updated version of the SDK in Unity "Edit/Preferences/External Tools/Android SDK Location"

Checked. Everything is latest. no mistake. But, issue still exist=[

Two things to check:

In the Unity Player settings, make sure the Minimum API setting is not newer than your phone.
Do you have another model of phone you can try it on?

Verify-errors relating to CardboardDeviceParams appear to be caused by a missing libprotobuf jar file.  Make sure it is present in Assets/Plugins/Android and that it is included in the build.


fix iOS filename, fix Android getting mime/type

iOS

fix filename
Android
set default cache param
fix getting mime/type

thank you i have already fixed this issue


SecureSession::SendMessage crash if all PeerConnections are invalid

Problem
When all PeerConnections are released by the expiry timer, trying to send a message result into a crash since FindPeerConnectionState set the state to nullptr.
Summary of Changes

Check the state before calling ChipLogProgress

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Bugfix.vlansendisabled 205

@mattgreene
What issues does this address?
Fixes #205
What's this change do?
Fixes yet another instance of a known issue.

Needs more investigation is this change is necessary, and run tests to make sure it does not break existing behavior.

Presumably this was an artifact of contaminated input data.


Build kubernetes dashboard image

https://github.com/labring/sealos/blob/main/docs/4.0/build-example-ingress-helm.md
https://github.com/kubernetes/dashboard
You need to add admin permission to the dashboard service account

If the mirror build can submit the relevant configuration to "https://github.com/labring/cluster-image/tree/main/runtime/applications",  the image can be automatically built.


feat(card): omit elevation in favor of card

omit elevation in favor of card elevation member support

Description

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

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

Checklist:

[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

I'm not so sure about leaving the elevation out.
When using card just for out line there are two things:

the content slot is nested inside a div with padding of 24px; This is not always needed. One can use one of the other slots but that's not what they are for.
when using card - we still have un-needed HTML that is generated with the card but has display:none, or empty slots (header + footer.

I find elevation more clean to use.


Suggestion: Add Support for Additional Credential Output Options

I have a branch that adds the following additional credential output options to the function:

Output as an Amazon.Runtime.SessionAWSCredentials object for input to the Credential parameter of AWS PowerShell cmdlets.
Output to the $StoredAWSCredentials shell variable for use by AWS PowerShell cmdlets.
Written as profiles to the AWS SDK .NET encrypted credential file used by the AWS PowerShell cmdlets with a naming convention of <AccountName>.<RoleName>.
Written as profiles to the AWS CLI ini-format credential file with a naming convention of <AccountName>.<RoleName>.
Written to the AWS CLI environment variables: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY and AWS_SESSION_TOKEN for use by the AWS CLI and other compatible tooling (Terraform, Sceptre).

Let me know if you would like me to create a Pull Request.

This is amazing - thanks again.  Are any of these breaking changes?
It would be great to incorporate if you wanted to submit a PR.

No, it still supports the original two outputs. I'll raise a PR for you to take a look.


CI with GitHub Actions

The build matrix tests all the supported GHC versions, based on the supported versions of base given in the cabal file.
I like to test with cabal file for each build so that I can put in constraints to ensure that the CI is testing as many versions that the cabal file declares to be in bounds as possible. I haven't done that very much here, but I have put in constraints for the oldest build to test minimum bounds. The second commit raises the minimum bounds to reflect what is actually testable with GHC 7.10. Anyway, those are just my preferences, but thought I'd offer.

Should raise the base lower bound accordingly?

Yeah, that would be good to do, too

Updated. Minimum GHC lower bound is 8.10. With the other dependency bounds raised accordingly, all CPP and cabal conditionals are now obviated.


Subsequent runs of the Disaptcher should not generate update

When running a second run on a manifest that hasn't changed, there should not be any updates in Puppet. It should work the same as how Apache handles the vhost files.

Already fixed by #59


issue with mel_filters not present on non tiny-en models

Describe the bug
A clear and concise description of what the bug is.
Whisper Xenova models Xenova/whisper-tiny.en Xenova/whisper-base.en and Xenova/whisper-base fail at transformers.js
Note that Xenova/whisper-tiny.en works with the exact same audio file and pipeline.

How to reproduce
Steps or a minimal working example to reproduce the behavior
just any audio even short (6 seconds)
Expected behavior
A clear and concise description of what you expected to happen.
would like to avoid seeing the error :)
Logs/screenshots
If applicable, add logs/screenshots to help explain your problem.
Environment

Transformers.js version: lastest (I do import { pipeline } from 'https://cdn.jsdelivr.net/npm/@xenova/transformers' in a web worker on Chrome)
Browser (if applicable): Chrome
Operating system (if applicable): macOS 12.6 (21G115)
Other:

Additional context
Add any other context about the problem here.

Hi, thank you for the bug report!
We just fixed it here: https://github.com/xenova/transformers.js/pull/112
You can use the latest version e.g. via ES6 + import maps.
TLDR they don't ship mel_filters in the .json file any longer, because they are completely defined by the configuration file itself already.
I would appreciate any feedback on the fix or if you notice any issues with it as there are tiny differences in the floating point approximation. :pray:


Localhost image generating

I have XAMMP and URL for example localhost/webimages/www and path for images is storage/.
It makes folders in storage, localhost/webimages/www/webimages/www/storage/mypicture-100x100.jpg.
It can be fixed by replacing basePath in URL. I could send PR.

@f3l1x Would you please send PR :) ?

I think it's ok. I check it later.


Error installing vscode.d.ts: Error: Request returned status code: 500

My builds on AppVeyor are currently failing due to a 500 response when fetching vscode.d.ts:
npm install --depth 0 --silent
Detected VS Code engine version: ^1.17.0
Error installing vscode.d.ts: Error: Request returned status code: 500
Details:
Command exited with code 1

The build is here: https://ci.appveyor.com/project/DanTup/dart-code/build/0.0.771
Note: I think this has only recently happened - a few hours ago I pulled this on my Mac without any issues.

As is always the way, it was resolved right after I submitted this =)

Actually just saw the same thing on Travis, so maybe it's a bit wobbly at the mo:

Error installing vscode.d.ts: Error: Request returned status code: 500


WIP: Initial Docker Container support

This is a current work in progress, but would bring basic docker support to Goss.
My idea's here are in 2 parts:
Docker container support:

[X] Exists by name(s)
[ ] Exists by labels
[ ] Running
[ ] Running Image & Version

Docker image support:

[ ] Exists
[ ] Specific Version

This was discussed in the early days of goss. Feel free to re-open this as a feature request if it's something you'd like to discuss further. I've avoided any application specific tests in goss that aren't core linux/distro related (e.g. package management, init)
For more information see: https://github.com/aelsabbahy/goss/issues/18


Speed up tests by using lower bcrypt rounds in testing env #986

This PR helps #986
Improve tests speed
Before:

After:

About 1/3 faster on my machine

That's a nice improvement thanks @Nathan-Cowin! I removed the test because I don't think it's needed.
Thanks!

@driesvints No problem :) makes sense


Add an SLConfigDescriptor to the ES_Descriptor

Should fix issue #25 - I'm not sure where in the spec this is defined, but I've found references that state in MP4 files, the SLConfigDescriptor is required, and needs to be set to 2, see http://gpac.sourceforge.net/tutorial/bifs_part3.htm

hello ,
when i am trying to convert H265 file to mp4 file i am seeing half image as gray in entire video.
Please sagest what changes i need to do to solve this issue.
https://user-images.githubusercontent.com/39595032/183293455-35d46423-27a7-45f2-ab6c-af8eac12bbac.mp4
e
uploaded h265 file in zip
test.zip
please help me.


netrc file not honored

When using a netrc to store https credentials, git-hawser still prompts for credentials when hawserless clones and pushes work fine.

Dang, I thought we handled this.  Ah well, there's always v0.5.1 :)

Added in v1.2.0. Late is better than never :)


Add support for search multiple files at once

Add support for selecting multiple files in the gui.

ctrl+click in the file tree will extend the current selection
the context menus have a select/deselect option
Selecting multiple files, will return the earliest (or latest based on sort) results up to the max page size.
Paginator support is disabled when more than 1 file is selected.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%.  Consider uploading reports for the commit 94561e9 to get more accurate results

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff             @@
##              master       #78   +/-   ##
===========================================
  Coverage     100.00%   100.00%
- Complexity       380       406   +26
===========================================
  Files             79        82    +3
  Lines           1015      1061   +46
===========================================
+ Hits            1015      1061   +46

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Suggestion for --download-archive option to improve playlist downloads

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2016.08.17. If it's not read this FAQ entry and update. Issues with outdated version will be rejected.

[x] I've verified and I assure that I'm running youtube-dl 2016.08.17

Before submitting an issue make sure you have:

[x] At least skimmed through README and most notably FAQ and BUGS sections
[x] Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[ ] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[x] Feature request (request for a new functionality)
[ ] Question
[ ] Other

Description of your issue, suggested solution and other information
Hi.
I would like to suggest an additional option for use with the --download-archive option.  This is to help with keeping playlists downloaded from youtube complete, and not missing videos.  When I say missing videos, I don't mean that its a bug but rather how the download archive option works.
For example,
Say we have a single video that is in 2 different playlists.  Using the --download-archive option, the video will be downloaded for playlist1 and added to the download-archive file.  It will be skipped for playlist2 as it has already been downloaded for playlist1.
But I think it would be nice to have the option to ALSO download that video again to keep a playlist complete.  Perhaps something like --ignore-forplaylists or some such.  So when we get to downloading playlist2, it will also download the video to have playlist2 complete, even though it was already downloaded for playlist1.
The main reason for this is if I'm watching a playlist that has 10 videos, but 2 of them were already downloaded in some other playlist - well, I need to go hunting for these 2 videos in the other downloaded playlists so that I can watch the videos in sequence, as they are missing from playlist2.
I hope this makes sense.
Thanks alot, I appreicate the work thats gone into the script and just want to say it works great.
Cheers,
Keith.

Sorry I forgot to mention why I am using the --download-archive option to download the playlists.
I run youtube-dl 2 times for a channel, once to download the playlists and then another time to download the other videos that are not in a playlist.  This helps to keep things organised.
For this second run, I certainly don't want to download the videos again if they were already been downloaded for a playlist previously.
Thanks,
Keith.

Use separate download archive per playlist.

Hi.
If I used a separate download archive per playlist, I would manually need to merge them together and strip out duplicates for when I run youtube-dl a second time to catch all of the videos not downloaded for any of those playlists.  While I can certainly do this, would this additional option not be of benefit?
Cheers,
Keith.


i18n(ko-KR): update frontmatter.md and configuration.md

What kind of changes does this PR include?

Changes or translations of Starlight docs site content

Description
update frontmatter.md and configuration.md

The issue I was trying to solve in this PR was solved in #591 and #592.


softSkills text does not wrap correctly

Expected Behavior
Text should wrap so that it is fully visible and not covered up by the outer circle.
Current Behavior
The text "Machine Learning" is not wrapped and the initial 'M' and terminal 'g' are partially covered.
I also cannot find any way to force the text to break in between the two words. It looks like this:

Possible Solution
Don't know
Steps to Reproduce
Relevant section of my about.yaml:
softSkills:
- name: Machine Learning
  percentage: 85
  color: blue

This PR should fix the issue.
https://github.com/hugo-toha/toha/pull/644

That was quick! A bit of a kludge but it did the trick :smile:


Add shared resources for email alerts dashboard

This adds a collapsed panel at the bottom of the email alerts
dashboard to show the following metrics:

ElasticCache Memory and CPU usage
RDS Postgres CPU, Disk space and IOPS

Not sure is longer relevant.


feat: add parameter to control postgres db pool size

Description
Create variable to allow a better control over the database pool connection configuration.
May fixes #144 and Jira Task 600
Type of change

[x] New feature (non-breaking change which adds functionality)

How Has This Been Tested?
This change will be tested as soon as the service get deployed.
Checklist

[x] I have read the CONTRIBUTING doc
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have already been accepted and merged

Further comments

Thanks for the PR!
Any successful deployments (not always required) will be available below.
Backend
Frontend
Oracle-API
Once merged, code will be promoted and handed off to following workflow run.
Main Merge Workflow

No need to inscrease application pool, since the connection happens directly to the pod. Closing the issue!


Make Mango.jl extend the API of Agents.jl?

Making Mango.jl a sort of extension of Agents.jl could make the package a bit more intuitive for people already using Agents.jl and at the same time it could be then possible to use from Mango.jl functionalities which could be already present in Agents.jl e.g. I saw that your @agent macro is very similar to what is already available in Agents.jl, taking the example from https://offis-dai.github.io/Mango.jl/stable/agent/ it could be roughly rewritten as
@agent struct MyAgent(MangoAgent)
    my_own_field::String
end

# internally in Mango.jl
using Agents
export MangoAgent
@agent struct MangoAgent(NoSpaceAgent)
    # default fields of MangoAgent
end

in general, what do you think about this suggestion? Is this even sensible? I see that this would require a major rewriting of the package anyway so I just want to know what are your feelings about this :-)
Notice that we have some precedence: https://github.com/mastrof/MicrobeAgents.jl

Hello Tortar,
thank you for your suggestion! :) I think it is an interesting idea, especially as we touch Agents.jl way of a) (as you said) building agent structs, and b) with some of our own functionalities in the simulation container, which could be used for a (really simple) agent-based modeling simulation. However, I can also think of difficulties, first, with communication between agents, we really focus on a different aspect of agent systems, the framework Mango.jl shall also bridge the gap between pure scientific simulation and real industry-driven field tests, which would need to run distributed. The core of which makes Mango.jl suitable for our purposes (communication protocols, containering mechanism, convenient APIs for communicating and integration of communication simulation) is really different.
But I can see significant advantages extending Agents.jl with our communication capabilities, or vice-versa Mango.jl with the (agent and world) modeling abilities of Agents.jl. I see a development track for Mango.jl, which could include the integration of Agents.jl, and in fact, we are interested in the broader topic of agent-based modeling. We would need to check in detail where the difficulties lay. I feel it could be possible to partly provide it as an extension, which can use some of Agents.jl functionalities.
I will look into the possibility to migrate parts of Mango.jl to the Agents.jl API, and I will look into the possibility to use parts of Agents.jl modeling capabilities in our simulation container, as I do not think that both packages are compatible when thinking of our real time container, in which actual protocols and actual communication is happening. Optimally, this would result in a) the possibility to use (parts of) Agents.jl within Mango.jl simulations, and b) use (parts of) Mango.jl Agents within a Agents.jl simulation (the latter might be tough though).

This is great!
I'm not sure that these kind of abstraction are suitable but we have at https://juliadynamics.github.io/Agents.jl/stable/devdocs/ some hints on how one could extend the model and space api. I saw that you implemented some new types implementing topologies, at a glance it seems maybe possible to impleement them using a GraphSpace in Agents.jl


Method to copy path

There is useful feature in your extension where hovering over a key or value shows the path. The path only shows in chrome message status in lower corner so there is no way to copy out that path. Please add method to copy path.

I was also thinking that would be an interesting feature. I think I will add an entry in the context menu in order to copy the path into the clipboard.

Any method would be great but may i suggest you add a fixed address bar?
The reasons are:

Advertise the existence of the feature.
I didn't realize you even have the hover feature for a while until by accident.

Easier to copy partial
With context menu it will always copy full path. If user only wanted part of it, then they would have to paste it somewhere else and the copy out the partial. If there was a address bar, user could directly copy partial from there.

Since there already is a nice rectangular highlighting effect when hovering, maybe a button icon appear in corner of rectangle to update address bar with selected key


Remove Implicit Any from Included TypeScript Definition File

The bundled TypeScript definition file included in npm package will cause build errors durring a TypeScript build if a user's tsconfig.json file has the noImplicitAny option set.

I've checked in a fix for this. Should be pushed in the next version of the library I'm planning to release later tonight.

So to be clear... I think the issue you're seeing is that YOU have noImplicitAny enabled for your project and I had missed a couple of spots in my .d.ts file. I've checked in fixes for those issues which should allow your project to build now.

Should be fixed in v0.9.0


Simplify link styling using :is(), to avoid additional rule with :not().

Description
Use a single rule with a:is(...) { instead of a { + a:not(...) for link styling.
Motivation & Context
In _reboot.scss we have link styling that is immediately countered by a more specific rule to undo the styling on named anchors. The :not() part was introduced in #19402 and refined in #30726.
This is awkward and can be simplified.
Type of changes

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

Checklist

[x] I have read the contributing guidelines
[ ] My code follows the code style of the project (using npm run lint)
[ ] My change introduces changes to the documentation
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[ ] All new and existing tests passed

(I shall review the points later)
Live previews

https://deploy-preview-{your_pr_number}--twbs-bootstrap.netlify.app/

Related issues

#19402
#30726

Thanks for this PR @donquixote
Looks promising as an enhancement of the code base, but I'm afraid we can't use it right now based on our current .browserslistrc and what's mentioned in Caniuse for :is().
However, this is something we could probably embed in v6 when we'll update this .browserslistrc with more recent browsers versions.

Alright, thanks for the quick response!
I don't have any investment in this atm, I just wanted to share this idea before I forget about it.
Btw, can we use :not(:not()) in these browsers, to replace :is()?
Do you have any way to test if this would work?

I pushed a version with :not(:not()), in case you want to test it.
I don't have the possibility to test it myself atm.

I pushed a version with :not(:not()), in case you want to test it. I don't have the possibility to test it myself atm.

Thanks for that. I changed the label to v5 instead of v6.
I'll try to find some time to test it with different combinations of browsers/OSs.

Btw we could use :link instead of [href].
But I wanted to keep this as close as possible to the existing code.


Extension blocks access to desktop browser web app

Description
The extension blocks access to pinger's textfree.us chat app for desktop browsers. I tested this in Firefox 88.0.1 and Vivaldi 3.8+, in both Windows 10 and Linux Mint 20.1
Steps to Reproduce

With this extension installed and active, using either of the browsers, create a textfree account at https://messages.textfree.us/
Save login and password, exit and reopen the browser.

Expected behavior:
To be able to log in
Actual behavior:
I am advised to contact textfree admin and report the problem, which I did.
Version
DDG 2021.5.10 in Firefox, which is my default browser.
Additional Information

Repeatable.

My first support request about this issue was emailed to Textfree on March, 19 2021. I changed passwords, but that wasn't the problem.

Are there any errors in the extension debugging console? I wouldn't know.

Thanks for the report. I was able to reproduce an issue with logging in on this site, we'll try and figure out what's going on here and fix it!


Test accounts logic in mina_base.

Explain your changes:

Add unit test for account logic

Explain how you tested your changes:

Run in CI.

Checklist:

[x] Document code purpose, how to use it

Mention expected invariants, implicit constraints

[x] All tests pass (CI will check this if you didn't)
[x] Does this close issues? List them

Closes #12803

I notice that GitHub allows me to merge this PR even though there's no review and the CI is failing. I guess this is likely a problem in the CODEOWNERS file…

!ci-build-me

I see that none of the quickcheck tests have specified the number of trials. The number of trials defaults to 10k. This is probably fine for these tests, as I would expect them to be fast, but sometimes the generators can be slow. Have you measured the amount of time it takes to run these new tests?

These tests compile and run in a little over a minute on my laptop. I think it's quick enough, isn't it?

!ci-build-me

!ci-build-me


Add compatibleSync method for DataStack.

I found sync method of DataStack cannot use operations too, so I made this pull request.

Hi @lm2343635!
I'm trying to keep the codebase as simple as possible, is it possible that you include these helpers just in your project? We can always revisit if someone else needs this.
Thanks!

It's OK for me to use the class method Sync.changes.
I want to know the differences between the class method and the instance method dataStack.sync

Instance method is just a convenience method.

Closing since it can be added as a local helper method.


Stop import not working

When clicking the stop import button, the importer seems to reopen a new import process for the stopped process, which blocks priority imports when all three import queues are occupied by long running imports.
{
  "offset": 0,
  "limit": 25,
  "total": 25,
  "result": [
    {
      "datasetKey": 1022,
      "attempt": 3,
      "state": "inserting",
      "downloadUri": "https://raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/22.tar.gz",
      "download": "2018-12-14T14:31:18",
      "started": "2018-12-14T14:31:17.68",
      "md5": "BE0A2C072194DE56D58FB93051F4B285"
    },
    {
      "datasetKey": 1018,
      "attempt": 4,
      "state": "inserting",
      "downloadUri": "https://raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/18.tar.gz",
      "download": "2018-12-14T14:31:18",
      "started": "2018-12-14T14:31:17.638",
      "md5": "BC463949269B7919614E7E7D90E1BC3A"
    },
    {
      "datasetKey": 1021,
      "attempt": 4,
      "state": "inserting",
      "downloadUri": "https://raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/21.tar.gz",
      "download": "2018-12-14T14:31:18",
      "started": "2018-12-14T14:31:17.637",
      "md5": "FDD57BF62EDCB761F6641F7090A9432B"
    },
    {
      "datasetKey": 1021,
      "attempt": 3,
      "state": "canceled",
      "downloadUri": "https://raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/21.tar.gz",
      "download": "2018-12-14T13:17:15",
      "started": "2018-12-14T13:17:14.762",
      "finished": "2018-12-14T14:31:17.599",
      "md5": "FDD57BF62EDCB761F6641F7090A9432B"
    },
    {
      "datasetKey": 1018,
      "attempt": 3,
      "state": "canceled",
      "downloadUri": "https://raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/18.tar.gz",
      "download": "2018-12-14T13:17:15",
      "started": "2018-12-14T13:17:14.749",
      "finished": "2018-12-14T14:31:17.625",
      "md5": "BC463949269B7919614E7E7D90E1BC3A"
    },
    {
      "datasetKey": 1022,
      "attempt": 2,
      "state": "canceled",
      "downloadUri": "https://raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/22.tar.gz",
      "download": "2018-12-14T13:17:15",
      "started": "2018-12-14T13:17:14.726",
      "finished": "2018-12-14T14:31:17.633",
      "md5": "BE0A2C072194DE56D58FB93051F4B285"
    },
    {
      "datasetKey": 1022,
      "attempt": 1,
      "state": "canceled",
      "downloadUri": "https://raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/22.tar.gz",
      "download": "2018-12-14T11:24:18",
      "started": "2018-12-14T11:24:17.741",
      "finished": "2018-12-14T13:17:14.669",
      "md5": "BE0A2C072194DE56D58FB93051F4B285"
    },
    {
      "datasetKey": 1018,
      "attempt": 2,
      "state": "canceled",
      "downloadUri": "https://raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/18.tar.gz",
      "download": "2018-12-14T11:24:18",
      "started": "2018-12-14T11:24:17.717",
      "finished": "2018-12-14T13:17:14.724",
      "md5": "BC463949269B7919614E7E7D90E1BC3A"
    },
    {
      "datasetKey": 1021,
      "attempt": 2,
      "state": "canceled",
      "downloadUri": "https://raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/21.tar.gz",
      "download": "2018-12-14T11:24:18",
      "started": "2018-12-14T11:24:17.528",
      "finished": "2018-12-14T13:17:14.746",
      "md5": "FDD57BF62EDCB761F6641F7090A9432B"
    },
    {
      "datasetKey": 1021,
      "attempt": 1,
      "state": "canceled",
      "downloadUri": "https://raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/21.tar.gz",
      "download": "2018-12-13T23:05:10",
      "started": "2018-12-13T23:05:09.677",
      "finished": "2018-12-14T11:24:17.343",
      "md5": "FDD57BF62EDCB761F6641F7090A9432B"
    },
    {
      "datasetKey": 1020,
      "attempt": 1,
      "state": "finished",
      "downloadUri": "https://raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/20.tar.gz",
      "download": "2018-12-13T23:04:07",
      "started": "2018-12-13T23:04:07.373",
      "finished": "2018-12-13T23:05:05.289",
      "md5": "D92285A480951505CEDBBFDE1FC5F220",
      "distributionCount": 2466,
      "nameCount": 9028,
      "referenceCount": 2419,
      "taxonCount": 7124,
      "verbatimCount": 15360,
      "vernacularCount": 2140,
      "distributionsByGazetteerCount": {
        "text": 2466
      },
      "issuesCount": {
        "name match inserted": 8188,
        "partial date": 6431,
        "parent id invalid": 6431,
        "csl container unparsed": 2419,
        "vernacular name transliterated": 2140,
        "duplicate name": 260,
        "unmatched reference brackets": 86,
        "name match variant": 82,
        "parsed name differs": 2,
        "indetermined": 2,
        "name match none": 2
      },
      "vernacularsByLanguageCount": {
        "eng": 1363,
        "nld": 158,
        "afr": 150,
        "deu": 130,
        "fra": 127,
        "dan": 53,
        "fin": 52,
        "swe": 52
      },
      "namesByTypeCount": {
        "scientific": 9026,
        "informal": 2
      },
      "namesByOriginCount": {
        "source": 8335,
        "denormed classification": 693
      },
      "namesByRankCount": {
        "species": 8335,
        "genus": 660,
        "family": 29,
        "kingdom": 1,
        "phylum": 1,
        "class": 1,
        "order": 1
      },
      "taxaByRankCount": {
        "species": 6431,
        "genus": 660,
        "family": 29,
        "kingdom": 1,
        "phylum": 1,
        "class": 1,
        "order": 1
      },
      "usagesByStatusCount": {
        "accepted": 7124,
        "synonym": 1904
      },
      "
      verbatimByTypeCount
      ":{"
      acef: CommonNames
      ":2140,"
      acef: Reference
      ":2419,"
      acef: Distribution
      ":2466,"
      acef: Synonyms
      ":1904,"
      acef: AcceptedSpecies
      ":6431}},{"
      datasetKey
      ":1019,"
      attempt
      ":1,"
      state
      ":"
      finished
      ","
      downloadUri
      ":"
      https: //raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/19.tar.gz","download":"2018-12-13T23:02:24","started":"2018-12-13T23:02:23.866","finished":"2018-12-13T23:03:58.077","md5":"84FA589448658D93D641A64862BD6650","distributionCount":0,"nameCount":14429,"referenceCount":0,"taxonCount":14429,"verbatimCount":39779,"vernacularCount":0,"issuesCount":{"reference id invalid":26415,"partial date":13364,"parent id invalid":13364,"name match inserted":13356,"duplicate name":14,"name match variant":7,"parsed name differs":2,"indetermined":1,"name match none":1},"namesByTypeCount":{"scientific":14428,"informal":1},"namesByOriginCount":{"source":13364,"denormed classification":1065},"namesByRankCount":{"species":13364,"genus":941,"family":97,"order":22,"class":3,"kingdom":1,"phylum":1},"taxaByRankCount":{"species":13364,"genus":941,"family":97,"order":22,"class":3,"kingdom":1,"phylum":1},"usagesByStatusCount":{"accepted":14426,"provisionally accepted":3},"verbatimByTypeCount":{"acef:AcceptedSpecies":13364,"acef:NameReferencesLinks":26415}},{"datasetKey":1018,"attempt":1,"state":"canceled","downloadUri":"https://raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/18.tar.gz","download":"2018-12-13T22:59:42","started":"2018-12-13T22:59:41.723","finished":"2018-12-14T11:24:17.515","md5":"BC463949269B7919614E7E7D90E1BC3A"},{"datasetKey":1017,"attempt":1,"state":"finished","downloadUri":"https://raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/17.tar.gz","download":"2018-12-13T22:56:45","started":"2018-12-13T22:56:44.516","finished":"2018-12-13T23:01:54.35","md5":"B0B45E20142842273DAC5D824D7E8A8D","distributionCount":16159,"nameCount":49010,"referenceCount":1110,"taxonCount":42860,"verbatimCount":63611,"vernacularCount":2236,"distributionsByGazetteerCount":{"text":16159},"issuesCount":{"name match inserted":41173,"partial date":35960,"parent id invalid":35275,"synonym data moved":2722,"vernacular name transliterated":2298,"reference id invalid":2287,"duplicate name":1545,"reftype invalid":1263,"csl container unparsed":1110,"name match variant":441,"not interpreted":62,"name match ambiguous":17,"unmatched name brackets":8,"id not unique":3,"taxonomic status doubtful":2,"unparsable authorship":1,"truncated name":1},"vernacularsByLanguageCount":{"eng":1491,"fra":332,"spa":214,"por":19,"ita":7},"namesByTypeCount":{"scientific":49010},"namesByOriginCount":{"source":42109,"denormed classification":6901},"namesByRankCount":{"species":40871,"genus":5459,"variety":951,"family":755,"subgenus":425,"infraspecific name":229,"superfamily":119,"order":106,"form":57,"class":22,"phylum":12,"kingdom":3,"subspecies":1},"taxaByRankCount":{"species":35275,"genus":5459,"family":755,"variety":644,"subgenus":425,"superfamily":119,"order":106,"form":40,"class":22,"phylum":12,"kingdom":3},"usagesByStatusCount":{"accepted":42860,"synonym":6148,"ambiguous synonym":2},"verbatimByTypeCount":{"acef:AcceptedInfraSpecificTaxa":684,"acef:CommonNames":2298,"acef:Reference":1110,"acef:Distribution":16159,"acef:Synonyms":6151,"acef:AcceptedSpecies":35276,"acef:NameReferencesLinks":1933}},{"datasetKey":1015,"attempt":1,"state":"finished","downloadUri":"https://raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/15.tar.gz","download":"2018-12-13T22:55:04","started":"2018-12-13T22:55:03.993","finished":"2018-12-13T22:59:26.488","md5":"87C2CB1CE072DFD8CAB37BB36A7C0E05","distributionCount":0,"nameCount":44381,"referenceCount":2617,"taxonCount":21358,"verbatimCount":63565,"vernacularCount":14142,"issuesCount":{"name match inserted":42071,"synonym data moved":20272,"parent id invalid":16371,"vernacular name transliterated":14073,"reference id invalid":5158,"partial date":5003,"duplicate name":2861,"csl container unparsed":2616,"taxonomic status doubtful":1730,"name match variant":1295,"lifezone invalid":80,"name match ambiguous":42,"id not
      unique
      ":30,"
      unmatched
      reference
      brackets
      ":21,"
      parsed
      name
      differs
      ":1},"
      vernacularsByLanguageCount
      ":{"
      eng
      ":2708,"
      rus
      ":1836,"
      fra
      ":638,"
      hin
      ":531,"
      deu
      ":333,"
      sin
      ":194,"
      spa
      ":167,"
      mon
      ":134,"
      ron
      ":103,"
      ukr
      ":89,"
      tam
      ":88,"
      aze
      ":81,"
      por
      ":78,"
      hye
      ":74,"
      zho
      ":69,"
      lit
      ":68,"
      lav
      ":51,"
      est
      ":46,"
      pol
      ":44,"
      ita
      ":43,"
      kat
      ":42,"
      uzb
      ":42,"
      kaz
      ":37,"
      swe
      ":37,"
      fin
      ":34,"
      bod
      ":15,"
      kom
      ":12,"
      urd
      ":12,"
      heb
      ":9,"
      chv
      ":8,"
      tur
      ":7},"
      namesByTypeCount
      ":{"
      scientific
      ":44381},"
      namesByOriginCount
      ":{"
      source
      ":43649,"
      denormed
      classification
      ":732},"
      namesByRankCount
      ":{"
      species
      ":35790,"
      variety
      ":5574,"
      subspecies
      ":2285,"
      genus
      ":727,"
      kingdom
      ":1,"
      phylum
      ":1,"
      class
      ":1,"
      order
      ":1,"
      family
      ":1},"
      taxaByRankCount
      ":{"
      species
      ":16371,"
      variety
      ":2682,"
      subspecies
      ":1573,"
      genus
      ":727,"
      kingdom
      ":1,"
      phylum
      ":1,"
      class
      ":1,"
      order
      ":1,"
      family
      ":1},"
      usagesByStatusCount
      ":{"
      accepted
      ":21334,"
      synonym
      ":21293,"
      misapplied
      ":946,"
      ambiguous
      synonym
      ":784,"
      provisionally
      accepted
      ":24},"
      verbatimByTypeCount
      ":{"
      acef: AcceptedInfraSpecificTaxa
      ":4255,"
      acef: CommonNames
      ":14142,"
      acef: Reference
      ":2617,"
      acef: Synonyms
      ":23038,"
      acef: AcceptedSpecies
      ":16371,"
      acef: NameReferencesLinks
      ":3142}},{"
      datasetKey
      ":1014,"
      attempt
      ":1,"
      state
      ":"
      finished
      ","
      downloadUri
      ":"
      https: //raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/14.tar.gz","download":"2018-12-13T22:54:40","started":"2018-12-13T22:54:39.819","finished":"2018-12-13T22:55:01.553","md5":"F387C753DB10F2B4EEE4625F630B37AE","distributionCount":0,"nameCount":3827,"referenceCount":2,"taxonCount":3827,"verbatimCount":3188,"vernacularCount":0,"issuesCount":{"partial date":3186,"parent id invalid":3186,"name match inserted":3092,"name match none":93,"duplicate name":2,"csl container unparsed":2,"name match variant":1},"namesByTypeCount":{"virus":3093,"scientific":641,"placeholder":93},"namesByOriginCount":{"source":3186,"denormed classification":641},"namesByRankCount":{"species":3186,"genus":524,"family":106,"order":8,"kingdom":1,"phylum":1,"class":1},"taxaByRankCount":{"species":3186,"genus":524,"family":106,"order":8,"kingdom":1,"phylum":1,"class":1},"usagesByStatusCount":{"accepted":3827},"verbatimByTypeCount":{"acef:Reference":2,"acef:AcceptedSpecies":3186}},{"datasetKey":1012,"attempt":1,"state":"finished","downloadUri":"https://raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/12.tar.gz","download":"2018-12-13T22:54:33","started":"2018-12-13T22:54:33.639","finished":"2018-12-13T22:54:39.343","md5":"8FFF15EE170C3301BECE57DD0A8C6A78","distributionCount":24,"nameCount":580,"referenceCount":526,"taxonCount":338,"verbatimCount":1076,"vernacularCount":0,"distributionsByGazetteerCount":{"text":24},"issuesCount":{"csl container unparsed":526,"escaped characters":524,"name match inserted":524,"partial date":284,"parent id invalid":284,"distribution area invalid":24,"taxonomic status doubtful":6,"duplicate name":4,"name match variant":2,"truncated name":2},"namesByTypeCount":{"scientific":580},"namesByOriginCount":{"source":526,"denormed classification":54},"namesByRankCount":{"species":519,"genus":33,"family":13,"variety":7,"order":5,"kingdom":1,"phylum":1,"class":1},"taxaByRankCount":{"species":284,"genus":33,"family":13,"order":5,"kingdom":1,"phylum":1,"class":1},"usagesByStatusCount":{"accepted":338,"synonym":236,"ambiguous synonym":4,"misapplied":2},"verbatimByTypeCount":{"acef:Reference":526,"acef:Distribution":24,"acef:Synonyms":242,"acef:AcceptedSpecies":284}},{"datasetKey":1011,"attempt":1,"state":"finished","downloadUri":"https://raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/11.tar.gz","download":"2018-12-13T22:51:32","started":"2018-12-13T22:51:32.173","finished":"2018-12-13T22:54:22.795","md5":"67E38C065C1B6D23798D8CAE50A4A827","distributionCount":25928,"nameCount":25210,"referenceCount":2604,"taxonCount":16291,"verbatimCount":51377,"vernacularCount":224,"distributionsByGazetteerCount":{"text":25928},"issuesCount":{"distribution gazeteer invalid":25928,"name match inserted":21373,"partial date":13702,"parent id invalid":13671,"csl container unparsed":2602,"duplicate name":2350,"name match variant":569,"vernacular name transliterated":224,"taxonomic status doubtful":78,
      "reference id invalid"
      :
      47,
      "unusual name characters": 30,
      "name match ambiguous": 9,
      "unmatched reference brackets": 8,
      "parsed name differs": 2,
      "indetermined": 1,
      "name match none": 1
    },
    "vernacularsByLanguageCount"
    :
    {
      "kor": 1
    },
    "namesByTypeCount"
    :
    {
      "scientific": 25209,
      "informal": 1
    },
    "namesByOriginCount"
    :
    {
      "source": 22621,
      "denormed classification": 2589
    },
    "namesByRankCount"
    :
    {
      "species": 22441,
      "genus": 2364,
      "subgenus": 188,
      "infraspecific name": 105,
      "variety": 65,
      "family": 32,
      "form": 10,
      "kingdom": 1,
      "phylum": 1,
      "class": 1,
      "order": 1,
      "superfamily": 1
    },
    "taxaByRankCount"
    :
    {
      "species": 13671,
      "genus": 2364,
      "subgenus": 188,
      "family": 32,
      "variety": 26,
      "form": 5,
      "kingdom": 1,
      "phylum": 1,
      "class": 1,
      "order": 1,
      "superfamily": 1
    },
    "usagesByStatusCount"
    :
    {
      "accepted": 16275,
      "synonym": 8841,
      "ambiguous synonym": 78,
      "provisionally accepted": 16
    },
    "verbatimByTypeCount"
    :
    {
      "acef:AcceptedInfraSpecificTaxa": 31,
      "acef:CommonNames": 224,
      "acef:Reference": 2604,
      "acef:Distribution": 25928,
      "acef:Synonyms": 8919,
      "acef:AcceptedSpecies": 13671
    }
    },
    {
      "datasetKey": 1010,
      "attempt": 1,
      "state": "finished",
      "downloadUri": "https://raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/10.tar.gz",
      "download": "2018-12-13T22:50:43",
      "started": "2018-12-13T22:50:42.897",
      "finished": "2018-12-13T23:09:33.786",
      "md5": "029FD6C0337BD2A9C5D89F34CCAA1B88",
      "distributionCount": 33968,
      "nameCount": 102527,
      "referenceCount": 9997,
      "taxonCount": 39751,
      "verbatimCount": 462302,
      "vernacularCount": 321570,
      "distributionsByGazetteerCount": {
        "text": 33968
      },
      "issuesCount": {
        "vernacular name transliterated": 261947,
        "name match inserted": 86398,
        "synonym data moved": 62550,
        "parent id invalid": 33987,
        "partial date": 33985,
        "duplicate name": 18335,
        "csl container unparsed": 9997,
        "taxonomic status doubtful": 9568,
        "name match variant": 8710,
        "escaped characters": 8065,
        "lifezone invalid": 2988,
        "unusual name characters": 94,
        "reference id invalid": 75,
        "unmatched reference brackets": 43,
        "parsed name differs": 37,
        "indetermined": 28,
        "name match none": 28,
        "name match ambiguous": 24,
        "taxon id invalid": 4,
        "repl enclosing quote": 2,
        "according to date invalid": 2,
        "inconsistent authorship": 1
      },
      "vernacularsByLanguageCount": {
        "eng": 73847,
        "spa": 20396,
        "por": 13148,
        "fra": 11901,
        "est": 10429,
        "msa": 9330,
        "deu": 7477,
        "dan": 5785,
        "ita": 5539,
        "fin": 5360,
        "ces": 5267,
        "jpn": 5084,
        "ara": 3940,
        "tgl": 3747,
        "rus": 3417,
        "tam": 2995,
        "mal": 2824,
        "ell": 2433,
        "afr": 2268,
        "pol": 1863,
        "swe": 1701,
        "tur": 1662,
        "nld": 1477,
        "kor": 1454,
        "vie": 1446,
        "tha": 1382,
        "fij": 1095,
        "mar": 1091,
        "swa": 1016,
        "tel": 1014,
        "smo": 923,
        "hrv": 918,
        "ben": 877,
        "sqi": 872,
        "mlt": 860,
        "tah": 832,
        "wol": 764,
        "srp": 744,
        "kan": 694,
        "khm": 642,
        "nor": 627,
        "jav": 587,
        "div": 578,
        "cat": 554,
        "fas": 538,
        "sin": 528,
        "mah": 497,
        "iku": 485,
        "nya": 416,
        "guj": 414,
        "som": 398,
        "isl": 394,
        "nep": 393,
        "mya": 343,
        "fao": 330,
        "ind": 323,
        "cos": 311,
        "ewe": 288,
        "mlg": 287,
        "heb": 279,
        "hin": 265,
        "cym": 249,
        "hau": 223,
        "slv": 211,
        "mri": 156,
        "asm": 152,
        "ton": 141,
        "pan": 136,
        "ori": 133,
        "kin": 132,
        "bul": 122,
        "grn": 114,
        "yor": 112,
        "slk": 90,
        "cha": 85,
        "lit": 83,
        "kau": 81,
        "lav": 80,
        "gle": 73,
        "hun": 66,
        "kir": 65,
        "ibo": 63,
        "snd": 50,
        "ukr": 49,
        "bis": 44,
        "cre": 40,
        "urd": 35,
        "ven": 30,
        "glv": 28,
        "amh": 24,
        "kal": 24,
        "mkd": 22,
        "kas": 21,
        "bam": 14,
        "run": 10,
        "aka": 8,
        "orm": 6,
        "eus": 3,
        "lin": 3,
        "tir": 3,
        "bre": 2,
        "kaz": 2,
        "kik": 2,
        "que": 2,
        "bih": 1,
        "bos": 1,
        "lug": 1,
        "hmo": 1
      },
      "namesByTypeCount": {
        "scientific": 102498,
        "informal": 29
      },
      "namesByOriginCount": {
        "source": 96763,
        "denormed classification": 5764
      },
      "namesByRankCount": {
        "species": 91751,
        "genus": 5139,
        "infraspecific name": 4879,
        "family": 553,
        "variety": 116,
        "order": 64,
        "form": 17,
        "class": 6,
        "kingdom": 1,
        "phylum": 1
      },
      "taxaByRankCount": {
        "species": 33987,
        "genus": 5139,
        "family": 553,
        "order": 64,
        "class": 6,
        "kingdom": 1,
        "phylum": 1
      },
      "usagesByStatusCount": {
        "synonym": 53208,
        "accepted": 39706,
        "misapplied": 7448,
        "ambiguous synonym": 2120,
        "provisionally accepted": 45
      },
      "verbatimByTypeCount": {
        "acef:CommonNames": 321570,
        "acef:Reference": 9997,
        "acef:Distribution": 33968,
        "acef:Synonyms": 62776,
        "acef:AcceptedSpecies": 33987,
        "acef:NameReferencesLinks": 4
      }
    },
    {
      "datasetKey": 1009,
      "attempt": 1,
      "state": "finished",
      "downloadUri": "https://raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/9.tar.gz",
      "download": "2018-12-13T22:50:40",
      "started": "2018-12-13T22:50:40.372",
      "finished": "2018-12-13T22:50:42.616",
      "md5": "
      CD77FC0C8DBE90FBE0E2C39480C8C23A
      ","
      distributionCount
      ":0,"
      nameCount
      ":103,"
      referenceCount
      ":0,"
      taxonCount
      ":103,"
      verbatimCount
      ":174,"
      vernacularCount
      ":0,"
      issuesCount
      ":{"
      reference
      id
      invalid
      ":88,"
      partial
      date
      ":86,"
      parent
      id
      invalid
      ":86,"
      name
      match
      inserted
      ":84,"
      parsed
      name
      differs
      ":1},"
      namesByTypeCount
      ":{"
      scientific
      ":103},"
      namesByOriginCount
      ":{"
      source
      ":86,"
      denormed
      classification
      ":17},"
      namesByRankCount
      ":{"
      species
      ":86,"
      genus
      ":11,"
      family
      ":2,"
      kingdom
      ":1,"
      phylum
      ":1,"
      class
      ":1,"
      order
      ":1},"
      taxaByRankCount
      ":{"
      species
      ":86,"
      genus
      ":11,"
      family
      ":2,"
      kingdom
      ":1,"
      phylum
      ":1,"
      class
      ":1,"
      order
      ":1},"
      usagesByStatusCount
      ":{"
      accepted
      ":103},"
      verbatimByTypeCount
      ":{"
      acef: AcceptedSpecies
      ":86,"
      acef: NameReferencesLinks
      ":88}},{"
      datasetKey
      ":1008,"
      attempt
      ":1,"
      state
      ":"
      finished
      ","
      downloadUri
      ":"
      https: //raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/8.tar.gz","download":"2018-12-13T22:49:49","started":"2018-12-13T22:49:49.386","finished":"2018-12-13T22:56:34.561","md5":"30C9B98B764224D50600A17612D4CD2F","distributionCount":26325,"nameCount":45395,"referenceCount":28542,"taxonCount":15096,"verbatimCount":110755,"vernacularCount":11764,"distributionsByGazetteerCount":{"tdwg":26325},"issuesCount":{"name match inserted":37523,"csl container unparsed":28529,"partial date":13825,"parent id invalid":13825,"duplicate name":9084,"name match variant":2726,"parsed name differs":877,"name match none":864,"indetermined":849,"name match ambiguous":351,"unmatched reference brackets":325,"unusual name characters":62,"unmatched name brackets":12,"truncated name":10,"doubtful name":5,"question marks removed":3,"unparsable authorship":2,"escaped characters":1},"vernacularsByLanguageCount":{"eng":9433,"deu":1873,"spa":256,"vie":45,"nld":44,"fra":38,"tha":28,"sin":11,"zho":9,"tam":9,"ind":8,"ita":3,"jpn":2,"hin":1,"lao":1,"nep":1,"srp":1,"tur":1},"namesByTypeCount":{"scientific":44526,"informal":854,"no name":14,"placeholder":1},"namesByOriginCount":{"source":44124,"denormed classification":1271},"namesByRankCount":{"species":36768,"infraspecific name":6630,"genus":1176,"variety":706,"family":88,"form":12,"unranked":7,"order":4,"kingdom":1,"phylum":1,"class":1,"infrageneric name":1},"taxaByRankCount":{"species":13825,"genus":1176,"family":88,"order":4,"kingdom":1,"phylum":1,"class":1},"usagesByStatusCount":{"synonym":30299,"accepted":15096},"verbatimByTypeCount":{"acef:CommonNames":11764,"acef:Reference":28542,"acef:Distribution":26325,"acef:Synonyms":30299,"acef:AcceptedSpecies":13825}},{"datasetKey":1007,"attempt":1,"state":"finished","downloadUri":"https://raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/7.tar.gz","download":"2018-12-13T22:49:47","started":"2018-12-13T22:49:47.287","finished":"2018-12-13T22:49:49.233","md5":"EB4C6E9A415802B9CB010A0F883C2895","distributionCount":0,"nameCount":9,"referenceCount":0,"taxonCount":9,"verbatimCount":20,"vernacularCount":18,"issuesCount":{"vernacular name transliterated":18,"partial date":2,"name match inserted":2,"parent id invalid":2},"vernacularsByLanguageCount":{"dan":4,"eng":3,"fra":2,"deu":2,"ita":2,"por":2,"spa":2,"nld":1},"namesByTypeCount":{"scientific":9},"namesByOriginCount":{"denormed classification":7,"source":2},"namesByRankCount":{"genus":2,"species":2,"kingdom":1,"phylum":1,"class":1,"order":1,"family":1},"taxaByRankCount":{"genus":2,"species":2,"kingdom":1,"phylum":1,"class":1,"order":1,"family":1},"usagesByStatusCount":{"accepted":9},"verbatimByTypeCount":{"acef:CommonNames":18,"acef:AcceptedSpecies":2}},{"datasetKey":1006,"attempt":1,"state":"finished","downloadUri":"https://raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/6.tar.gz","download":"2018-12-13T22:49:31","started":"2018-12-13T22:49:31.454","finished":"2018-12-13T22:49:46.298","md5":"35A7053203799A241FC3221A69EAA791","distributionCount":1101,"nameCount":941,"referenceCount":301,"taxonCount":424,"verbatimCount":2452,"vernacularCount":0,"distributionsByGazetteerCount":{"text":1101},"issuesCount":{"distribution gazeteer invalid":1101,"name match inserted":734,"partial date":397,"parent id invalid":397,"duplicate name":331,"csl
      container
      unparsed
      ":301,"
      reference
      id
      invalid
      ":136,"
      name
      match
      variant
      ":118,"
      taxonomic
      status
      doubtful
      ":100,"
      parsed
      name
      differs
      ":1,"
      unusual
      name
      characters
      ":1,"
      indetermined
      ":1,"
      name
      match
      none
      ":1,"
      unmatched
      reference
      brackets
      ":1},"
      namesByTypeCount
      ":{"
      scientific
      ":940,"
      informal
      ":1},"
      namesByOriginCount
      ":{"
      source
      ":914,"
      denormed
      classification
      ":27},"
      namesByRankCount
      ":{"
      species
      ":905,"
      subgenus
      ":19,"
      infraspecific
      name
      ":7,"
      genus
      ":3,"
      variety
      ":2,"
      kingdom
      ":1,"
      phylum
      ":1,"
      class
      ":1,"
      order
      ":1,"
      family
      ":1},"
      taxaByRankCount
      ":{"
      species
      ":397,"
      subgenus
      ":19,"
      genus
      ":3,"
      kingdom
      ":1,"
      phylum
      ":1,"
      class
      ":1,"
      order
      ":1,"
      family
      ":1},"
      usagesByStatusCount
      ":{"
      accepted
      ":424,"
      synonym
      ":417,"
      ambiguous
      synonym
      ":100},"
      verbatimByTypeCount
      ":{"
      acef: Reference
      ":301,"
      acef: Distribution
      ":1101,"
      acef: Synonyms
      ":517,"
      acef: AcceptedSpecies
      ":397,"
      acef: NameReferencesLinks
      ":136}},{"
      datasetKey
      ":1005,"
      attempt
      ":1,"
      state
      ":"
      finished
      ","
      downloadUri
      ":"
      https://raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/5.tar.gz","download":"2018-12-13T22:49:31","started":"2018-12-13T22:49:31.45","finished":"2018-12-13T22:51:22.07","md5":"515AD16F9B3D4107B597E7337D75FD5D","distributionCount":15362,"nameCount":17393,"referenceCount":0,"taxonCount":15905,"verbatimCount":32212,"vernacularCount":0,"distributionsByGazetteerCount":{"text":15362},"issuesCount":{"name match inserted":16321,"partial date":15362,"parent id invalid":15362,"duplicate name":800,"name match variant":330,"name match none":98,"name match ambiguous":7,"taxonomic status doubtful":2,"parsed name differs":1,"indetermined":1},"namesByTypeCount":{"scientific":17295,"placeholder":97,"informal":1},"namesByOriginCount":{"source":16850,"denormed classification":543},"namesByRankCount":{"species":16850,"subgenus":330,"genus":204,"family":4,"kingdom":1,"phylum":1,"class":1,"order":1,"superfamily":1},"taxaByRankCount":{"species":15362,"subgenus":330,"genus":204,"family":4,"kingdom":1,"phylum":1,"class":1,"order":1,"superfamily":1},"usagesByStatusCount":{"accepted":15905,"synonym":1486,"ambiguous synonym":2},"verbatimByTypeCount":{"acef:Distribution":15362,"acef:Synonyms":1488,"acef:AcceptedSpecies":15362}},{"datasetKey":1000,"attempt":1,"state":"finished","downloadUri":"https://raw.githubusercontent.com/Sp2000/colplus-repo/master/ACEF/higher-classification.dwca.zip","download":"2018-12-13T22:49:31","started":"2018-12-13T22:49:31.437","finished":"2018-12-13T22:50:33.801","md5":"50C1603CE9266865F598E95C6CA237E9","distributionCount":0,"nameCount":14063,"referenceCount":0,"taxonCount":14063,"verbatimCount":14063,"vernacularCount":0,"issuesCount":{"name match inserted":13472,"name match none":542,"duplicate name":85,"doubtful name":3,"unusual name characters":3},"namesByTypeCount":{"scientific":13520,"placeholder":539,"informal":3,"virus":1},"namesByOriginCount":{"source":14063},"namesByRankCount":{"family":11181,"order":1354,"superfamily":1106,"class":315,"phylum":99,"kingdom":8},"taxaByRankCount":{"family":11181,"order":1354,"superfamily":1106,"class":315,"phylum":99,"kingdom":8},"usagesByStatusCount":{"accepted":14063},"verbatimByTypeCount":{"dwc:Taxon":14063}}],"last":true,"empty":false}

Urf, finally got to the bottom of this. CompleteableFutures in Java8 cannot be interrupted once running: https://stackoverflow.com/questions/23320407/how-to-cancel-java-8-completable-future
I was using plain Futures initially and all was fine.
Gotta refactor the ImportManager


Wrapping up/down navigation

Info

Operating System: macOS Ventura 13.5
Shell: zsh
Terminal: kitty
nvim --version: v0.10.0-dev-953+g1635c9e75
fzf --version: 0.42 brew

Description
Not sure if this is a feature request for this plugin or fzf itself, but I'm wondering how I could make up/down motions (e.g. <C-n>/<C-p>) "wrap around" when reaching the last/first entry. For example, I would like to be able to press <C-n> when the last entry is currently selected and wrapping back to the first result.

This would be a feature for fzf the binary, fortunately it already exists,
From man fzf:
       --cycle
              Enable cyclic scroll

Within the fzf-lua context:

require'fzf-lua'.setup {
  fzf_opts = { ['--cycle'] = '' }
}

Oh I'm so sorry, I should have read the documentation more thoroughly. I apologize for wasting your time!

Oh I'm so sorry, I should have read the documentation more thoroughly. I apologize for wasting your time!

My pleasure @MariaSolOs, feel free to ask anything :)


Fix Apply filter button show/hide

This became permanent visibly after https://github.com/pallets-eco/flask-admin/pull/2501 because jQuery's show/hide
methods work toggle inline styles for display: none, but that PR
switched over to the d-none class from bootstrap.
This patch adds/removes the d-none class now.
Fixes #2520

LGTM!


open dap-ui in  a new buffer opposed to splits in the current tab

Dear Sir ,
I respect your effort in making this plugin
I feel it would be better if i can open the dap-ui elements in a new tab instead of the current tab
Thank you

You can do this manually, there's no need for nvim-dap-ui to control this.
For example
  local debug_win = nil
  local function open_in_tab()
    if debug_win and vim.api.nvim_win_is_valid(debug_win) then
      vim.api.nvim_set_current_win(debug_win)
      return
    end

    vim.cmd("tabedit %")
    debug_win = vim.fn.win_getid()
    require("dapui").open()
  end

  dap.listeners.after["event_thread"]["arctgx-dap-tab"] = function(_, body)
    if body.reason == "started" then
      open_in_tab()
    end
  end

I agree with this being the default behaviour, it makes sense to have debugging in a new workspace/tab and coming back to your developing workspace/tab after you are finished debugging. That being said, it's no big deal given we can just configure it as @rcarriga said 😃

Also, for any interested parties, I have a more complete solution here that seems to work:
local debug_win = nil
local debug_tab = nil

local function open_in_tab()
    if debug_win and vim.api.nvim_win_is_valid(debug_win) then
        vim.api.nvim_set_current_win(debug_win)
        return
    end

    vim.cmd("tabedit %")
    debug_win = vim.fn.win_getid()
    debug_tab = vim.api.nvim_win_get_tabpage(debug_win)
    dap_ui.open()
end

local function close_tab()
    dap_ui.close()

    if debug_tab and vim.api.nvim_tabpage_is_valid(debug_tab) then
        vim.api.nvim_exec("tabclose " .. debug_tab, false)
    end

    debug_win = nil
    debug_tab = nil
end

-- Attach DAP UI to DAP events
dap.listeners.after.event_initialized["dapui_config"] = function()
    open_in_tab()
end
dap.listeners.before.event_terminated["dapui_config"] = function()
    close_tab()
end
dap.listeners.before.event_exited["dapui_config"] = function()
    close_tab()
end

I was looking for this sort of functionality to prevent clutter and window resizing when activating dapui.
Thanks @serhez, saved me some time setting this up myself but I've hit a snag and was wondering if you had any insight for a potential solution.
I'm just unsure if this is an oddity of my personal config or if there's another way to tackle this.
Do you not experience the following error on subsequent launches of the debugger?
When first running the close_tab function, everything is good but on subsequent runs tabclose returning the following error.
Error executing vim.schedule lua callback: /home/daephx/.config/nvim/lua/plugins/dap/ui.lua:92: Vim(tabclose):E474: Invalid argument: tabclose 8
stack traceback:
        [C]: in function 'nvim_exec'
        /home/daephx/.config/nvim/lua/plugins/dap/ui.lua:92: in function 'close_tab'
        /home/daephx/.config/nvim/lua/plugins/dap/ui.lua:107: in function 'c'
        ...nvim/site/pack/packer/start/nvim-dap/lua/dap/session.lua:857: in function <...nvim/site/pack/packer/start/nvim-dap/lua/dap/session.lua:853>

The tabpage value increments over time with multiple tab pages and tabclose seems to require the tab number.
Should there be another variable to get the tab number to prevent this?:
debug_win = vim.fn.win_getid()
debug_tab = vim.api.nvim_win_get_tabpage(debug_win)
debug_tabnr = vim.api.nvim_tabpage_get_number(debug_tab)
-- ...
vim.api.nvim_exec('tabclose ' .. debug_tabnr, false)


unifi-poller: 2.1.3 -> 2.1.7

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/unifi-poller/unifi-poller/releases.
meta.description for unifi-poller is: "Collect ALL UniFi Controller, Site, Device & Client Data - Export to InfluxDB or Prometheus"
meta.homepage for unifi-poller is: "https://github.com/unifi-poller/unifi-poller"
meta.changelog for unifi-poller is: ""
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2.1.4 with grep in /nix/store/bk2lr6bpf9a69xkzn4ifx8mkqjd1v2cj-unifi-poller-2.1.4
found 2.1.4 in filename of file in /nix/store/bk2lr6bpf9a69xkzn4ifx8mkqjd1v2cj-unifi-poller-2.1.4

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
unifi-poller

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/bk2lr6bpf9a69xkzn4ifx8mkqjd1v2cj-unifi-poller-2.1.4 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A unifi-poller https://github.com/r-ryantm/nixpkgs/archive/477478680d2544083cc443d7083c534a3ef1ba1c.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/bk2lr6bpf9a69xkzn4ifx8mkqjd1v2cj-unifi-poller-2.1.4
ls -la /nix/store/bk2lr6bpf9a69xkzn4ifx8mkqjd1v2cj-unifi-poller-2.1.4/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

unifi-poller

Maintainer pings

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/unifi-poller/unifi-poller/releases.
meta.description for unifi-poller is: "Collect ALL UniFi Controller, Site, Device & Client Data - Export to InfluxDB or Prometheus"
meta.homepage for unifi-poller is: "https://github.com/unifi-poller/unifi-poller"
meta.changelog for unifi-poller is: ""
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2.1.7 with grep in /nix/store/xd468v1nibc91mgpflgzq8pwd6ylqxvl-unifi-poller-2.1.7
found 2.1.7 in filename of file in /nix/store/xd468v1nibc91mgpflgzq8pwd6ylqxvl-unifi-poller-2.1.7

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
unifi-poller

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/xd468v1nibc91mgpflgzq8pwd6ylqxvl-unifi-poller-2.1.7 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A unifi-poller https://github.com/r-ryantm/nixpkgs/archive/9483d8f3050d56d24cad18742a8ba99d2969c062.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/xd468v1nibc91mgpflgzq8pwd6ylqxvl-unifi-poller-2.1.7
ls -la /nix/store/xd468v1nibc91mgpflgzq8pwd6ylqxvl-unifi-poller-2.1.7/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

unifi-poller

Maintainer pings


Add patch and get by uuid method to pipeline item endpoint

Description of change
Background
As part of improving information and process within Data Hub, yellow team is implementing a Pipeline for users to add companies they are dealing with and their current status within the pipeline (Lead, In Progress or Win). They can then maintain its status as they progress.
Idea of MVP is to show a separate Pipeline tab next to My company lists and My referrals, allowing the users maintain a dashboard of companies separated by predefined statuses. Users can add companies and also be able to move items between statuses.
The intent of this PR is to add an endpoint which allows the frontend to get a single pipeline item by uuid and also patch a pipeline item status. For the moment no other field other than the status will be allowed to be updated.
Checklist

[x] If this is a releasable change, has a news fragment been added?

Explanation
A news fragment is required for any releasable change (i.e. code that runs in or affects production) so that a corresponding changelog entry is added when releasing.
Check changelog/README.md for instructions.

[x] Has this branch been rebased on top of the current develop branch?

Explanation
The branch should not be stale or have conflicts at the time reviews are requested.

[x] Is the CircleCI build passing?

General points

Other things to check

Make sure fixtures/test_data.yaml is maintained when updating models
Consider the admin site when making changes to models
Use select-/prefetch-related field lists in views and search apps, and update them when fields are added
Make sure the README is updated e.g. when adding new environment variables

See docs/CONTRIBUTING.md for more guidelines.

Just a few small comments.

@reupen amazing suggestions, fixed them all, thanks a lot again!


请问一下在weex的vue文件中如何引入外部js

在weex的vue文件中如何引入外部js
如果用相对路径好像生成的JSBundle在移动端会找不到对应资料
远程的绝对路径如何加载

var apis = require('./common/api');

想问是怎么解决的引入了么

This PR/issue doesn't received response since Weex migrated to Apache two years ago and this repository is no longer active yet.
Feel free to ask question in new repository and thanks for your contribution.

This issue is outdated for a long time and will be closed now. You can create a new one if you still have questions.


Fix ID Translate

Fix 152 . Translate

Please avoid reformatting the whole file (probably an issue with your prettier setup)