gitlab-shell: 13.15.1 -> 13.17.0

Motivation for this change
In #116798, only the version number was updated, not the hashes and patches. This seems to happen when the update script fails because the patches don't apply, so it's something to look out for with future updates.
Things done

Manually tested adding an ssh key, cloning and pushing

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[x] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 118861 at 7377a1df run on x86_64-linux 1

1 package built successfully:

gitlab-shell

1 suggestion:

warning: missing-patch-comment
Please add a comment on the line above, explaining the purpose of this patch.
Near pkgs/applications/version-management/gitlab/gitlab-shell/default.nix:15:15:
   |
15 |   patches = [ ./remove-hardcoded-locations.patch ];
   |               ^


Feature requests

Thanks for this great, light calendar. I am using it with a Hugo website, and have applied a few hacks to simplify my use case. One or two of these might be useful to incorporate in a future version... :)

I am forcing the view depending on the viewport being used: week for mobile devices, month for desktop. I hide the selector, since the month view really doesn't server me well on a phone. I am choosing viewport using window.innerWidth >= something.
Since I hide the view options using display:none, I push the title with float:left -- that's useful especially in handheld.
vertical space is limited, and the Week and day modes overrun my next div. I am using javascript to hide all weekdays that have no content, and rerun the code on render:

calendar.on('rendered', calendarRestate);
calendarRestate = function() {
	if (!desk) {
		// remove empty days
		[...document.getElementsByClassName("col-week-day-container")].forEach(function(e) {
			if (!e.querySelector(".cal-week-day-event-col")) {
				e.style.display = 'none';
				e.previousSibling.style.display = 'none';
			};
		});
	};
};

I've employed a few css hacks as well, most importantly resizing the calendar widget as a whole to 100%... for some reason, in my inherited website, the responsive option wasn't playing well (likely a problem with my page grid classes...). I put the coloring into my LESS file so I could easily use a color-picker ... not necessary but helpful in VsCode (actually, no good for multiple colors, so I am reverting that). I also added a COLOR attrib so that I could go with lighter backgrounds.

.js-calendar {
    width: 100%;

    .control-bar {
        &-views { display: none; }
        &-title { float: left;}
    }

    .calendar-wrapper {
        width: 100%;

        .cell-event-mark, .cal-week-day-event-col {
            color: black;
            background: rgba(222, 255, 190, 0.6) none repeat scroll 0% 0% !important; // overrides eventBackground param
        }
        .cal-week-day-time-float {
            color: rgb(32, 70, 70);
            font-weight: 500;
        }
    }
}

A hugo site, I will need to easily and manually add events. I decided to go with a JS file and simplified format, that I later pull into your matrix via javascript. I added a "repeat" days during a given month -- I don't need the crazy repeating capability that major calendaring systems have. Those days are added to the initil, and new events generated runtime. I like how that works! I also need i18n resources, so I preload language specs, and pull them into your vocab parameters based on the language element of my URL:

activities.js

// add new events to the top of the list
var events = [
  { d:"2018-09-15 08:30", h:"8.5", r:"29", n:"Day of Mindfulness", c:"", l:"/pages/dayofmindfulness" },
  { d:"2018-09-05 17:30", h:"2.5", r:"12,19,26", n:"Meditation", c:"", l:"/practices/practice" }
];

// js language resources
var buttons = {};
buttons['en'] = { previous: "previous", today: "TODAY", next: "next" };
buttons['ca'] = { previous: "anterior", today: "AVUI", next: "pròxim" };
buttons['es'] = { previous: "anterior", today: "HOY", next: "próximo" };

var days = {};
days['en'] = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
days['ca'] = ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Disabtes"];
days['es'] = ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"];

var months = {};
months['en'] = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
months['ca'] = ["Gener", "Fevrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"];
months['es'] = ["Enero", "Fevrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"];

all of that is pulled into your matrix format prior to calendar rendering:
	// calendar activation
	var matrix = {};
	events.forEach(function(e) {
		var dt = new Date(e.d),
			yr = dt.getFullYear(),
			mo = dt.getMonth(),
			dy = dt.getDate().toString(),
			hr = dt.getHours(),
			tm = dt.getTime();

		// process repeating days
		(dy + (e.r ? "," + e.r : "")).split(',').forEach(function(d) {
			// instantiate matrix elements if required
			if (!matrix[yr]) matrix[yr] = {};
			if (!matrix[yr][mo]) matrix[yr][mo] = {};
			if (!matrix[yr][mo][d]) matrix[yr][mo][d] = [];

			// add event to matrix
			var ev = { };
			if (e.n) ev.displayname = e.n;
			if (hr) ev.at = tm;
			if (e.h) ev.duration = parseInt(e.h) * 60 * 60 * 1000; // hours * minutes * seconds * milliseconds
			if (e.c) ev.color = e.c;

			matrix[yr][mo][d].push(ev);
		});
	});

The last thing on my list is the ability to add more detail for flyover and linking, so those attributes are in my source arrays. I'd like to push them into the individual elements using data- strings, so that I can generate flyover dialogs using js. I bet I have to drop into your library for that one, though :)
Thanks for the work!

Since this is a flat site (no node), the module export fails. I have preceded that call with a quick test of "modules" to avoid errors in the build -- seems to be unobtrusive for other implementations...
lines 1207-1209:
(() => {
    if (typeof module !== 'undefined') module.exports = {JSCalendar, JSCalendarEvent}
})(JSCalendar, JSCalendarEvent)


refactor(manager): modify the default value of params in some methods

To make it easier for the user to understand:
None -> CURRENT_COMMIT, CURRENT_BRANCH

Task linked: CU-28v2h00 SDK 版本管理相关函数默认值可读性优化


Bridging header with swift

I want to use swift for this ios sdk. what kind of header that I need to import inside my project based on this tutorial?
http://estimote.com/api/tutorials/distance.html

Hey there,
You need the following imports in your bridging header:
#import "ESTBeaconManager.h"
#import "ESTConfig.h"

This should get you covered.
Since GitHub issues are more for bug reports, I encourage you to post questions like this one on our brand new Community Forums, e.g. in the "Support" section.


Stream media packages to avoid memory issues

Your pull request should…
This PR addressed https://github.com/opencast/opencast/issues/5364.
We are experiencing a java heap space Error when populating the index. As a solution we have implemented streaming to that section of code.
This appears to happening as a result of holding too many media packages in memory during a reindex. Code causing the OutOfMemory error is located at, modules/search-service-impl/src/main/java/org/opencastproject/search/impl/persistence/SearchServiceDatabaseImpl.java:227:
List<Tuple<MediaPackage, String>> mediaPackageList = new LinkedList<>();
try {
for (SearchEntity entity : searchEntities) {
MediaPackage mediaPackage = MediaPackageParser.getFromXml(entity.getMediaPackageXML());
mediaPackageList.add(Tuple.tuple(mediaPackage, entity.getOrganization().getId()));
}
} catch (Exception e) {
logger.error("Could not parse series entity: {}", e.getMessage());
throw new SearchServiceDatabaseException(e);

Funny that you should find this @NgoniChoga, I was just going to fix this inside of #3921 :)
I'm assuming you've done this in prod?  It looks right to me, but I don't have a sufficiently large set of mediapackages to validate that this works as expected/

Funny that you should find this @NgoniChoga, I was just going to fix this inside of #3921 :)
I'm assuming you've done this in prod?  It looks right to me, but I don't have a sufficiently large set of mediapackages to validate that this works as expected/

Funny that you should find this @NgoniChoga, I was just going to fix this inside of #3921 :)
I'm assuming you've done this in prod? It looks right to me, but I don't have a sufficiently large set of mediapackages to validate that this works as expected/

@gregorydlogan we actually caught this in our staging environment. We have run it successfully now using this update.


liberty-plugin-variable-config.xml configDropin not updated when maven properties are removed.

This is a very particular case, but...on liberty-maven-plugin 3.2.1, say I start with:
   <properties>
           <liberty.defaultVar.postgres.port>51432</liberty.defaultVar.postgres.port>
    </properties>

In a goal like "create", this will generate  target/liberty/wlp/usr/servers/defaultServer/configDropins/overrides/liberty-plugin-variable-config.xml.
If I then remove or comment out that property, instead of deleting or generating an empty liberty-plugin-variable-config.xml, the old/stale one wrongly remains.
This could happen in dev mode or doing other goals (without a clean).
The problem seems to be this code:
    if (!varMavenProps.isEmpty() || !defaultVarMavenProps.isEmpty()) {
        File pluginVariableConfig = new File(serverDirectory, PLUGIN_VARIABLE_CONFIG_XML);
        writeConfigDropinsServerVariables(pluginVariableConfig, varMavenProps, defaultVarMavenProps);
    }

Maybe it should just write unconditionally?

I would think there should be an else to that statement that checks for the existence of the generated file and deletes it. This probably also applies to bootstrap props, server env, etc. Any of those files that we are generating are not currently getting cleaned up without a mvn clean.

Need to be careful though to only delete files that we generate. The server has a default server.env that should not get deleted. In some cases we may just need to print a warning that a mvn clean is advised due to the changes detected.

Or maybe just write an empty file instead of deleting?

I don't see how writing an empty file is better? We still don't want to create an empty server.env when there should be a default server.env file there.

I don't see how writing an empty file is better? We still don't want to create an empty server.env when there should be a default server.env file there.

You're right, I was thinking of server.env as a marker file, not actually having content.
Looking at the code again, it seems like we already handle these other configuration types a decent amount differently, since we have file-based and merge parameters:
bootstrapProperties, bootstrapPropertiesFile, jvmOptions, jvmOptionsFile, mergeServerEnv
I'm not sure if the problem does/doesn't exist there.
So maybe we could just fix this for liberty-plugin-variable-config.xml ?

The original issue has been fixed for liberty-plugin-variable-config.xml, along with bootstrap.properties and jvm.options. We have not addressed the server.env issue. We probably just need to recommend a clean when they change those variables.
PR: https://github.com/OpenLiberty/ci.maven/pull/893


Fix compilation files not included in conf object when obj.source undefined

Bug
When configuration obj.source doesn't exists (undefined), merge would be failed. Because it calls merge(undefined, { includes: [ ... ] }) with no reference to obj.source.
Reproduction
Remove obj.source from JsDoc configuration and compile.

@Abdillah So sorry for the late reply, I have missed this PR.
I tried to reproduce with the latest changes by removing the source filed in the config file but all I get is
jsdoc not generating files, no errors are thrown. What version of webpack are you using? Could you try again with the latest changes?


fixing issue #27 in wi4mpi wrapper

removed extraneous lines causing the wi4mpi helper to fail in interface mode
addresses issue #27

merge in 3.6.3


Executing L2CrossDomainMessenger.sendMessage multiple times without TON.transferFrom results in loss of funds

Describe the bug
If you execute the L2CrossDomainMessenger.sendMessage function multiple times as shown below, only the last requested amount3 can be withdrawn, and amount1 and amount2 are locked in L1CrossDomainMessenger.
L2CrossDomainMessenger.sendMessage(L1Wallet.address, '0x', 200000, { value: amount1 })
L2CrossDomainMessenger.sendMessage(L1Wallet.address, '0x', 200000, { value: amount2 })
L2CrossDomainMessenger.sendMessage(L1Wallet.address, '0x', 200000, { value: amount3 })
Configuration
Severity: Critical
Impact
Loss of funds
Recommendation
When approving, you should not reduce the existing allowance value.
https://github.com/tokamak-network/tokamak-thanos/blob/5ad9baac98217a0c1533969b00076d9a4443edba/packages/tokamak/contracts-bedrock/src/L1/L1CrossDomainMessenger.sol#L305
https://github.com/tokamak-network/tokamak-thanos/blob/5ad9baac98217a0c1533969b00076d9a4443edba/packages/tokamak/contracts-bedrock/src/L1/L1CrossDomainMessenger.sol#L309

Could you explain more the scenario that users lose token? @Zena-park
We need this line because if the message is not relayed successfully, an users can try again. If we dont reset the approval amount, users can take this token with a failed relay and still can relay the message again   https://github.com/tokamak-network/tokamak-thanos/blob/5ad9baac98217a0c1533969b00076d9a4443edba/packages/tokamak/contracts-bedrock/src/L1/L1CrossDomainMessenger.sol#L309
And each withdrawal transaction has it own versionHash, and it makes sure that every withdrawal can be called: https://github.com/tokamak-network/tokamak-thanos/blob/5ad9baac98217a0c1533969b00076d9a4443edba/packages/tokamak/contracts-bedrock/src/L1/L1CrossDomainMessenger.sol#L253

If L1Wallet executes (1), (2), (3) below in order,
(1)
L2CrossDomainMessenger.sendMessage(L1Wallet.address, '0x', 200000, { value: 30 })
After finalizing,
ton.allowance(L1CrossDomainMessenger, L1Wallet) is 30
(2)
L2CrossDomainMessenger.sendMessage(L1Wallet.address, '0x', 200000, { value: 20 }) After finalizing,
ton.allowance(L1CrossDomainMessenfer, L1Wallet)  is 20
I expect it should be 50 because there is something sent in (1) above.
(3)
L2CrossDomainMessenger.sendMessage(L1Wallet.address, '0x', 200000, { value: 10 })
After finalizing,
ton.allowance(L1CrossDomainMessenfer, L1Wallet) is 10
I expect it should be 60 because there is something sent in (1)and (2) above.
Finally, L1Wallet sent 30, 20, 10 from L2 and finished finalizing, and then L1Wallet wants to get the TON from L1CrossDomainMessenger at once.
ton.transferFrom(L1CrossDomainMessenfer, L1Wallet, 60) Can the transaction succeed?

Thank you @Zena-park
But it is an expected behavior. We already have tested related to this case: https://github.com/tokamak-network/tokamak-thanos/blob/codeReview/packages/tokamak/contracts-bedrock/test/L1CrossDomainMessenger.t.sol#L506
Not only for your case, the target of the relayMessage is desgined to be a contract address, not EOA. Beside, the target should trigger transferFrom to collect token. Otherwise, the token will be kept in the CDM.

It is critical according to our codeReview criteria
Because there are cases where funds can be locked.
However, the call from L2CrossDomainMessenger is not what we want, so if the user intended to lock the funds, it is not critical.
I think it can be modified like this: https://github.com/tokamak-network/tokamak-thanos/blob/codeReview/packages/tokamak/contracts-bedrock/src/L1/OptimismPortal.sol#L357-L360
.
Does this modification cause another problem?

This thing is expected before. There is also another e2e test for this case: https://github.com/tokamak-network/tokamak-thanos/blob/codeReview/op-e2e/e2e-dep-with/cross_domain_messenger_test.go#L22.
So I think it can not be considered an issue.
The proposal solution has a problem so that I did not implement it like what is implemented in the OptimismPortal.
The reason is users can relayMessage multiple time if the message was not relayed successfully. In this case, if the approval amount is not reset, users can leverage a failed relayMessage to take every TON in L1CDM.

After quickly reviewing the relayMessage function, here are my thoughts:
https://github.com/tokamak-network/tokamak-thanos/blob/codeReview/packages/tokamak/contracts-bedrock/src/L1/L1CrossDomainMessenger.sol#L311
IERC20(_nativeTokenAddress).approve(_target, 0);

should be replaced by
uint256 currentAllowance = IERC20(_nativeTokenAddress).allowance(address(this), _target);
IERC20(_nativeTokenAddress).approve(_target, currentAllowance - _value);

So that the user can still withdraw past transaction eventhough the current call fails.
https://github.com/tokamak-network/tokamak-thanos/blob/codeReview/packages/tokamak/contracts-bedrock/src/L1/L1CrossDomainMessenger.sol#L307
IERC20(_nativeTokenAddress).approve(_target, _value);

should be replaced by
uint256 currentAllowance = IERC20(_nativeTokenAddress).allowance(address(this), _target);
IERC20(_nativeTokenAddress).approve(_target, currentAllowance + _value);

@nguyenzung I did not really understood your last message but I'll try to check your test suite to verify you did not forgot any parameter and if I see any, I'll write a PoC.

I also think changing it as Mehdi suggested would be a way to avoid locking the funds.
However, we need to think carefully about making the change because we don't know what the consequences will be.

Thank you for your opinion @mehdi-defiesta @zzooppii
We should notice that the initial approval amount is 0 for every target address.
And there are 2 places where the function approve is used in L1CDM

In the function _sendNativeTokenMessage(). The approval amount will be clear later when L1CDM call OptimismPortal.depositTransaction
In the function relayMessage: For every time this function is called, the approval amount for the target address does not change, because just increase approval amount by _value and then decrease approval amount by _value. It is also possible that function will be reverted with overflow error when the decrease operator runs because currentAllowance could be 0. So that, after this function is executed, the approval amount is still 0 as the initial approval value.

uint256 currentAllowance = IERC20(_nativeTokenAddress).allowance(address(this), _target);
IERC20(_nativeTokenAddress).approve(_target, currentAllowance + _value);
...
uint256 currentAllowance = IERC20(_nativeTokenAddress).allowance(address(this), _target);
IERC20(_nativeTokenAddress).approve(_target, currentAllowance - _value);

I think it is a good finding https://github.com/tokamak-network/tokamak-thanos/issues/229
It can solve some cases. However, I think if users want to bridge token, they can ignore using L2CrossDomainMessenger.sendMesasge().

thanks @nguyenzung for the clarification.
Regarding the first point: the approval in _sendNativeTokenMessage does not concern the _target but the OptimismPortal => it does not impact the user token transfer power.
Regarding the second point: I see your point but here we are talking the case where user sendMessage from L2CDM multiple time without transferFrom directly. By doing so the user might not be able to self transfer the total of native token he bridged from L2 to L1 through these multiple sendMessage calls.
I'll try to right some tests for that and let's see what other people think about it

This scenario might occur when the _target is an EOA and not a Smart Contract:
L2CrossDomainMessenger.sendMessage(L1Wallet.address, '0x', 200000, { value: 30 })
After finalizing,
ton.allowance(L1CrossDomainMessenger, L1Wallet) is 30
(2)
L2CrossDomainMessenger.sendMessage(L1Wallet.address, '0x', 200000, { value: 20 }) After finalizing,
ton.allowance(L1CrossDomainMessenfer, L1Wallet)  is 20
I expect it should be 50 because there is something sent in (1) above.
(3)
L2CrossDomainMessenger.sendMessage(L1Wallet.address, '0x', 200000, { value: 10 })
After finalizing,
ton.allowance(L1CrossDomainMessenfer, L1Wallet) is 10

In this line:
bool success = SafeCall.call(_target, gasleft() - RELAY_RESERVED_GAS, 0, _message);

When the _target is an EOA, the SafeCall.call function will always return success = true because EOAs do not process calldata (_message), the transaction doesn't revert; it simply doesn't execute anything because EOAs don't have associated code to process or interpret the calldata. This means that the function call does not actually perform any action, but the approval for the tokens is still reset. As a result, each call to relayMessage function with an EOA as _target will reset the allowance, potentially leading to locked funds since no transfer occurs.
In contrast, when _target is a smart contract, the SafeCall.call function will execute the calldata (_message), which should contain a transferFrom call or similar logic to transfer the tokens from the L1CrossDomainMessenger by the _target  to the intended recipient. After this transfer, the approval is reset, ensuring that the tokens are not locked and are correctly transferred.
Another solution to prevent this issue might be to introduce a restriction that the _target must be a smart contract, not an EOA. This can be enforced by adding a require statement to check if _target is a contract.
Question. Do we have a scenario where _target should be an EOA ? if not, we can restrict it.
( Please correct me if I am wrong ).
What do you think ?

Actually even if _target is an EOA, the call is made by the L1CrossDomainMessenger contract and it will always process the calldata :
assembly {
    _success :=
        call(
            _gas, // gas
            _target, // recipient
            _value, // ether value
            add(_calldata, 32), // inloc
            mload(_calldata), // inlen
            0, // outloc
            0 // outlen
        )
}

We should try to test the following scenario:

user A calls initiateWithdrawal from L2ToL1MessagePasser with a value > 0 and a message that does not transfer any token on L1 (we assume user A wants to do it manually).
user B calls initiateWithdrawal from L2ToL1MessagePasser with a value > 0 but with a message that calls a reverting function.
=> allowance is set to 0 user A is not able to transfer his native token anymore.

The probability of this scenario could be high if the ecosystem incentivizes users to bridge native token to L1 without using the L2StandardBridge. Moreover, a malicious user could MEV the pool of transaction to DOS the entire ecosystem (probability not high as this user would spend consequent amount to make it happen).
For me this is definitely an issue with a Medium/High severity. My recommendation above would mitigate the issue.

Thank you for pointing that out. You are right; my previous assumption was incorrect.

Thank you for your interesting opinions @NegruGeorge @mehdi-defiesta
If we support the case that a target can be an EOA, it will be weird because why we need to send messages to EOAs?
The purpose of the relayMessage function is executing a target address that includes transferFrom logic inside with prior approval amount. So the consequence are:

The target is a contract address with the logic of handling messages contains a transferFrom() call
Relay a message with the correct approval amount, so we can not increase the approval amount. If approval amount increases cumulatively, it does not satisfy the purpose of the message and also make some other messages can not be relayed successfully.
Reset the approval amount is to 0, specially when the message was relayed failed, if not hackers can take all L2 native token from L1CDM (If a message is relayed failed, an user can relay the message again)

So we can't support bridging token by using EOAs as targets with L2CrossDomainMessenger.sendMessage()

call log 9.3
https://github.com/tokamak-network/tokamak-thanos/blob/5ad9baac98217a0c1533969b00076d9a4443edba/packages/tokamak/contracts-bedrock/src/L1/L1CrossDomainMessenger.sol#L260-L262
need to recheck this area (will elaborate)

call log 9.3 v2
https://github.com/tokamak-network/tokamak-thanos/blob/5ad9baac98217a0c1533969b00076d9a4443edba/packages/tokamak/contracts-bedrock/src/L1/L1CrossDomainMessenger.sol#L303-L310
need to decide which direction to go

should support atomic transaction of asset movement and the call message

call log 2024.9.3 L2 native token issue 243, @suahnkim @Zena-park @zzooppii @boohyung @rlgns98kr

asked some clarification on replayability for replayMessage -> assumed that replayability was not possible, but Steven clarified that when message is being replayed the call has to happen Not from messenger address. So, there is no issue

gave comment about how Optimism's version of Optimism Portal does not transfer token to L1crossDomainMessenger, but l2 native token code does -> Steven clarified that L2 native token code wanted to emulate the ETH movement by making l2 native token movement.

Suah: Please note that transfer code **doesn't actually have to live in L1crossDomainMessenger **and can live on Optimism portal code (because ETH movement starts from Optimism Portal, in Optimism version)

Finally, regarding the approve function in L1CrossDomainMessenger,

it is not a good UX to guide developers to make sure to include transfer logic within the call -> this is not an expected behavior from Optimism's version of Optimism Portal code. ETH is transferred with the success of the Call.** If we do not patch this, we will need to include lengthy warning on what not to do in the code and developer guide (not very pleasant)**

to emulate Optimism's version's behavior, this part of the code should be atomic: the call has to be successful and the transfer (not approve) should be successful at the same time. For all other cases, the transfer should fail. This can be achieved either using assembly (there are well known examples that you can reuse) or other method

Adding approval logic seem to create many check points that were not previously considered before, it maybe better to try to emulate Optimism's flow -> atomically transfer the L2 native token when message called is successful

the current UX can in fact lock TON in L1CrossDomainMessenger due to approve error as explained in the issue -> this is actually not acceptable outcome as L1CrossDomainMessenger is a low level API.

the current code has issue when the target is contract -> this reduces functionality of the code, as they have to ensure that the transfer happens on top of their code

It is important to create our own code, however there are some UX we should try to keep from Optimism's version to** reduce confusion for the developers**.

This seems to be an important point that distinguishes between Optimism's custom gas token implementation from ours -> probably should include this part in details in spec document.

Resolution

@rlgns98kr will think about how to resolve the issue and discuss with internal members

I think we can check this doc. https://docs.optimism.io/builders/app-developers/bridging/messaging
There is a part to explain about the purpose of CrossDomainMessenger and explain about the parameters

The scenario uses EOA for target address. So we can consider it is the sender's mistake.

call log 2024.9.4
Discussed issues with resetting approve amount

Brave: explained that it is not part of normal usage and we do not need to worry about this usage
Suah: explained that by opening up possibility of partially or none of approve amount during the call, it opens up a way for developers to use it without understanding the core issue -> leading to attacks like resetting approve amount

Discussed possible paths

use the current version (with replacing safeIncreaseAllowance with safeTransfer on Optimism portal)

but this seems like a risky path and has issue with developer experience as it is very different from Optimism's flow (explained more below)

update the L1crossDomainMessenger to mimic Optimism's ETH flow from OptimismPortal

this seems like an impossible task that could have more unintended behavior

update the L1crossDomainMessenger and OptimismPortal to follow Optimism's custom gas token logic for L2 native token, where L1crossDomainMessenger is not intended to be used

this will reduce the uniqueness of our code, other than the fact that we have depositTransaction specific for L2 native token (as opposed to reserved for ETH only in Optimism)

Discussed issue with usage of approval in L1crossDomainMessenger

Suah: many attacks in ethereum smart contract originates with issues with approval
in our code, approval of assets owned by L1crossDomainMessenger is given to an arbitrary target contract, and this seems like a dangerous logic we are opening up.

As long as the assets are bounded (i.e., no rentry issue -> contract team already checked that there is no reentry issue), we should be theoretically safe, but this is undoubtedly dangerous if the assets are not bounded

Current implementation's replayMessage flow assumes that the target contract will have to call transfer of TON in addition to any logic

this deviates from Optimism's replayMessage, where ETH (or custom gas Token) is sent automatically and do not have to include this logic
this will make existing Ethereum based contract code porting to Thanos or L2 on demand code based on Thanos, much more complex as they have to ensure that the TON transfer logic is always included when they send message from L2 to L1
Also we need to include more detailed explanation about this part in documentation and code interface to reduce unintended actions

Resolution

We should check in with the foundation on which path to take

@nguyenzung
to close this issue:
Please add appropriate warning in the relevant code

About how L2 Native Token transfer logic needs to be included as _message
About how _target should not be EOA as it could lead to loss in fund
please include this part in the spec documentation

Reasons for including the warning in the code:

Even though Optimism does not have this warning in their code, I think it is helpful for the developers who is building functions based on L1CrossDomainMessenger.

With regarding the thread about which path to take, I will start a new thread, so that it is not confusing.

I think that solving this problem is the best way, but if solving this problem leads to other problems.
it is also good to follow the conclusions made in the TOP project.
I think it is very important to inform about this risk through comments.

Hi @suahnkim  @Zena-park @nguyenzung
i added some comments and changed a condition checking: https://github.com/tokamak-network/tokamak-thanos/commit/977cc5286f7568d07addfbc1eae879d9fd2a7abf

Okay.
I will close the issue.


feat: support to switch leader for meta node

What problem does this PR solve?
support to switch leader for meta node and it will switch leader by command:
curl -i -X POST http://<IP_ADDRESS>:8091/leadershiptransfer

Issue Number: resolve #346
What is changed and how it works?
The leader node executes the appropriate commands.
curl -i -X POST http://leader_addr:port/leadershiptransfer

How Has This Been Tested?
>curl -i -X POST http://<IP_ADDRESS>:8091/leadershiptransfer
HTTP/1.1 307 Temporary Redirect
Location: http://<IP_ADDRESS>:8088/leadershiptransfer
Date: Tue, 18 Jul 2023 06:14:29 GMT
Content-Length: 0

>curl -s -GET http://<IP_ADDRESS>:8091/debug?witch=raft-stat -H 'all:y' | python -mjson.tool
{
    "<IP_ADDRESS>:8091": {
        "applied_index": "57",
        "commit_index": "57",
        "fsm_pending": "0",
        "last_contact": "13.1074ms",
        "last_log_index": "57",
        "last_log_term": "28",
        "last_snapshot_index": "0",
        "last_snapshot_term": "0",
        "latest_configuration": "[{Suffrage:Voter ID:<IP_ADDRESS>:8088 Address:<IP_ADDRESS>:8088} {Suffrage:Voter ID:<IP_ADDRESS>:8088 Address:<IP_ADDRESS>:8088} {Suffrage:Voter ID:<IP_ADDRESS>:8088 Address:<IP_ADDRESS>:8088}]",
        "latest_configuration_index": "0",
        "num_peers": "2",
        "protocol_version": "3",
        "protocol_version_max": "3",
        "protocol_version_min": "0",
        "snapshot_version_max": "1",
        "snapshot_version_min": "0",
        "state": "Follower",
        "term": "28"
    }
}
>curl -s -GET http://<IP_ADDRESS>:8091/debug?witch=raft-stat -H 'all:y' | python -mjson.tool
{
    "<IP_ADDRESS>:8091": {
        "applied_index": "57",
        "commit_index": "57",
        "fsm_pending": "0",
        "last_contact": "0",
        "last_log_index": "57",
        "last_log_term": "28",
        "last_snapshot_index": "0",
        "last_snapshot_term": "0",
        "latest_configuration": "[{Suffrage:Voter ID:<IP_ADDRESS>:8088 Address:<IP_ADDRESS>:8088} {Suffrage:Voter ID:<IP_ADDRESS>:8088 Address:<IP_ADDRESS>:8088} {Suffrage:Voter ID:<IP_ADDRESS>:8088 Address:<IP_ADDRESS>:8088}]",
        "latest_configuration_index": "0",
        "num_peers": "2",
        "protocol_version": "3",
        "protocol_version_max": "3",
        "protocol_version_min": "0",
        "snapshot_version_max": "1",
        "snapshot_version_min": "0",
        "state": "Leader",
        "term": "28"
    }
}

>curl -s -GET http://<IP_ADDRESS>:8091/debug?witch=raft-stat -H 'all:y' | python -mjson.tool
{
    "<IP_ADDRESS>:8091": {
        "applied_index": "57",
        "commit_index": "57",
        "fsm_pending": "0",
        "last_contact": "35.8165ms",
        "last_log_index": "57",
        "last_log_term": "28",
        "last_snapshot_index": "0",
        "last_snapshot_term": "0",
        "latest_configuration": "[{Suffrage:Voter ID:<IP_ADDRESS>:8088 Address:<IP_ADDRESS>:8088} {Suffrage:Voter ID:<IP_ADDRESS>:8088 Address:<IP_ADDRESS>:8088} {Suffrage:Voter ID:<IP_ADDRESS>:8088 Address:<IP_ADDRESS>:8088}]",
        "latest_configuration_index": "0",
        "num_peers": "2",
        "protocol_version": "3",
        "protocol_version_max": "3",
        "protocol_version_min": "0",
        "snapshot_version_max": "1",
        "snapshot_version_min": "0",
        "state": "Follower",
        "term": "28"
    }
}

When a leader executes this command, it returns that it is a leader and also switches leader
>curl -i -X POST http://<IP_ADDRESS>:8091/leadershiptransfer
HTTP/1.1 200 OK
Date: Tue, 18 Jul 2023 06:15:10 GMT
Content-Length: 23
Content-Type: text/plain; charset=utf-8

{"OK":true,"Index":48}
>curl -s -GET http://<IP_ADDRESS>:8091/debug?witch=raft-stat -H 'all:y' | python -mjson.tool
{
    "<IP_ADDRESS>:8091": {
        "applied_index": "58",
        "commit_index": "58",
        "fsm_pending": "0",
        "last_contact": "0",
        "last_log_index": "58",
        "last_log_term": "29",
        "last_snapshot_index": "0",
        "last_snapshot_term": "0",
        "latest_configuration": "[{Suffrage:Voter ID:<IP_ADDRESS>:8088 Address:<IP_ADDRESS>:8088} {Suffrage:Voter ID:<IP_ADDRESS>:8088 Address:<IP_ADDRESS>:8088} {Suffrage:Voter ID:<IP_ADDRESS>:8088 Address:<IP_ADDRESS>:8088}]",
        "latest_configuration_index": "0",
        "num_peers": "2",
        "protocol_version": "3",
        "protocol_version_max": "3",
        "protocol_version_min": "0",
        "snapshot_version_max": "1",
        "snapshot_version_min": "0",
        "state": "Leader",
        "term": "29"
    }
}

>curl -s -GET http://<IP_ADDRESS>:8091/debug?witch=raft-stat -H 'all:y' | python -mjson.tool
{
    "<IP_ADDRESS>:8091": {
        "applied_index": "58",
        "commit_index": "58",
        "fsm_pending": "0",
        "last_contact": "13.7639ms",
        "last_log_index": "58",
        "last_log_term": "29",
        "last_snapshot_index": "0",
        "last_snapshot_term": "0",
        "latest_configuration": "[{Suffrage:Voter ID:<IP_ADDRESS>:8088 Address:<IP_ADDRESS>:8088} {Suffrage:Voter ID:<IP_ADDRESS>:8088 Address:<IP_ADDRESS>:8088} {Suffrage:Voter ID:<IP_ADDRESS>:8088 Address:<IP_ADDRESS>:8088}]",
        "latest_configuration_index": "0",
        "num_peers": "2",
        "protocol_version": "3",
        "protocol_version_max": "3",
        "protocol_version_min": "0",
        "snapshot_version_max": "1",
        "snapshot_version_min": "0",
        "state": "Follower",
        "term": "29"
    }
}
>curl -s -GET http://<IP_ADDRESS>:8091/debug?witch=raft-stat -H 'all:y' | python -mjson.tool
{
    "<IP_ADDRESS>:8091": {
        "applied_index": "58",
        "commit_index": "58",
        "fsm_pending": "0",
        "last_contact": "2.5149ms",
        "last_log_index": "58",
        "last_log_term": "29",
        "last_snapshot_index": "0",
        "last_snapshot_term": "0",
        "latest_configuration": "[{Suffrage:Voter ID:<IP_ADDRESS>:8088 Address:<IP_ADDRESS>:8088} {Suffrage:Voter ID:<IP_ADDRESS>:8088 Address:<IP_ADDRESS>:8088} {Suffrage:Voter ID:<IP_ADDRESS>:8088 Address:<IP_ADDRESS>:8088}]",
        "latest_configuration_index": "0",
        "num_peers": "2",
        "protocol_version": "3",
        "protocol_version_max": "3",
        "protocol_version_min": "0",
        "snapshot_version_max": "1",
        "snapshot_version_min": "0",
        "state": "Follower",
        "term": "29"
    }
}

Checklist:

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[X] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[X] My changes generate no new warnings
[ ] 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 been merged and published in downstream modules

Add this to document.
https://docs.opengemini.org/guide/manage/syscontrl_cmd.html


MSVC in add_github_actions branch

MSVC 2019 seems to be installed.
MSVC 2017 could maybe be installed using "choco install visualstudio2017community":
https://chocolatey.org/packages/VisualStudio2017Community

MSVC2017 and MSVC2019 running in CI.


AWS installation documentation contains reference to removed option.

Problem description
AWS Installation & Configuration
includes the skipGetEc2Platforms option, which was removed as part of Upgrade terraform-provider-aws to v5.27.0 (https://github.com/pulumi/pulumi-aws/pull/3056)
If you include this option, pulumi errors with the following message:
##[error]error: pulumi:providers:aws resource 'my-provider has a problem: could not validate provider configuration: Invalid or unknown key. Examine values at 'my-provider.skipGetEc2Platforms'.

Affected product version(s)

pulumi-aws >= v5.27.0

Thanks for the tip, @stooj! I updated the doc in this PR https://github.com/pulumi/registry/pull/5733 .

Thanks @thoward 😁


chore: bump celestia-app to v0.11.0

Overview
bumps celestia-app to v0.11.0
Checklist

[x] New and updated code has appropriate documentation
[x] New and updated code has new and/or updated testing
[x] Required CI checks are passing
[x] Visual proof for any user facing features like CLI or documentation updates
[x] Linked issues closed with keywords

Codecov Report

Merging #1478 (2240056) into main (52048ce) will increase coverage by 0.04%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #1478      +/-   ##
==========================================
+ Coverage   55.37%   55.42%   +0.04%
==========================================
  Files         199      199
  Lines       12053    12053
==========================================
+ Hits         6674     6680       +6
+ Misses       4714     4710       -4
+ Partials      665      663       -2

Impacted Files
Coverage Δ

share/ipld/get.go
93.41% <0.00%> (+1.23%)
:arrow_up:

share/eds/byzantine/bad_encoding.go
69.00% <0.00%> (+3.00%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Editor: background color issue between new and old editor

Describe the bug
The new editor has problems with existing background colors. These are not recognized correctly by the new editor. When opening a text with a background color, this leads to it being recognized by the editor WITHOUT colour values. If the edit is then saved, the old color value is overwritten and all markings are lost.
How to Reproduce
Reproduction is only possible with an old OS version that contains the old editor. There, a text must be marked with a background color. The instance must then be updated with the current OpenSlides version. Then you have to open the editor and check, what happens with the background color.
Expected behavior
Existing background colors should be correctly used by the new editor. Background colors should not be lost.

After internal discussion we've decided to close this issue.


API Gateway Error while creating an API with a malformed context with the APICTL tool

Description
When create an API with a malformed context eg: /testapi{version} using the APICTL tool. In that case, it was deployed and published in the gateway without any error. We expecting that there should be a proper validation to check at all parameter levels while creating an API from the APICTL tool and it should not save in case of an error.
Steps to Reproduce
Start the APIM server and create an API from the APICTL tool which has the following context.
/testapi{version}
While creating the API you can see the following error trace.
INFO - API {api:TestAPI:v20} Initializing API: TestAPI:v20
Exception in thread "Thread-187" java.lang.StringIndexOutOfBoundsException: begin 0, end -1, length 10
	at java.base/java.lang.String.checkBoundsBeginEnd(String.java:3319)
	at java.base/java.lang.String.substring(String.java:1874)
	at org.wso2.carbon.apimgt.gateway.internal.DataHolder.addAPIMetaData_aroundBody32(DataHolder.java:138)
	at org.wso2.carbon.apimgt.gateway.internal.DataHolder.addAPIMetaData(DataHolder.java:130)
	at org.wso2.carbon.apimgt.gateway.internal.DataHolder.addAPIMetaData_aroundBody40(DataHolder.java:200)
	at org.wso2.carbon.apimgt.gateway.internal.DataHolder.addAPIMetaData(DataHolder.java:195)
	at org.wso2.carbon.apimgt.gateway.InMemoryAPIDeployer.deployAPI_aroundBody0(InMemoryAPIDeployer.java:101)
	at org.wso2.carbon.apimgt.gateway.InMemoryAPIDeployer.deployAPI(InMemoryAPIDeployer.java:86)
	at org.wso2.carbon.apimgt.gateway.listeners.GatewayJMSMessageListener.lambda$0_aroundBody12(GatewayJMSMessageListener.java:170)
	at org.wso2.carbon.apimgt.gateway.listeners.GatewayJMSMessageListener.lambda$0(GatewayJMSMessageListener.java:147)
	at java.base/java.lang.Thread.run(Thread.java:829)

Therefore we believe that when there is a malformed context in the API, the API should not be created from the APICTL tool and it should give a proper error message while creating the API.
Affected Component
APICTL
Version
3.2.0 4.1.0
Environment Details (with versions)
No response
Relevant Log Output
No response
Related Issues
No response
Suggested Labels
No response

As stated in the linked internal issue this issue does not apply to the master branch.


try join( ) to get rid of defunct processes

Clean up subprocesses.  It's especially important for a process that does flux calculations (using subprocesses) for several healpixels in sequence.

I moved the join to the end, which I think is reasonable. The reader is waiting only for the output to be ready, not necessarily for the subprocess to exit. The subprocesses also have to give back resources and this can be happening in parallel with the data aggregation.


Add test with multi level group

Backports: #366
This test should be failing due to Marahton API validation allowing only top-level group to be marked as enforcedRole. Reverting 1fcc664 fixed the issue
See:

#322
mesosphere/marathon#6989

Fixes: https://jira.mesosphere.com/browse/DCOS-59486

@mesosphere-ci run linux integration tests

@mesosphere-ci run linux integration tests


Practice 3

Please fix the following

You are missing shebang line from the beginning of your follower node! Not sure how you ran it.
https://github.com/AnishShr/autoware_mini_practice/blob/3c203454f6dc783e44df131b431797638f767bc9/practice_3/nodes/control/pure_pursuit_follower.py#L1
You don't need to subscribe to /initialpose and use it in the follower. Having an initial pose is specific to the simulation. We need to place the ego vehicle somewhere so that the simulator can start from somewhere. In real world settings, the localizer provides the ego vehicle location, and we will get the location from the /localization/current_pose. We should rely only on that topic to make the follower more universal. After the initial pose is set the simulator substitutes the localizer and starts to publish the /localization/current_pose. And in real world settings we won't have the initial pose. So remove the initial pose from the follower node.
https://github.com/AnishShr/autoware_mini_practice/blob/3c203454f6dc783e44df131b431797638f767bc9/practice_3/nodes/control/pure_pursuit_follower.py#L33
Remove unnecessary TODO https://github.com/AnishShr/autoware_mini_practice/blob/3c203454f6dc783e44df131b431797638f767bc9/practice_3/nodes/control/pure_pursuit_follower.py#L41
You are looping over the waypoints two times. Reorganize it so it is done only once.

https://github.com/AnishShr/autoware_mini_practice/blob/3c203454f6dc783e44df131b431797638f767bc9/practice_3/nodes/control/pure_pursuit_follower.py#L43
https://github.com/AnishShr/autoware_mini_practice/blob/3c203454f6dc783e44df131b431797638f767bc9/practice_3/nodes/control/pure_pursuit_follower.py#L49

I would suggest assigning the following (see the code block below) together at the very end of the path_callback:

and before assigning, I would calculate distance_to_velocity_interpolator into the local variable.
Imagine there is a long path, and the path_callback would take 0.25 seconds to run. During that time, we have at least two cycles of current_pose_callback, and if we first update path_linesting and write it to the class variable, then we prepare distance_to_velocity_interpolator and assign it to the class variable, we can create a situation where in the current_pose_callback they are not in sync.
So preparing them into local variables and doing the assigning together and at the very end of the path_callback minimizes the risk of this happening

self.path_linestring = path_linestring
self.distance_to_velocity_interpolator = interp1d(distances, velocities, kind='linear')

Please answer

Something looks a bit different in the formula, but interestingly it produces the same result as the formula in the practice materials, so maybe these changes kind of make it the same. Can you comment on that?

there should be arctan instead of arctan2
it should be division with ld

https://github.com/AnishShr/autoware_mini_practice/blob/3c203454f6dc783e44df131b431797638f767bc9/practice_3/nodes/control/pure_pursuit_follower.py#L88
7. In task 6 in instructions point 4 fill_value and bounds_error are expected to be used. It shouldn't happen that we get distance out of the length limits of the path linestring when using shapely. But if it happens? What will your code currently do?
https://github.com/AnishShr/autoware_mini_practice/blob/3c203454f6dc783e44df131b431797638f767bc9/practice_3/nodes/control/pure_pursuit_follower.py#L61

The catkin_install_python takes care of the python version dependency and appends the shebag line while building the package. Should I add the shebang line on top of the controller node still?

Removed the /initialpose subscription.

Removed unnecessary TODO

Reorganized the program structure to loop over the waypoints only once
https://github.com/AnishShr/autoware_mini_practice/blob/709fa2c8c34e524dc4770b6a334911bac1b3dd6d/practice_3/nodes/control/pure_pursuit_follower.py#L37-L41

computed the velocity and stored in the local variable. In the end of the path_callback, assigned them to class variables
https://github.com/AnishShr/autoware_mini_practice/blob/709fa2c8c34e524dc4770b6a334911bac1b3dd6d/practice_3/nodes/control/pure_pursuit_follower.py#L55-L63

Generally, arctan2 should hold all properties that arctan holds. In theory, arctan2 is used for ranges between -180 and 180, while arctan is used for ranges -90 to 90. source: stackoverflow_thread.
And for ld, the lookahead distance would be the distance from ego-vehicle's current position in the path to the lookahead point in the trajectory. I believe this is what was supposed to be done. Or did I misunderstood your question?

Added the fill_value and bounds_error values while computing the velocities fro distance.
bounds_error will raise an error if the input distance is out of bounds from the limits
fill_value will set the velocity value to be 0 for the points outside the bounds of distance inputs
https://github.com/AnishShr/autoware_mini_practice/blob/709fa2c8c34e524dc4770b6a334911bac1b3dd6d/practice_3/nodes/control/pure_pursuit_follower.py#L55-L59

Latest commit: latest commit

OK - no need. Have not used catkin_install_python personally
OK
OK
OK
OK
OK, if you use atan then there is division with ld in original formula, but it seems to produce the same thing as atan2(the formula without dividing with ld, ld). Anyway it seems correct, I was just a bit confused at first.
bouds_error by default is true, but we don't want it to be raised, we just want to set the values to 0 if out of bounds distances are sent to interpolator.

arctan2() has division with ld ,inside the paranthesis there are 2 values.
https://github.com/AnishShr/autoware_mini_practice/blob/709fa2c8c34e524dc4770b6a334911bac1b3dd6d/practice_3/nodes/control/pure_pursuit_follower.py#L90

https://numpy.org/doc/stable/reference/generated/numpy.arctan2.html
I guess you were confused by how numpy provides the API for arctan and arctan2. It is slightly different, but eventually provides the same result.

One tiny detail, but no need to change anything
https://github.com/AnishShr/autoware_mini_practice/blob/8dd232a77319ab8eb8a20a69bd2aceb8b6246b32/practice_3/nodes/control/pure_pursuit_follower.py#L55-L59

Shapely should not give a distance that is below 0 or above the length of the line string, but lets say that we change something there or it somehow gives a bit longer value. The bounds_error regulates what happens then:

raise an error nd let us know about it
do not raise error and use fill_value

It can be used both ways! Depends what you want to achieve, how important is to know about it etc... Currently I asked to not raise an error, but again it depends what we want to achieve... Important is to understand what is happening in the code.
OK


The current version needs updating please update its unstable

Device name: Pixel 4xl
Rom name: android 13
Android version:
Pixelify version: beta

Bug Description:

Without further elaboration nothing can be done, please supply a log file and a detailed description of the bug if not possible, close this issue


Error : 'Error in cURL request: SSL certificate problem: unable to get local issuer certificate

Running in windows on the command line.
PHP / composer installed
PHP Fatal error:  Uncaught exception 'Zend\Http\Client\Adapter\Exception\RuntimeException' with message 'Error in cURL request: SSL certificate problem: unable to get local issuer certificate'
\src\dyn-php\vendor\zendframework\zend-http\src\Client\Adapter\Curl.php:422
Stack trace:
I suspect it's something to do with cacert.pem in zendesk - but don't have enough knowledge to fix.

It's a while since I developed on Windows, but from some searching around the solution seems to be to download an up-to-date CA cert bundle (e.g. this one: http://curl.haxx.se/ca/cacert.pem ), put it somewhere on your filesystem, and then edit:
curl.cainfo

in your php.ini file to point at this location (e.g. curl.cainfo=C:/Windows/cacert.pem).


docs: update image being used

docs: update image being used
What does this PR do?
Fedora eln is older / not being used anymore,
All examples now use FROM quay.io/centos-bootc/centos-bootc-dev:stream9 instead.
Screenshot / video of UI

N/A
What issues does this PR fix or reference?

N/A
How to test this PR?

Test build the images.
Signed-off-by: Charlie Drage<EMAIL_ADDRESS>

Fixes #219?


[SPARK-34084][SQL] Fix auto updating of table stats in ALTER TABLE .. ADD PARTITION

What changes were proposed in this pull request?
Fix an issue in ALTER TABLE .. ADD PARTITION which happens when:

A table doesn't have stats
spark.sql.statistics.size.autoUpdate.enabled is true

In that case, ALTER TABLE .. ADD PARTITION does not update table stats automatically.
Why are the changes needed?
The changes fix the issue demonstrated by the example:
spark-sql> create table tbl (col0 int, part int) partitioned by (part);
spark-sql> insert into tbl partition (part = 0) select 0;
spark-sql> set spark.sql.statistics.size.autoUpdate.enabled=true;
spark-sql> alter table tbl add partition (part = 1);

the add partition command should update table stats but it does not. There is no stats in the output of:
spark-sql> describe table extended tbl;

Does this PR introduce any user-facing change?
Yes. After the changes, ALTER TABLE .. ADD PARTITION updates stats even when a table does have them before the command:
spark-sql> alter table tbl add partition (part = 1);
spark-sql> describe table extended tbl;
col0	int	NULL
part	int	NULL
# Partition Information
# col_name	data_type	comment
part	int	NULL

# Detailed Table Information
...
Statistics	2 bytes

How was this patch tested?
By running new UT and existing test suites:
$ build/sbt -Phive-2.3 -Phive-thriftserver "test:testOnly *.AlterTableAddPartitionSuite"

Test build #133965 has started for PR 31149 at commit df1301d.

Test build #133965 has started for PR 31149 at commit df1301d.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/38552/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/38552/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/38552/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/38552/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/38552/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/38552/

thanks, merging to master! Please open backport PRs for 3.1/3.0

thanks, merging to master! Please open backport PRs for 3.1/3.0

Test build #133965 has finished for PR 31149 at commit df1301d.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test build #133965 has finished for PR 31149 at commit df1301d.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/133965/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/133965/

Here are backports:

branch-3.0: https://github.com/apache/spark/pull/31158
branch-3.1: https://github.com/apache/spark/pull/31157

Here are backports:

branch-3.0: https://github.com/apache/spark/pull/31158
branch-3.1: https://github.com/apache/spark/pull/31157


Clicking on a date doesn't select it, but the onChange event is triggered

Basically, when I click on a date in the calendar, there's no visual indicator that a date was selected; looking at the console, i can confirm that the event is triggered. I'll attach a video showcasing the issue. Here's my code:
import { Text, View } from "react-native";
import DateTimePicker from "react-native-ui-datepicker";

const MyAccountTab = () => {
  return (
    <View>
      <Text>My Account</Text>

      <DateTimePicker mode="single" onChange={(e) => console.log(e)} />
    </View>
  );
};

export default MyAccountTab;

https://github.com/user-attachments/assets/f36c98db-ee03-40f4-8dfe-23d34524aed9

That's because date value is not defined. If add date variable and set it on onChange event it's going to work. Something like this:
<DateTimePicker         mode="single"         onChange={e => setSelectedDate(e.date)}         date={selectedDate}   />


Fix #1014. Default mode for the store now AutoCreate.CreateOrUpdate. …

…Docs adjusted accordingly.

I'm going to pull this one into the 3.0 branch, hopefully in the next couple days. Thanks for doing this one!

Imho this would be nice to get into 3.0 finally :)


profile is incompatible with 'nix-env'; please use 'nix profile' instead

Describe the bug
Tried to install the wsl version of devenv but getting below error

error: profile '/home/xxxx/.local/state/nix/profiles/profile' is incompatible with 'nix-env'; please use 'nix profile' instead
/tmp/nix-binary-tarball-unpack.VmWlnNj4Zk/unpack/nix-2.19.2-x86_64-linux/install: unable to install Nix into your default profile

To reproduce
sh <(curl -L https://nixos.org/nix/install) --no-daemon

Version
DevEnv latest and greatest

After deleting all the profile from "/home/xxx/.local/state/nix/profiles" then it works. So please close this ticket.


Forge support

It would be nice if this supported forge as not everyone can use fabric

I'm sorry but this is a hard no from me.
As far as I know, forge is a pretty big pain to develop for when compared to fabric. It seems very outdated with tons of features that aren't really used. I find it hard to believe that you can't use fabric.
That being said, the last time I used forge (and developed mods for it) was in 1.8.9. But I doubt it's any different. Fabric is just much more modern.


Tableau de bord (Dashboard)

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml
This command line is not working due to the error 404 on the link,
Have a good day

/language fr
Thanks, @Heronal, for raising this issue, can you also provide link to the doc where you have found this issue?

Of course, there it is:
https://kubernetes.io/fr/docs/tasks/access-application-cluster/web-ui-dashboard/

I think french docs have not been updated with the latest link
as in English doc - https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/#deploying-the-dashboard-ui
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.6.1/aio/deploy/recommended.yaml
It is working, as I have tested just now.

/remove-lifecycle rotten

Hi @Heronal, Your issue has been resolved , it you have other issues please state them or  you can close this issue.

/triage needs-information

/remove-triage needs-information
/remove-lifecycle stale
/retitle [fr] Broken link in Dashboard task page


change .napari to napari-hub, add config with comments

This adds a stub config.yaml to napari-hub, and clarify's that the config.yml should be used in addition to (no in place of) populating standard python core metdata fields in setup.cfg or pyproject.toml, when the plugin would like to customize their plugin page on the hub.

Clear separation between what controls things on the hub and what controls things in napari feels good to me 🙂

As I understand the old .napari will still work?

yep, it's not deprecated yet.  see note here: https://github.com/chanzuckerberg/napari-hub/wiki/Customizing-your-plugin's-listing#github


iOS 14 Only attempt to insert nil object from objects[0]

Hi all. This is a problem that I only got on devices with iOS 14.
Description
My project worked well on iOS 13 and after I tried to run it on iOS 14 I always get an error in xcode
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]'
React Native version:
System:
    OS: macOS 11.0
    CPU: (4) x64 Intel(R) Core(TM) i3-8100B CPU @ 3.60GHz
    Memory: 65.82 MB / 8.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 10.16.1 - ~/.nvm/versions/node/v10.16.1/bin/node
    Yarn: 1.22.4 - /usr/local/bin/yarn
    npm: 6.9.0 - ~/.nvm/versions/node/v10.16.1/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  Managers:
    CocoaPods: 1.9.3 - /usr/local/bin/pod
  SDKs:
    iOS SDK:
      Platforms: iOS 14.0, DriverKit 20.0, macOS 11.0, tvOS 14.0, watchOS 7.0
    Android SDK: Not Found
  IDEs:
    Android Studio: Not Found
    Xcode: 12.0/12A8189h - /usr/bin/xcodebuild
  Languages:
    Java: 1.8.0_252 - /usr/bin/javac
    Python: 2.7.16 - /usr/bin/python
  npmPackages:
    @react-native-community/cli: Not Found
    react: 16.13.1 => 16.13.1
    react-native: 0.63.2 => 0.63.2
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

Expected Results
I want to find the cause of the problem
Log:
2020-09-17 15:23:46.876152+0300 MYAPP[4143:493632] <Warning>: Please set a value for FacebookAutoLogAppEventsEnabled. Set the flag to TRUE if you want to collect app install, app launch and in-app purchase events automatically. To request user consent before collecting data, set the flag value to FALSE, then change to TRUE once user consent is received. Learn more: https://developers.facebook.com/docs/app-events/getting-started-app-events-ios#disable-auto-events.
    2020-09-17 15:23:46.877416+0300 MYAPP[4143:493632] <Warning>: You haven't set a value for FacebookAdvertiserIDCollectionEnabled. Set the flag to TRUE if you want to collect Advertiser ID for better advertising and analytics results.
2020-09-17 15:24:47.234399+0300 MYAPP[4143:493866] Task <3B7D3C61-B3E5-4E92-B884-E98B86FF97E9>.<1> finished with error [-1001] Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x2822729d0 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <3B7D3C61-B3E5-4E92-B884-E98B86FF97E9>.<1>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
"LocalDataTask <3B7D3C61-B3E5-4E92-B884-E98B86FF97E9>.<1>"
), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=http://<IP_ADDRESS>:8081/status, NSErrorFailingURLKey=http://<IP_ADDRESS>:8081/status, _kCFStreamErrorDomainKey=4}
2020-09-17 15:24:47.256281+0300 MYAPP[4143:493632] [native] Running application MYAPP ({
initialProps =     {
};
rootTag = 1;
})
2020-09-17 15:24:47.268978+0300 MYAPP[4143:493881] 6.25.0 - [Firebase/Core][I-COR000003] The default Firebase app has not yet been configured. Add `[FIRApp configure];` (`FirebaseApp.configure()` in Swift) to your application initialization. Read more: https://goo.gl/ctyzm8.
2020-09-17 15:24:47.312992+0300 MYAPP[4143:493866] 6.25.0 - [Firebase/Messaging][I-FCM001000] FIRMessaging Remote Notifications proxy enabled, will swizzle remote notification receiver handlers. If you'd prefer to manually integrate Firebase Messaging, add "FirebaseAppDelegateProxyEnabled" to your Info.plist, and set it to NO. Follow the instructions at:
https://firebase.google.com/docs/cloud-messaging/ios/client#method_swizzling_in_firebase_messaging
to ensure proper integration.
2020-09-17 15:24:47.317115+0300 MYAPP[4143:493866] 6.25.0 - [Firebase/Analytics][I-ACS031025] Analytics screen reporting is enabled. Call +[FIRAnalytics setScreenName:setScreenClass:] to set the screen name or override the default screen class name. To disable screen reporting, set the flag FirebaseScreenReportingEnabled to NO (boolean) in the Info.plist
2020-09-17 15:24:47.340982+0300 MYAPP[4143:493866] 6.25.0 - [Firebase/Analytics][I-ACS023007] Analytics v.60501000 started
2020-09-17 15:24:47.341770+0300 MYAPP[4143:493866] 6.25.0 - [Firebase/Analytics][I-ACS023008] To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see http://goo.gl/RfcP7r)
2020-09-17 15:24:47.410764+0300 MYAPP[4143:493992] [Client] Updating selectors after delegate removal failed with: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service on pid 88 named com.apple.commcenter.coretelephony.xpc was invalidated from this process." UserInfo={NSDebugDescription=The connection to service on pid 88 named com.apple.commcenter.coretelephony.xpc was invalidated from this process.}
2020-09-17 15:24:47.429141+0300 MYAPP[4143:493632] FBSDKLog: fb-messenger-share-api is missing from your Info.plist under LSApplicationQueriesSchemes and is required for iOS 9.0
2020-09-17 15:24:47.429431+0300 MYAPP[4143:493632] FBSDKLog: fbauth2 is missing from your Info.plist under LSApplicationQueriesSchemes and is required for iOS 9.0
2020-09-17 15:24:47.431858+0300 MYAPP[4143:493881] [tcp] tcp_input [C2.1:3] flags=[R] seq=2910663435, ack=0, win=0 state=CLOSED rcv_nxt=2910663435, snd_una=2084476413
2020-09-17 15:24:47.432180+0300 MYAPP[4143:493881] [tcp] tcp_input [C2.1:3] flags=[R] seq=2910663435, ack=0, win=0 state=CLOSED rcv_nxt=2910663435, snd_una=2084476413
2020-09-17 15:24:47.436111+0300 MYAPP[4143:493632] FBSDKLog: starting with Graph API v2.4, GET requests for /195739114824780/model_asset should contain an explicit "fields" parameter
2020-09-17 15:24:47.471741+0300 MYAPP[4143:493881] [tcp] tcp_input [C1.1:3] flags=[R] seq=2629399053, ack=0, win=0 state=CLOSED rcv_nxt=2629399053, snd_una=3107602082
2020-09-17 15:24:47.471909+0300 MYAPP[4143:493881] [tcp] tcp_input [C1.1:3] flags=[R] seq=2629399053, ack=0, win=0 state=CLOSED rcv_nxt=2629399053, snd_una=3107602082
2020-09-17 15:24:47.572210+0300 MYAPP[4143:494213] 6.25.0 - [Firebase/Analytics][I-ACS800023] No pending snapshot to activate. SDK name: app_measurement
2020-09-17 15:25:07.703378+0300 MYAPP[4143:494224] [tcp] tcp_output [C14.1:3] flags=[R.] seq=912352729, ack=2533363381, win=4096 state=CLOSED rcv_nxt=2533363381, snd_una=912352729
2020-09-17 15:25:07.705428+0300 MYAPP[4143:494224] Connection 14: received failure notification
2020-09-17 15:25:07.705746+0300 MYAPP[4143:494224] Connection 14: failed to connect 3:-9816, reason -1
2020-09-17 15:25:07.705837+0300 MYAPP[4143:494224] Connection 14: encountered error(3:-9816)
2020-09-17 15:25:18.335269+0300 MYAPP[4143:494219] [tcp] tcp_output [C15.1:3] flags=[R.] seq=2353633686, ack=248484103, win=4096 state=CLOSED rcv_nxt=248484103, snd_una=2353633686
2020-09-17 15:25:18.338275+0300 MYAPP[4143:494219] Connection 15: received failure notification
2020-09-17 15:25:18.339071+0300 MYAPP[4143:494219] Connection 15: failed to connect 3:-9816, reason -1
2020-09-17 15:25:18.340516+0300 MYAPP[4143:494219] Connection 15: encountered error(3:-9816)
2020-09-17 15:25:18.416619+0300 MYAPP[4143:494224] [boringssl] boringssl_context_handle_fatal_alert(1763) [C17.1:2][0x10720d610] read alert, level: fatal, description: inappropriate fallback
2020-09-17 15:25:18.418166+0300 MYAPP[4143:494224] [boringssl] boringssl_session_handshake_incomplete(90) [C17.1:2][0x10720d610] SSL library error
2020-09-17 15:25:18.418648+0300 MYAPP[4143:494224] [boringssl] boringssl_session_handshake_error_print(41) [C17.1:2][0x10720d610] Error:<PHONE_NUMBER>:error:1000043e:SSL routines:OPENSSL_internal:TLSV1_ALERT_INAPPROPRIATE_FALLBACK:/Library/Caches/com.apple.xbs/Sources/boringssl/boringssl-351.0.1/ssl/tls_record.cc:592:SSL alert number 86
2020-09-17 15:25:18.419022+0300 MYAPP[4143:494224] [boringssl] nw_protocol_boringssl_handshake_negotiate_proceed(761) [C17.1:2][0x10720d610] handshake failed at state 12288: not completed
2020-09-17 15:25:18.423447+0300 MYAPP[4143:494224] Connection 17: received failure notification
2020-09-17 15:25:18.424619+0300 MYAPP[4143:494224] Connection 17: failed to connect 3:-9860, reason -1
2020-09-17 15:25:18.424861+0300 MYAPP[4143:494224] Connection 17: encountered error(3:-9860)
2020-09-17 15:25:18.427595+0300 MYAPP[4143:494224] Task <145461A1-5355-49F3-B990-A63ADD61AEBF>.<1> HTTP load failed, 0/0 bytes (error code: -1200 [3:-9860])
2020-09-17 15:25:48.269210+0300 MYAPP[4143:494224] Task <E0E85B74-2BA3-4904-AF29-40B7B2C0B08B>.<2> finished with error [-1001] Error Domain=NSURLErrorDomain Code=-1001 "The request timed out."  I would recommend opening an issue with the firebase module. Feel free to create a new issue if this occurs in a raw React Native template.


IRequestConfiguration properties should be nullable to allow using IConnectionConfigurationValues by default

NEST/Elasticsearch.Net version: 6.1.0
Elasticsearch version: 6.1.1
Description of the problem including expected versus actual behavior:
ElasticLowLevelClient Cat* methods behavior is wrong regarding exception throwing.
Steps to reproduce:

Assuming Elastic Search is running locally with default settings.
Run NUnit tests:

[TestCase(false)]
[TestCase(true, ExpectedException = typeof(ElasticsearchClientException))]
public void CatIndicesUsesConnectionConfigWhenRequestConfigNotSetTest(bool connectionIsSetToThrow)
{
    var config = new ConnectionConfiguration()
        .ThrowExceptions(connectionIsSetToThrow);

    var client = new ElasticLowLevelClient(config);
    client.CatIndices<StringResponse>("non_existing_index");
}

[TestCase(false, false)]
[TestCase(false, true, ExpectedException = typeof(ElasticsearchClientException))]
[TestCase(true, false)]
[TestCase(true, true, ExpectedException = typeof(ElasticsearchClientException))]
public void CatIndicesUsesRequestConfigWhenItIsSetTest(bool connectionIsSetToThrow, bool requestIsSetToThrow)
{
    var config = new ConnectionConfiguration()
        .ThrowExceptions(connectionIsSetToThrow);

    var client = new ElasticLowLevelClient(config);
    var catIndicesRequestParameters = new CatIndicesRequestParameters{ RequestConfiguration = new RequestConfiguration { ThrowExceptions = requestIsSetToThrow } };
    client.CatIndices<StringResponse>("non_existing_index", catIndicesRequestParameters);
}

Verify that CatIndicesUsesConnectionConfigWhenRequestConfigNotSetTest(true)
fails because exception is not thrown.

Provide DebugInformation (if relevant):
The problem is that ElasticLowLevelClient._params method creates a new RequestConfiguration instance itself when null is passed to override two settings: ContentType and Accept.
IRequestConfiguration.ThrowExceptions property is not nullable so it is initialized with default(bool) value. Later this value is used in RequestData constructor to merge connection settings with request settings: ThrowExceptions = (local?.ThrowExceptions ?? global.ThrowExceptions);
Declaring IRequestParameters.ThrowExceptions as bool? would solve the issue and also would make it easier to write a code when only certain properties of IRequestConfiguration should be changed, and all the others should be taken from connection config. BTW, this already applied to some other properties of IRequestConfiguration:

int? MaxRetries
bool? DisableSniff
...

Please consider to make bool EnableHttpPipelining nullable as well.
P. S. Looking at constructor RequestConfigurationDescriptor(IRequestConfiguration config) it seems like property ThrowExceptions was forgotten there.

Thanks for the detailed information @ivan-sam.
Would you be interested in submitting a PR for this?

Awesome @ivan-sam!
Note: Please open a PR against master, where binary breaking changes can be made. Care will need to be taken when backporting any changes to 6.x and 5.x so that changes are applied in a non-binary breaking way. I can help with the backporting 👍

Issue can be closed, all nullable on master. Thanks again @ivan-sam !


Update README.md to reflect first sprint changes

Short description explaining the high-level reason for the new issue.
Current behavior
README.md exists as per the template but doesn't reflect first sprint changes.
Expected behavior
README.md should reflect the project at the end of each sprint.
Steps to replicate behavior (include URLs)

Screenshots

I updated the readme with some project details.  As this sprint ends, we can make sure it is up to date and then close this issue.


Partially revert MR compression (#9868)

How to categorize this PR?

/area control-plane
/kind bug
What this PR does / why we need it:
This PR partially reverts the ManagedResource compression added via #9868.
An issue was noticed during the rollout of of the change, that led to the re-creation of several resources, e.g. svc/istio-ingressgateway in the Garden-Runtime cluster, and thus caused a downtime. Here, gardener-operator did not wait for the complete roll-out of the adjusted GRM replicas (those with compression support) and already continued to adjust several ManagedResources in the meantime. Unsupported GRM replicas begun to reconcile those, failed to decode the compressed content of the new Secret and deleted all the resources it created previously.
While it's possible to adjust gardener-operator to wait to the rollout to finish, gardenlet would need to do the same for all patched GRMs in the seed. This however blocks the seed operation in the meantime.
Now, we roll out the compression feature in two phases:

Support of Brotli compressed in v1.97.
Compression of ManagedResources in v1.98.

Special notes for your reviewer:
/cc @ScheererJ @LucaBernstein @rfranzke
Release note:

`gardener-resource-manager` can now handle data that is compressed with [Brotli](https://github.com/google/brotli). Read [here](https://github.com/timuthy/gardener/blob/461f9aeaa785244cba8ad1b357a5dd19617c8191/docs/concepts/resource-manager.md#compression) for more information. In the future, Gardener and extensions will compress `ManagedResource` data to save data and bandwidth.

/retest-required

/assign

/retest-required


Dynamically created textarea is not resizing

Description
When textarea control is created dynamically, auto-resize is not fired.
$('.materialize-textarea').trigger('autoresize'); won't help, as textarea does not have autoresize event bound to it. The only time it is set - is $(document).ready.
Maybe you can add some initialization for dynamically created controls, similar to what we can use for select elements - $('select').material_select(); ?

https://github.com/Dogfalo/materialize/blob/master/js/forms.js#L179-L181
http://api.jquery.com/on/

When a selector is provided, the event handler is referred to as delegated. The handler is not called when the event occurs directly on the bound element, but only for descendants (inner elements) that match the selector. jQuery bubbles the event from the event target up to the element where the handler is attached (i.e., innermost to outermost element) and runs the handler for any elements along that path matching the selector.

For me it seems it works: http://codepen.io/anon/pen/mmRLwL
But there is just an issue with the label.

It is working fine for the version 0.98.1 (the one you used in your example), but it does not work for the latest one - 0.98.2.

@TetianaP you are right, seems we have another regression bug here.
http://codepen.io/anon/pen/QvpdNM
Would have to compare the compiled components and triage this bug.

Seems we have to add a check for data('original-height') === undefined or similar.
http://codepen.io/anon/pen/QvpdvO

@fega @tomscholz please add a label like needs-pr so I know that I plan to create a PR.

@DanielRuf I don't think that we need a needs-pr label. I mean, pull request are always welcome and such a label would would make things more complicated than necessary

@tomscholz ok. Will add the issue number to my personal todo list.

@TetianaP please test the change and if this breaks nothing

Fixed in 4a3c15c

Fixed in 4a3c15c

No this does not fix this if the data attribute is undefined / missing (at least in Chrome).
https://github.com/Dogfalo/materialize/issues/4621

d is not shown if the data attribute is undefined

d is shown if the data attribute is defined

d is shown with https://github.com/Dogfalo/materialize/issues/4621

@DanielRuf that works, thanks everyone!
How soon could we expect it to be released?

@TetianaP you could also use one of the solutions
http://stackoverflow.com/a/16951315/753676
http://stackoverflow.com/a/18049685/753676
should also work with the update command

@DanielRuf  Thanks, it will work, but in this case need to bundle all js together, as materialize-css/dist/js/materialize.min.js was not updated and it contains old implementation from forms.js.

@TetianaP just clone and run Grunt in the directory of Materialize to build a new file using the js_compile task.

set data-original-height=0
worked for me with the version 0.98.2

Exactly ;-) https://github.com/Dogfalo/materialize/issues/4613#issuecomment-297950328

Hi same problem here on version v0.99.0

I add a textarea dynamically to the DOM
I set its value with $('#myTextArea').val($('#myTextArea').attr('data-original-value'));
I trigger the autoresize event $('#myTextArea').trigger('autoresize');

The data-label overlasped the text, if I click on the textarea the label goes correctly on top the text and all goes fine then.
The HTML

        <textarea id="bot-message-input"
                  class="materialize-textarea"
                  data-original-value="<%= text %>"
                  data-original-height="0"></textarea>
        The message the bot will print

The bug state at the page load

The ok state after clicking on the textarea

i have a same problem

@DanielRuf I have a same problem on 0.99.0

@knight7024 did you try 0.100.0 or newer?

@DanielRuf yes im doing it now but nothing changed

Is anyone else still having this problem?  I just upgraded from .98 to .100.2 and this is an issue.  It wasn't an issue in the .98 version.
Any help would be appreciated.

@SmboBeast I'm using .100.1 version materialize javascript because of this issue. Have you imported js in body tag?

@knight7024
Thank you for this!  I will try using .100.1 right now and see if this is a temporary fix.
I have imported the JS in the body tag also.  Give me a few minutes.  Will update this thread.

@knight7024 Even on .100.1, it still doesn't work for me on page load.  However, when text is entered into the textarea, it works just fine.  Weird...

Well... idk about that issue. We need to wait newer version which is fixed

Agreed.  Thanks @knight7024

:) @SmboBeast

M.textareaAutoResize(document.querySelector('.materialize-textarea'))


Can't make @ symbol in Windows 10

Hi,
I just discovered Extraterm yesterday and decided to give it a shot. I'm having a weird issue though, I can't make the @ symbol in Extraterm for some reason. I'm using a swedish keyboard layout and for some reason I can't get it to work. The keyboard shortcut on a swedish keyboard layout is "altgr+2".
I searched for similar issues but couldn't find anything. This is a peculiar problem that only shows in Extraterm and I'm at loss what to try.

This sounds the same as https://github.com/sedwards2009/extraterm/issues/97

Yeah it's similar but I don't think it's the same. I have no problems making the @ symbol in any other applications including other terminal emulators(WSL Terminal, Hyper, MobaXTerm). I also dont get the "^@" output when trying to make an "@" in CMD as the OP mentioned in the issue you referenced.
You still think these are related?

I now realise I forgot to mention that other altgr combinations work fine.

After some more using I realised I couldn't make a backspace(altgr+plus sign) in nano and it seem to have sent ^\ (search and replace function in nano).
If I in bash hold down AltGr and just press the 12 buttons on the number row of the keyboard sequentially starting with 1 the output is: £$€{
"£" = 3, "$" = 4, "€" = 5, "{" =0 <- keys on keyboard

I just tried this out on Windows 10 using English and Swedish keymap. VSCode gives @ for right-Alt 2, which is expected. Extraterm gives nothing, which is good because it means that I can reproduce the problem and somewhere in VSCode there is a solution to be found. ;-)

Nice :) Keeping my fingers crossed!

Interestingly Chrome/Blink version 67 contains a fix for AltGr keys on Windows:  https://www.chromestatus.com/features/5059438092222464
This fix will be in Electron v4 which is currently in beta testing. Extraterm is on the (fairly) old 2.x versions of Electron at the moment. If the keyboard work-around for Electron 2.x is too nasty then I might wait for Electron v4 to be properly released first.

I have a fix for this. I'll probably do a small big fix point release sometime this coming week.

@maetthew I just released 0.38.1 with this fix in it.

@sedwards2009 Yup, confirming both @ and \ works :)
Output of earlier mentioned method: @£$€{[]}\
Nice job! Can't wait to see where you're gonna take this development.


Add zip file checksums to chocolatey package

For all future submissions, chocolatey now requires checksums for all files downloaded from external servers. This is to prevent MITM attacks and compromised servers from feeding users bad executables.
I'm not quite sure how we'll implement this. It will involve updating the package templates to include the checksum field, and then expanding the grunt script to include calculating the checksums for the 32-bit and 64-bit executables

For future releases I'm going to add a checksums.txt file which can be used by package configs that download the archives from the github releases page. I need to add this anyway, because of the internal update mechanism (which still needs to be finished).
Hash algorithm will be sha256 and the format [sum]  [filename], so basically the same as the output of sha256sum.
I'll add a function to the build/tasks/common/package module that downloads this file and returns the desired hashsum. I'll notify you once I've done this, so you can upgrade the package:chocolatey task.

Implemented in 6f18c5b...
I rewrote the package task for this, see the commit msg or diff.
There's a config file for the package task now.
The hashes can be accessed via <%= package.checksums.win64 %> from the grunt config in the templates. The checksums option needs to be enabled for this, though... I also added the same behavior for the changelog.
Please remember that the current release doesn't have a checksums file attached. If this is necessary, let me know and I'll add it.


Remove ScrollDirection.both

Almost none of the clients of ScrollDirection can handle scrolling in both
directions.
Fixes #151

LGTM


Resolving Swagger Violations for RecoveryServices

Generated from RestAPI PR: https://github.com/Azure/azure-rest-api-specs/pull/2186

Manually included in https://github.com/Azure/azure-sdk-for-python/pull/2036


ofxAndroidCheckPermission(CAMERA) and ofxAndroidRequestPermission(CAMERA)

Thanks for putting this addon together, I'm so close I can almost taste it.
I've installed and built oF on OSX using Irene Alvarado's excellent guide and using your openframeworks repo. After some gradle issues I've managed to build/make the project. On trying to run it to my phone however I get an error:
Error:(66, 33) error: use of undeclared identifier 'CAMERA'
and also I don't believe it recognises the ofxAndroid functions:
Error:(66, 5) error: use of undeclared identifier 'ofxAndroidRequestPermission'
Error:(68, 8) error: use of undeclared identifier 'ofxAndroidCheckPermission'
edit:These functions appear to be in the ofxAndroid addon which I assumed was included when I chose android studio as the platform in the OSX project generator. Is it possible that is isn't? The addon (ofxAndroid) doesn't appear as an option in the project generator dropdown and I assumed this was because it was included by default. If not, how do I include it?
edit2: I resolved this. The functions appear to have been deprecated and replaced with
ofxAndroidRequestCameraPermission
ofxAndroidCheckCameraPermission
respectively. Previously they took an argument (CAMERA) and don't anymore. Unfortunately the app immediately crashes after requesting permission on my pixel. I have the arcore-preview apk installed and can run the example 'stickers' app that ships with the pixel camera. Should I open a new issue about the crashing?
edit3: the crashing is due to an update in the arcore libs. The current preview apk referenced from arcore docs is version2. the previous version (Compatible) with Dan's addon is here.

Ah i think the function name was changed in openframeworks after I made the
add-on. I'll take a look at it in a couple of days unless you have already
found the function.
On Thu, Dec 21, 2017, 14:27 Tom Schofield<EMAIL_ADDRESS>wrote:

Thanks for putting this addon together, I'm so close I can almost taste it.
I've installed and built oF using Irene Alvarado's excellent guide
https://medium.com/@ire_alva/getting-started-with-openframeworks-on-android-5202b92f6582
and using your openframeworks repo
https://github.com/HalfdanJ/openFrameworks/tree/android-camera-permissions/addons.
After some gradle issues I've managed to build/make the project. On trying
to run it to my phone however I get an error:
Error:(66, 33) error: use of undeclared identifier 'CAMERA'
and also I don't believe it recognises the ofxAndroid functions:
Error:(66, 5) error: use of undeclared identifier
'ofxAndroidRequestPermission'
Error:(68, 8) error: use of undeclared identifier
'ofxAndroidCheckPermission'
Looking through the library I don't see where the functions above are
declared. They aren't in ofxArCore header and they don't seem to be
anywhere in the ofxAndroid addon either. Were these present in an earlier
version? What's missing? Any clues would be gratefully received.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/HalfdanJ/ofxARCore/issues/10, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAN4yVRaXg_khy2W2v8pdzaOZ7L1nyW2ks5tClzUgaJpZM4RJ0iq
.

Very kind of you but I have indeed found in ofxAndroidUtils.h / .cpp
In your library I just swapped in the new function names in ofxARCore.cpp (for anyone else reading).
Thanks again for the addon and your offer of help.

Could you make a pull request with the change?
On Tue, Dec 26, 2017, 21:34 Tom Schofield<EMAIL_ADDRESS>wrote:

Very kind of you but I have indeed found in ofxAndroidUtils.h / .cpp
In your library I just swapped in the new function names in ofxARCore.cpp
(for anyone else reading).
Thanks again for the addon and your offer of help.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/HalfdanJ/ofxARCore/issues/10#issuecomment-354010434,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAN4ycxhpG5aBd5JBOBR0bOdm0-6tf4zks5tEVg9gaJpZM4RJ0iq
.


Tutorial on Analytics Lifecycle sessions

Is there an existing issue for this?

[X] I have searched the existing issues

What feature should be added?
Write a tutorial on how Lifecycle sessions are computed for Analytics. Define how start&pause API calls are used internally by the SDK, and how lifecycle.sessionTimeout is being used to determine the session duration.
Include developer tips on how to debug Lifecycle with verbose logs and/or Assurance.
What is the expected behavior?
Include example diagrams with valid Lifecycle sessions, and invalid Lifecycle session (e.g. incorrect start/pause calls).
How will this feature improve the user experience?
By providing more examples.
What would a solution for this issue look like?
No response

@timkimadobe was this all captured in PR https://github.com/AdobeDocs/aep-mobile-sdkdocs/pull/568 or is there anything left for this item?


feat: add options for token review in notation verifier

Closes #27
These options will be useful when

Kyverno is installed in some namespace other that kyverno
You want to use the verifier as a standalone thing

How this can be used? Can you add clarification in the description?

The readme for this repo does not say anything.... as this repo was intended to be used as a common library for other plugins, it would be helpful if I write a nice doc for this library.
Kyverno-notation-aws will use these options as flags once this PR has been merged and I will create a PR in that repo covering the new changes and add flag documentation.


Presence of definite articles in Odia?

Odia (oriy1255) is coded "1" for the presence of definite articles (GB020) based on Neukom and Patnaik (2003: 23-34).
However, on p. 25-26, the authors of this grammar write:
"The suffixes -éta / -éti are referred to as "definite articles" or "enclitic definitives" in the literature. [...] There are, however, four arguments that show that the affixes -éta / -éti have only little to do with definiteness.
(i) The articles are used in combination with the indefinite suffix [...]
(ii) The articles can occur with indefinite pronouns [...]
(iii) There are even (rare) instances where a noun in indefinite use is marked by the articles [...]
(iv) In many clearly definite contexts no articles are used."
Worth further consideration :)

This is true, cf. also Neukom and Patnaik (2003: 24): "It will be shown that this label [i.e. "definite article"] is misleading. I will change GB020 accordingly and provide a comment.
I will also change GB021 from 0 to 1. The authors write "In all these cases [i.e. of the suffix -e appearing], except for the numerals, the suffix -e makes the referent indefinite." GB023 will remain 1, since -e is a postnominal article.
Thank you!


Version content doesn't exist!

Attempting to drop an image into Redactor 2. Using Carrierwave 1.1.0 and S3. On upload, it actually makes it to S3 just fine, but then throws this error:
ArgumentError (Version content doesn't exist!):
app/models/redactor2_rails/asset.rb:4:in `url'
ArgumentError: Version content doesn't exist!

This seems to be the part in Carrierwave that it doesn’t like: uploader/versions.rb#202. Does this have something to do with the url_content method on models/image.rb and models/file.rb?

Any chance somebody could look at this? This seems to be an issue with redactor2_rails, not Carrierwave, as I have no other issues with other Carrierwave uploaders.

@dangodev Have you configured content version in your Carrierwave uploader?

No answer for a while


Unable to resolve module AccessibilityInfo

I am aware of previous issues like #14209, but these happened a couple years ago and the resolution for most of them is to change versions that are too old now.
I ran yarn install on my project, and then react-native start -- --reset-cache. The output of creating the bundle is:
error: bundling failed: Error: Unable to resolve module `AccessibilityInfo` from `/Users/jamil/code/myproject/node_modules/react-native/Libraries/react-native/react-native-implementation.js`: Module `AccessibilityInfo` does not exist in the Haste module map

React Native version:
System:
    OS: macOS 10.14.6
    CPU: (8) x64 Intel(R) Core(TM) i7-8559U CPU @ 2.70GHz
    Memory: 2.79 GB / 16.00 GB
    Shell: 3.2.57 - /bin/bash
  Binaries:
    Node: 12.9.1 - /usr/local/bin/node
    Yarn: 1.17.3 - /usr/local/bin/yarn
    npm: 6.10.3 - /usr/local/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  SDKs:
    iOS SDK:
      Platforms: iOS 12.4, macOS 10.14, tvOS 12.4, watchOS 5.3
  IDEs:
    Xcode: 10.3/10G8 - /usr/bin/xcodebuild
  npmPackages:
    react: ^16.9.0 => 16.8.6
    react-native: ^0.60.5 => 0.60.5
  npmGlobalPackages:
    react-native-cli: 2.0.1

Steps To Reproduce

yarn install with dependencies:

{
    "dependencies": {
    "@react-native-community/async-storage": "^1.6.1",
    "@react-native-community/geolocation": "^2.0.2",
    "@react-native-community/netinfo": "^4.1.5",
    "lodash": "latest",
    "moment": "^2.23.0",
    "prop-types": "^15.7.2",
    "react": "^16.9.0",
    "react-native": "^0.60.5",
    "react-native-animatable": "^1.3.2",
    "react-native-background-upload": "^5.1.0",
    "react-native-camera": "^3.2.0",
    "react-native-circular-progress": "^1.3.0",
    "react-native-contacts": "^5.0.2",
    "react-native-customized-image-picker": "^0.1.4",
    "react-native-datepicker": "^1.7.2",
    "react-native-device-info": "^2.3.2",
    "react-native-easy-toast": "^1.2.0",
    "react-native-elements": "^1.1.0",
    "react-native-fbsdk": "git+https://github.com/facebook/react-native-fbsdk.git",
    "react-native-firebase": "^5.5.6",
    "react-native-gesture-handler": "^1.4.0",
    "react-native-image-crop-picker": "^0.25.0",
    "react-native-image-picker": "^1.0.2",
    "react-native-keyboard-aware-scroll-view": "^0.9.1",
    "react-native-linear-gradient": "^2.5.4",
    "react-native-modal": "^11.3.1",
    "react-native-parsed-text": "^0.0.21",
    "react-native-permissions": "git+https://github.com/BaderSerhan/react-native-permissions",
    "react-native-phone-input": "^0.2.4",
    "react-native-progress": "^3.5.0",
    "react-native-reanimated": "^1.2.0",
    "react-native-share": "^2.0.0",
    "react-native-size-matters": "^0.2.1",
    "react-native-sms": "^1.9.0",
    "react-native-svg": "^9.6.4",
    "react-native-text-ticker": "^0.18.0",
    "react-native-vector-icons": "^6.6.0",
    "react-native-video": "^5.0.0",
    "react-native-video-processing"<EMAIL_ADDRESS>    "rn-fetch-blob": "^0.10.16",
    "yarn": "^1.17.3"
  },
  "devDependencies": {
    "babel-jest": "23.6.0",
    "babel-plugin-transform-remove-console": "^6.9.4",
    "jest": "23.6.0",
    "react-test-renderer": "16.6.3"
  },
  "jest": {
    "preset": "react-native"
  }
}

react-native start -- --reset-cache

curl http://localhost:8081/index.bundle -o main.jsbundle

Unable to reproduce the error unfortunately. Mind running react-native info to get your full environment info?

@teeolendo the react native info is in the description, underreact native version
Sent with GitHawk


Multiline string causes syntax error in _nbdev.py

Hello team,
When generating python scripts from Jupyter notebooks using the following code snippet
from nbdev.export import notebook2script
notebook2script()

it seems multiline variables are not correctly handled. Say I have a notebook nb_with_multiline_string.ipynb which contains (at script level) the variable
var2 = '''just
a
value
'''

The index variable in the generated _nbdev.py file will contain a syntax error, thus blocking future lib installations:
index = {"var1": "nb1.ipynb"}": "nb_with_multiline_string.ipynb",
              "var2": "nb_with_multiline_string.ipynb"}

This issue has been observed on nbdev 1.1.22.
Best regards.

Similarly, using multiline strings (even if these are only comments) such as this one in a notebook:
"""
def a<b>():
"""

Will result in an invalid Python script containing:
__all__ = [
    "a<b>"
]

Should be fixed in v2


Any condition I can use for pull requests from/to certain branches?

Hey there,
was wondering if there was a condition I can use for pull requests from/to certain branches?
Something like:
condition: and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'), eq(variables['PullRequest.TargetBranch'], 'refs/heads/master'))
Cheers,
Robin

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 3f151218-9a11-0078-e038-f96198a76143
Version Independent ID: 09c4d032-62f3-d97c-79d7-6fbfd89910e9
Content: Conditions - Azure Pipelines
Content Source: docs/pipelines/process/conditions.md
Product: devops
Technology: devops-cicd-process
GitHub Login: @juliakm
Microsoft Alias: jukullam

@RobCoPKC Thank you for the question, assigning this to the author for review of documentation.
For product questions, please use Report a problem or Suggest a feature in the Azure DevOps community.
Otherwise, for additional support options, see:

Azure DevOps support
Azure DevOps on StackOverflow

Any news?
Cheers,
Robin

@RobCoPKC  I apologize for the delay. Are you using GitHub or Azure Repos? If so, you should check out pull request triggers:

PR triggers in Azure Repos Git
PR triggers in GitHub

Hey @juliakm,
yes, we are using Azure Repos Git and we are already using PR triggers. You seem to be misunderstanding the intention of my question.
I'm asking if there is a condition we can use for pull requests targeting specific branches so that this task (in our case the increase of the minor version variable) is executed during the PR trigger build IF the target branch is a certain branch (in our case the master branch).
Please reopen this issue.
Cheers,
Robin

@RobinZergiebel Can you try this and let me know if it does what you were expecting?
jobs:
- job: NotMaster
  condition: eq(variables['System.PullRequest.TargetBranch'], 'refs/heads/not-master')
  pool:
    vmImage: 'ubuntu-latest'
  steps:
  - bash: echo "Hello world"

Hey @juliakm,
thank you so much, that is exactly what I was looking for!
Cheers,
Robin


Ensure correcty tying of API key's restrictIndices parameter

The restrictIndices of API keys should be typed as:

an array of strings OR
a comma-separated string

Both format should be handled at serialization/deserialization time.

Fixed in 4a8e356ca494c49505341e88be8aed950741df07

Seems to be handled with FlatListSerializer https://github.com/algolia/algoliasearch-client-java-2/blob/4a8e356ca494c49505341e88be8aed950741df07/algoliasearch-core/src/main/java/com/algolia/search/models/indexing/FlatListSerializer.java#L23