upgrade enr, libp2p-core dependecies. Feature gate networking

Updates the enr and libp2p-core dependecies.
Adds a features "networking", enabled by default for compatibility that gates the networking module. This allows users who don't need it to prevent bringin in the enr and libp2p-core dependencies at all

Closing this PR as I think we found another workaround; please feel free to re-open if needed :)


python310Packages.ical: 4.2.5 -> 4.2.8

Changelog: https://github.com/allenporter/ical/releases/tag/4.2.8
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 207333 run on x86_64-linux 1

7 packages built:

darwin.builder
home-assistant-component-tests.google
home-assistant-component-tests.local_calendar
python310Packages.gcal-sync
python310Packages.ical
python39Packages.gcal-sync
python39Packages.ical


Update Debugger.php

complete replacement of var_dump() with @debug() in blade templates.

Hey @9585999, just curious why you closed it?
There is a default for @debug as is though, is that what you were trying to accomplish with the revised code?

@darrenjacoby Sometimes it becomes necessary to use the template blade var_dump(), and do it all the time through @php(var_dump($data)) not very convenient, much more convenient byloby via @debug($data), but the proposed solution is not finalized ...

@9585999 how would that differ from @debug('dump') ? It's also a var_dump.

@darrenjacoby For example, if I use WP_Query, I often use var_dump($query) ...

OK, so you're just trying to var_dump the Controller data, is that correct?

@debug() has its own options, dump, hierarchy, controller, they work well, I do not see anything wrong with the fact that the @debug() directive can perform the usual var_dump() if necessary ...


improve the navbar section

please assign this to me

@vishanurag

Hello PA
i really like this project i am fixing the issue please sir assign me this issue

@vishanurag please assign this to me


feat: set config file permissions to 0o600 on unix

This ensures credentials/auth tokens cannot be retrieved by other users.
I have little experience with Rust, especially with taking cross-platform into account, so I hope I did it right 😅

Thank you!


Ss3

A quick transformation to be ss3 compatible
#1

@mfendeksilverstripe Fixed bug and did tests for ss3.

@mfendeksilverstripe Did you get a change to check it out?

@sanderha SS3 is now supported. See tag release 1.0.0. Thanks for help.


Add python typing declarations

Added python typing to the interfaces.  @ModeSevenIndustrialSolutions has helped add mypy rules and pre-commits to other repos.  Could be time to bring this repo into the fold.

@ModeSevenIndustrialSolutions can you help get this moving?

And relatedly, sort whether we are supposed to create a py.typed file, or whether some action within pyproject.toml is supposed to create such.


Crash & Potential Import Issue

This is either a question or a bug report, I'm not sure which one.
XCode 11.2 GE Swift 5.1.1
Crash on this line:
        guard let items = tabBar.items as? [RAMAnimatedTabBarItem] else {
            fatalError("items must inherit RAMAnimatedTabBarItem")
        }

I've tried making my tab bar items in the storyboard derive from RAMAnimatedTabBarItem, and it doesn't auto-complete in the storyboard, which is odd. I see this failing on the fatalError line.
I've also tried setting the subclass in the storyboard to a custom class deriving from RAMAnimatedTabBarItem and that doesn't do the trick either.
I've followed the standard carthage setup instructions as I've done with other libraries, and compared my storyboard setup to the demo application, and I'm still not sure what's up.
Thanks for any help or feedback.

Seemed that importing this library as a swift package and restarting xcode did the trick. I know it works in the storyboard now because it auto-completes, and selects the imported module.


error when used with next.js

error when used with next.js
Error: listen EADDRINUSE: address already in use :::8081
    at Server.setupListenHandle [as _listen2] (net.js:1309:16)
    at listenInCluster (net.js:1357:12)
    at Server.listen (net.js:1445:7)
    at Function.listen (/Users/toan/Desktop/frontend/story-react/node_modules/express/lib/application.js:618:24)
    at module.exports (/Users/toan/Desktop/frontend/story-react/node_modules/webpack-monitor/utils/server.js:24:7)
    at /Users/toan/Desktop/frontend/story-react/node_modules/webpack-monitor/monitor.js:127:34
    at /Users/toan/Desktop/frontend/story-react/node_modules/graceful-fs/graceful-fs.js:61:14
    at FSReqCallback.oncomplete (fs.js:154:23)
Emitted 'error' event on Server instance at:
    at emitErrorNT (net.js:1336:8)
    at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  code: 'EADDRINUSE',
  errno: 'EADDRINUSE',
  syscall: 'listen',
  address: '::',
  port: 8081
}
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Did you tried to change port option?
new WebpackMonitor({
  port: 3232,
})```


Reimplement deserializer to work with const / immutable

Related to https://github.com/bpfkorea/agora/issues/203

Fixed in https://github.com/bpfkorea/agora/pull/603


⚠ ClamAV has degraded performance

In 9d10614, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 614 ms

Resolved: ClamAV performance has improved in c7cc5cb.


Converts the current speed if unit is "mi"

Adds a line to convert the current speed from KPH to MPH if the unit is "mi".
Issue #300

Created PR #301 to resolve issue with format.


[WIP] Logs and Receipts

Ayrat, looking awesome. I've been waiting so long for us to implement the bloom filters!
One quick question:
Do you think using a binary could be faster than a list in this instance? I'm just thinking that List.update_at/3 (or its kin) are potentially going to be O(n) time operations when we could potentially use a data structure that's O(1) for this operation. That said, binaries might not be as good as I first thought since setting a bit at a position is a bit complicated, e.g.: <<a::bitstring-size(start), _::1, b::bitstring>> = bloom_filter; bloom_filter_updated = a <> <<1::1>> <> b. I'm not sure the run-time complexity of that operation.

@hayesgm I will try to benchmark binary vs list usage speed


contextTypes location no longer works

contextTypes: {
  location: React.PropTypes.object
},
```
as described on https://github.com/rackt/react-router/blob/master/UPGRADE_GUIDE.md no longer seems to work in v1.0.0-rc2. `this.context.location` is `undefined`

I'm currently upgrading to react 0.14, so it's possible something else has triggered this issue, I haven't made a reduced testcase yet.

Looks like I hit the parent/owner context change in 0.14. Not a react-router bug.

@esseb could you elaborate more for the next person going through the upgrade process?

I hit the problem when I was using https://github.com/davidtheclark/react-aria-modal and passed a component using ´contextTypes: { location: React.PropTypes.object }´ to show in the dialog.
I haven't had time to investigate the issue enough to report a bug in ´react-aria-modal´ yet, but I suspect the way ´react-aria-modal´ uses ´react-displace´ to render the dialog's content elsewhere in the DOM might be the issue. I worked around the issue in my project by using another modal component.

@esseb
You need to use a pattern like https://github.com/react-bootstrap/react-overlays/blob/v0.5.0/src/Portal.js#L66-L68 to properly propagate context into the modal.
I would recommend switching to an actively maintained library like react-overlays or React-Bootstrap for your modal needs.

@taion thanks, that sounds useful.
I used react-aria-modal because I needed an accessible dialog. I ended up rolling my own simple component instead. I'll check out https://github.com/react-bootstrap/react-overlays next time I need one, although I can't see that it has any aria attributes even though it claims to have them.


Proposal for generalized tracers

Here's a proposal for the implementation of generalized tracers (the second task in issue #511). Comments from @elisachisari @elikrause @jablazek @tilmantroester @beckermr @slosar and/or @joezuntz would be useful. Apologies for the long issue!
Setup and definitions
Start by interpreting a tracer as a given projected quantity in the sky:

here  is the projected quantity,  is the corresponding 3D quantity and  is what I'll call the tracer's radial kernel. This setup should be enough to describe the vast majority of 2D quantities we'll be interested in in DESC and future CMB/radio experiments (see one exception below).
In this case, the angular power spectrum of  crossed with a similar projected quantity  will be given by:

where  is the power spectrum of the two 3D quantities:
,
and I haven't applied the Limber approximation yet.
Applying it, we obtain:

or, in terms of :
.
Transfer functions and ell-factors
OK, so using the notation above, and since we have already implemented the generalized power spectrum (Pk2D) objects, a very minimal implementation of a generalized tracer would be to define a tracer as an object that essentially carries around a radial kernel , and users would have to define those on the one hand, and the corresponding  for any pair of tracers they want to correlate as a Pk2D object, and then pass them to ccl.angular_cl. I think this is a good approach in certain cases (e.g. this is what we're doing for halo-model power spectra in the HSC analysis project). In many very common situations, however, this is going to be a bit impractical.
In many situations, the 3D quantities associated to our tracers will be related to a fundamental quantity such as the matter overdensity  through a simple linear transfer function . Furthermore, in many cases these are factorizable , so that the 3D power spectrum is .
A few examples:

Galaxy clustering with linear bias: .
Cosmic shear: .
CMB lensing: .
IAs within the L-NLA model:
Magnification bias:

Here

and
.
Note that there is an obvious degeneracy between the radial kernel and the redshift-dependent part of the transfer function, but it'll be up to the user to decide where to put things.
Finally, some of these tracers take an additional multiplicative factor depending only on , coming from different types of second-order derivatives of the angles. I'll call these factors . For the tracers above these are:

and
.
Concrete proposal for generalized tracers
A generalized tracer will be defined by three quantities:

A radial kernel . I.e. a 1D function of the radial coordinates (distance or redshift). This will be provided as a python function or as a pair of arrays to be interpolated.
A transfer function . I.e. a 2D function of k and z. This will be provided as a python function or as a set of arrays. We will also support the case where this function is factorizable, since initializing 1D splines is much faster than 2D ones. By default, this transfer function will be just 1.
An ell-dependent prefactor .
Tracers will also have an addition operation so you can generate  new tracers by adding basic ones. E.g. our current "number counts" tracer is an addition of the galaxy density, magnification and RSD tracers. Our "weak lensing" tracer is an addition of the shear and IA tracers above.
We will provide functions to initialize the set of basic tracers that are currently supported in the library (number counts, weak lensing and CMB lensing) without breaking the python API.

I think, in combination with the generalized power spectrum structures currently implemented in CCL, this covers the vast majority of scenarios we're envisaging (the current implementation, PT and halo model). One case that is not covered by this is the RSD contribution, but we can create one special tracer for that.
Thoughts?

I’ll need to go through the math in more detail when I am not on my phone. However the general scheme and api looks fine. My only ask is that we think now about how to do the RSD stuff with an api that is the same or as close as possible. I don’t want to break our apis or have to make a new one yet again.

Thanks Matt. I agree and I think it's actually doable: you just add a flag to all tracers that determine what order a derivative of the Bessel functions they should be integrated with (it's zero with most tracers, but 2 for RSD - and 1 for some irrelevant relativistic effects I haven't added above).
Oh, and I should also add, my plan is for most of this to live in python and for the C components to be mostly a bunch of containers for splines and integration functions

Sounds good. I think that this is a place where an almost pure c implementation might be preferable. We probably should avoid c calling python functions if we can.

I want the infrastructure to be there, but for the specifics to live in python (e.g. there'll be ClTracer structures in C holding generic implementations of all of the above, but the implementation of e.g. linear bias and NumberCountTracer objects will only live in python)

Yup. We don't need to have a specific linear bias model in this repo. We can basically leave the API we have now in place where the function only accepts an array in z.

This is great, really really great.
A few thoughts:

The derivative of Bessel function is a very good solution that puts RSD on the same footing. And we might eventually try to do some GR correction
This is all for scalar functions, yes? Lensing here is E-modes, right?
T here is specified as: i) function (i.e. lambda form or python function) T(k,z); ii) functions K(k), Z(z); iii) tabulated K(k), Z(z), right? Do we need iii, isn't it trivial for user to wrap in interp1d or something?
What about the cases where I have my own P(k). We had these in the past. I could in the present scheme just generate K(k) = P_mine(k)/P_dm(k), but looks really hackish -- couldn't you also give a function of P(k,z) in case you want to use something for youself. For example, a no-wiggle BAO? Of 2-halo contribution to the PS?  You could argue you don't need anything else then, but I object -- if nothing else for code readability sake it is better to have user specify T or K/Z in majority of cases.
How does this interact with with the non-Limber code we have for large scales?

Thanks @slosar

The derivative of Bessel function is a very good solution that puts RSD on the same footing. And we might eventually try to do some GR correction

Yes, exactly! I forgot to mention those.

This is all for scalar functions, yes? Lensing here is E-modes, right?

Correct.

T here is specified as: i) function (i.e. lambda form or python function) T(k,z); ii) functions K(k), Z(z); iii) tabulated K(k), Z(z), right? Do we need iii, isn't it trivial for user to wrap in interp1d or something?

All 3, and I'd add iv) tabulated T(k,z). I'd like to support the tabulated option, since, if the user knows that whatever sampling they have is sufficient, then we don't need to resample those functions (which we need to do to pass them into python) and they can save time.

What about the cases where I have my own P(k)...

Yes, this will still be possible through the existing Pk2D class. Basically, to compute an angular power spectrum you'll need to pass two of the new tracers and a Pk2D (which will default to the halofit matter power spectrum if unspecified).

How does this interact with with the non-Limber code we have for large scales?

Yes, good. Whatever non-Limber implementation we use will need to solve
 (with derivatives of j_ell if needed). Currently Angpow doesn't do this in all generality, so we'll need to think about how to make it do so (or implement something else).

It would be useful to ask authors of angpow how difficult would it be for them to do this.
There is also this https://arxiv.org/pdf/1705.05022, which I think should be straighforwardly generalizable to this setup.

Good point @slosar , I'll ping them through the ongoing discussion in #584
Yes, I'd like to have the FFTLog-based algorithm implemented in CCL

Good point @slosar , I'll ping them through the ongoing discussion in #584
Yes, I'd like to have the FFTLog-based algorithm implemented in CCL

H!
First let us remind the reformulation of the Cell integral according to Angpow current formula. Below the first line is just a C&P of the @slosar above equation, while the second is the formulation according to https://arxiv.org/pdf/1701.03592.pdf if one use the \chi formulation instead of the redshift one:

In Angpow terminology the function f_\ell(k,\chi) (or f_\ell(k,z) ) is an "integrand" where \chi (or z) is fixed during the k-integration. Then the d\chi d\chi^\prime double integration is performed using a simple 2D-quadrature. So, there is a priori no problem to perform Angpow integration using the new schema. Note however that the  f_\ell(k,\chi) formulation may be more in the spirit of a generalized tracer function : it can include different bias functions, j_\ell higher order derivatives...

@jecampagne OK, great,thanks! It seems the formalism is then applicable to angpow

@jecampagne OK, great,thanks! It seems the formalism is then applicable to angpow

Don't you think the "f_\ell(k,\chi)" more flexible? One not only can provide the different contributions as density, rsd, lensing..., but one also can
consider different tracer, as well as galaxy species (ie. with different biais functions as in https://arxiv.org/pdf/1309.1321.pdf

I'd rather not have to deal with 3D splines, since those will be complicated and slow to initialize. But we can definitely code things around angpow in a way that the different contributions are expressed as an f_ell(k,chi) transfer function, that's not a problem).
The framework above is also able to incorporate the freedom you're referring to.

Structure looks good to me. It looks like the tracer definition will easily allow user defined P(k,z) by defaulting the transfer function to 1.
On the topic of B modes - this is an easy generalization (e.g. for IA)?
On the topic of non-limber: it looks like angpow may be well-suited for the general P(k,z) case. For cases where the k and z dependencies factorize, FFT methods should be faster. Xiao Fang has one in development that seems to work well (in python, and maybe eventually C). I think that Antonino Troja is implementing the Assassi method in C++.

@jablazek how you decouple z (or chi) and k, as you have to deal with j_\ell(k r(z)) or j_\ell(k chi) and possibly its derivatives ?

@jecampagne I believe @jablazek is referring to the prefactor multiplying the Bessel functions (what I've called "transfer functions" above)
@jablazek good to know that this is OK. I think it should be straightforward to include B-mode spectra in this formalism.

@jecampagne : maybe I've misunderstood your question, but I think the issue is how efficient it is to evaluate eq 3.5 of https://arxiv.org/pdf/1705.05022.pdf. If P(k,chi1,chi2) is simply P(k)F(chi1,chi2), then the c_n coefficients can be evaluated once with a single FFT, rather than requiring a new FFT at each step in the integrals over chi.

@jablazek Ok I see your point thanks for the ref. In Angpow we also split the P(k,z) if it factorize in P(k)G(z) and put the G(z) with the W(z) function, but you're right we use 3C-algo for f_ell(k,z) = k Sqrt(P(k)) j_ell(kr(z)), but mind that now some people want to deal with b(k,z) bias functions...

Ok, to recap this discussion: we're going with damonge's plan, but keep sufficient flexibility that one could call pluggable non-limber approximations if they are appropriate (based on factorizability, etc.)

this is done IIUIC, so closing.


The proposal to use the definition labels of attribute for DynamicModel.

I use DynamicModel for creating dynamic fields with client validation, therefore i need definition labels of attributes.
Example code:
class DynamicModel extends \yii\base\DynamicModel
{
    private $_attributeLabels;

    public function defineAttribute($name, $value = null)
    {
        $this->_attributes[$name] = $value;
        return $this;
    }

    public function defineLabel($name, $label)
    {
        $this->_attributeLabels[$name] = $label;
    }

    public function attributeLabels()
    {
        return $this->_attributeLabels;
    }
}

+1 for ability to setting attributeLabels. Sometimes we creates forms with mixed models. DynamicModel perfect works in frontend with ActiveForm It lacks only the correct validation messages.

+1

+1

+1 use dynamic model is a quicker way to make small model than writing regular model class. My use case is search model with the only attribute 'query' and string length validator. I want to set label for this attribute, but I can't.


memory leak in upnpapi.c ?

Since I'm moved to recent 1.14 (I used to be on  very old branch 1.6.19), I've observed a big memory leak at every action sent. Now, I'm very confused by this code in upnpapi.c
	case ACTION: {
		UpnpActionComplete *Evt = UpnpActionComplete_new();
		IXML_Document *actionResult = NULL;
		int errCode = SoapSendAction(Param->Url,
			Param->ServiceType,
			Param->Act,
			&actionResult);
		UpnpActionComplete_set_ErrCode(Evt, errCode);
		UpnpActionComplete_set_ActionRequest(Evt, Param->Act);
		UpnpActionComplete_set_ActionResult(Evt, actionResult);
		UpnpActionComplete_strcpy_CtrlUrl(Evt, Param->Url);
		Param->Fun(UPNP_CONTROL_ACTION_COMPLETE, Evt, Param->Cookie);
		free(Param);
		UpnpActionComplete_delete(Evt);
		break;
	}

It used to be, in previous version
	case ACTION: {
		struct Upnp_Action_Complete Evt;
		memset(&Evt, 0, sizeof(Evt));
		Evt.ActionResult = NULL;
		Evt.ErrCode = SoapSendAction(
			Param->Url,
			Param->ServiceType,
			Param->Act, &Evt.ActionResult);
		Evt.ActionRequest = Param->Act;
		strncpy(Evt.CtrlUrl, Param->Url, sizeof(Evt.CtrlUrl) - 1);
		Param->Fun(UPNP_CONTROL_ACTION_COMPLETE, &Evt, Param->Cookie);
		ixmlDocument_free(Evt.ActionRequest);
		ixmlDocument_free(Evt.ActionResult);
		free(Param);
		break;
	}

Now, I've checked the examples and neither the request noe the action are freed by the code, who receives the ACTION_COMPLETE, so it does not seem to be its duty. Obviously then this memory leaks as nobody releases it. Am I missing something obvious?
Also, here is the generated code for the ActionComplete_delete, which obviously does not free Result or Request. I don't know how it is supposed to be generated, could not find a rule in configure/makefiles
void UpnpActionComplete_delete(UpnpActionComplete *q)
{
	struct s_UpnpActionComplete *p = (struct s_UpnpActionComplete *)q;

	if (!p)
		return;

	p->m_ActionResult = 0;
	p->m_ActionRequest = 0;
	UpnpString_delete(p->m_CtrlUrl);
	p->m_CtrlUrl = 0;
	p->m_ErrCode = 0;

	free(p);
}

And my configure line is
 ./configure --disable-blocking-tcp_connections --enable-static --disable-shared --disable-samples --disable-ipv6

Just with a short glance:
the ACTION case is called in ´upnpapi.c´ by two functions: UpnpSendActionAsync() and UpnpSendActionExAsync(). Both functions have an argument Upnp_FunPtr Fun that is documented in upnp.h with

/*! [in] Pointer to a callback function to be invoked when the operation completes. */

Is it possible that this callback function frees the action?

It can definitely but it was not the case in 1.6.x and more important it's not what the sample code for tv control point does. So it feels like something is wrong with the generated code, although the generation is not part of the build.

Sorry for asking but I try to understand it.

it's not what the sample code for tv control point does.

What does it do and where? What should it do?

So it feels like something is wrong with the generated code, although the generation is not part of the build.

What is the generated code? The library? And why isn't it part of the build? What build? The library? The sample code? The generated code isn't part of one of them?

No worries. If you look at the UPnP sample code, the TV control point,the event handler when receiving an ACTION_COMPLETE, simply prints some information, but does not free anything.
If you look at api/UPnPActionComplete.c which contains the UpnpActionComplete_delete function that is the cleanup code called in upnpapi.c (see my first post), the header of that file says it is generated code, and it says look for generator,c

Ah, the code generator. Maybe @mrjimenez can enlighten it?

Hi @ingo-h ,
Part of the API code is automatically generated by upnp/generator/generator.c. This file takes care of generating the boiler plate code. I don't think that this is the reason of the leak.
@philippe44 , you might have found a leak, and indeed, this is a very cumbersome code. The relevant code parts are the following (e.g. in UpnpSubscribeAsync())
	TPJobInit(&job, (start_routine)UpnpThreadDistribution, Param);
	TPJobSetFreeFunction(&job, (free_routine)free);
	TPJobSetPriority(&job, MED_PRIORITY);

Notice that UpnpThreadDistribution is a thread, and Param is malloc'ed here. Since we don't actually know when the thread will be finished, the following line sets the routine that will free Param. In simple cases, this is just free(), but there might be some more complicated cases like free_upnp_timeout() or free_notify_struct().
If you are wiling to follow the rabbit down that hole, you can probably find the corresponding TPJobInit() that set that thread to run and the TPJobSetFreeFunction() that follows it. Since this parameter seems to never be NULL, the possible explanation is that one or more of these functions are not freeing everything they must:

free_upnp_timeout()
free_notify_struct()
free_handle_request_arg()
free_ssdp_event_handler_data()
Or even just free() in case there should be more stuff than just the main pointer to be free'd.

Regards,
Marcelo.

Hi Marcelo - I'm a bit confused by your answer because that leak seems to be simply that the code that frees the action Request & Result is missing. It was in 1.6, as you can see in my first post.
Param which is indeed allocated when the job is submitted is freed in the ACTION response, as expected. That code is in UpnpThreadDistribution (in upnpapi.c) which used to explicitly free the action request & result, but now does not anymore as it seems to delegate that to the cleanup code UpnpActionComplete_delete which is generated but misses the free items.
So we should either change the generated code or move back to explicitly free items. I just don't know how and where generator.c creates UpnpActionComplete.c

Hi Philippe,
From 1.8 on, the lib got radically different. Action Request and Result are suposed to be "weak" pointers (I know, this is C, but lets stick to the concept), so it is the responsibility of whoever alloc'd them to free them. Evt->ActionRequest is a copy of Param->Act:
UpnpActionComplete_set_ActionRequest(Evt, Param->Act);

Param->Act has been malloc'd when Param was malloc'd since it is one of its members, look at UpnpNonblockParam in upnpapi.h. So it is free'd when Param is freed.
On the other hand, you seem to be correct in the case of ActionResult, since it seems to be alloc'd somewhere inside SoapSendAction(). In that case, a free(actionResult) is missing just before free(Param).
In fact, free(Param) itself is very suspicious, since it will probably incurr in a double free, since freeing Param is the job of the FreeFunction
To sum up, there seems to be two problems:

actionResult is leaking;
Param will be double freed.

Please, feel free to disagree, I am trying to make sense of the code too.
Regards,
Marcelo.

For 2. I've never seen a double free and I make a very intensive use of libupnp (at least as control point). Intensive means 10+ clients sending Actions every second or less. That's why the leak is catastrophic for me, but I'd think I'd have seen a double free.  Now, it seems to me that the "free" function pointer to free the arg passed at job's creation is only used when the thread is shutdown, not otherwise. So I'd say that free(Param) is expected.
Now, we should free other params in the "cleaner" method in UPnPActionComplete.c but for completion, the "free" function pointer passed in UpnpSendActionAsync is very wrong, it should be the "cleaner", no a generic "free".
BTW, I have also seen other leaks but I first concentrated on this one. I did not use valgrind on my app when I moved from 1.6 to 1.14 and I should have. Do you run such tests on your side?

More reading seems to indicate that WorkerThread should, after it has called the job's function, call it's cleanup function as well if you want to apply the principle that these pointers are "weak" and should not be managed by the job function itself but set when the job function is set. As said above, would probably be useful to know what was the intent of whoever wrote that code in the first place.

For 2. I've never seen a double free and I make a very intensive use of libupnp (at least as control point). Intensive means 10+ clients sending Actions every second or less. That's why the leak is catastrophic for me, but I'd think I'd have seen a double free. Now, it seems to me that the "free" function pointer to free the arg passed at job's creation is only used when the thread is shutdown, not otherwise. So I'd say that free(Param) is expected or ...
But the "free" function of the job should be more than free() and should check and free Param->Act as you said. In addition, because it does not seem to be used when the job terminates successfully, it is only used when the job is shutdown, the Param and Param->Act should be freed when the action is completed together with ActionResult which is allocated locally - or- we use the job's free() function all the time. So it seems a bit messy ...

100% agree.

BTW, I have also seen other leaks but I first concentrated on this one. I did not use valgrind on my app when I moved from 1.6 to 1.14 and I should have. Do you run such tests on your side?

I have, but a long time ago, not currently.

[edit]: looking at the free_func() use in TimerPool, it feels to me that ThreadPool was not finished. Do you remember when and who did that? Can't find it easily from the blame record.

That code does not seem to be from the original Intel library. I am not sure, but I think this code is from the creator of this project in SourceForge (pupnp), but he left soon after the project creation and never showed up again. At that time, pthread was not in glibc (yes, this is old code).
So, from your experience, we never get a double free. So we could leave the free(Parm) call. But it seems like we must do a ixmlDocument_free(actionResult); just before, what do you think? Can you test it?
Regards,
Marcelo.

I would add a free ActionResult indeed when the action is done but then I think I would try to use the job's free_func as it is intended and call it after the job has been executed, like is is in timer jobs.
Then I would modify the free_func for actions because it's necessary anyway when jobs are shutdown, otherwise we don't have a proper cleanup.
I can give that a try and see how it looks, it does not seem that there are so many cases to handle.
Can you tell me how the code in UPnPActionComplete.c is generated?

I would add a free ActionResult indeed when the action is done but then I think I would try to use the job's free_func as it is intended and call it after the job has been executed, like is is in timer jobs.
Then I would modify the free_func for actions because it's necessary anyway when jobs are shutdown, otherwise we don't have a proper cleanup.
I can give that a try and see how it looks, it does not seem that there are so many cases to handle.
Can you tell me how the code in UPnPActionComplete.c is generated?

The generation is done in generator/generator.c, there is not much to see here, it is just boiler plate code, that in the 1.4.x branch was repeated to exhaustion. The idea was to introduce opaque structures and a template like code generation to limit the propagation of silly bugs. If you want, you can change it for sure, but it is mostly uninteresting. The next logical step with this library would be to change it to C++, and in this case the generator code would be wiped out.
cd ~/{some path}/upnp/generator
./complile.sh

The compile.sh script will copy the files to the proper places. The class definitions are declarative and quite self explanatory (INIT_MEMBER, INIT_CLASS). There is even a TestClass. The rest of the program is just a file generation program, one file for each class.
If you want to extend that functionality, I think you should hand create an extended class UPnPActionCompleteEx.c that uses the UPnPActionComplete.c class  and extends its functionality. Just my two cents, you are free to do whatever you prefer.
Regards,
Marcelo.


Copy inspector to all nodes before upgrade

The inspector service needs to be updated and restarted before upgrading any of the individual nodes.

LGTM!


Where is all tests?

You said it is TDD, but where are all tests? This is strange

104 now

You said it is TDD, but where are all tests? This is strange

104 is enough


Problems with BD mysql connection

My connection to the database that comes with default "traccar" works, but when setting up my BD mysql does not work.
And I created my database that is called "traccar"
<entry key='database.driver'>com.mysql.jdbc.Driver</entry>
<entry key='database.url'>jdbc:mysql://localhost:3306/traccar?allowMultiQueries=true&autoReconnect=true&useUnicode=yes&characterEncoding=UTF-8&sessionVariables=sql_mode=''</entry>
<entry key='database.user'>root</entry>
<entry key='database.password'>12345</entry>

BD?
What is the error message in the logs?

Sorry for the delay here more detail of the fault.
wrapper.log.20170508
INEST|2846/0|Service traccar|17-05-08 19:01:59|        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
FINEST|2846/0|Service traccar|17-05-08 19:01:59|        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
FINEST|2846/0|Service traccar|17-05-08 19:01:59|        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
FINEST|2846/0|Service traccar|17-05-08 19:01:59|        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
FINEST|2846/0|Service traccar|17-05-08 19:01:59|        at java.net.Socket.connect(Socket.java:576)
FINEST|2846/0|Service traccar|17-05-08 19:01:59|        at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:211)
FINEST|2846/0|Service traccar|17-05-08 19:01:59|        at com.mysql.jdbc.MysqlIO.(MysqlIO.java:300)
FINEST|2846/0|Service traccar|17-05-08 19:01:59|        ... 30 more
INFO|wrapper|Service traccar|17-05-08 19:01:59|waitpid 2846 59136
INFO|wrapper|Service traccar|17-05-08 19:02:00|exit code posix process: 59136 application: 0
tracker-server.log
2017-05-08 18:52:31  INFO: Operating system name: Linux version: 3.2.0-4-686-pae architecture: i386
2017-05-08 18:52:31  INFO: Java runtime name: OpenJDK Client VM vendor: Oracle Corporation version: 24.121-b00
2017-05-08 18:52:31  INFO: Memory limit heap: 494mb non-heap: 118mb
2017-05-08 18:52:31  INFO: Character encoding: UTF-8 charset: UTF-8
2017-05-08 18:52:31  INFO: Version: 3.11-SNAPSHOT
2017-05-08 19:01:53  INFO: Operating system name: Linux version: 3.2.0-4-686-pae architecture: i386
2017-05-08 19:01:53  INFO: Java runtime name: OpenJDK Client VM vendor: Oracle Corporation version: 24.121-b00
2017-05-08 19:01:53  INFO: Memory limit heap: 494mb non-heap: 118mb
2017-05-08 19:01:53  INFO: Character encoding: UTF-8 charset: UTF-8
2017-05-08 19:01:53  INFO: Version: 3.11-SNAPSHOT
log of apache2 error.log
[Mon May 08 22:10:00.535345 2017] [proxy_http:error] [pid 2929] [client <IP_ADDRESS>:32137] AH01114: HTTP: f             ailed to make connection to backend: <IP_ADDRESS>
[Mon May 08 22:10:00.912692 2017] [proxy:error] [pid 3312] (111)Connection refused: AH00957: HTTP: attempt to c             onnect to <IP_ADDRESS>:8082 (<IP_ADDRESS>) failed
[Mon May 08 22:10:00.912735 2017] [proxy:error] [pid 3312] AH00959: ap_proxy_connect_backend disabling worker f             or (<IP_ADDRESS>) for 60s
[Mon May 08 22:10:00.912746 2017] [proxy_http:error] [pid 3312] [client <IP_ADDRESS>:24151] AH01114: HTTP: f             ailed to make connection to backend: <IP_ADDRESS>, referer: https://https://www.dominio.com/
[Mon May 08 22:16:48.058221 2017] [proxy:error] [pid 3314] (111)Connection refused: AH00957: HTTP: attempt to c             onnect to <IP_ADDRESS>:8082 (<IP_ADDRESS>) failed
[Mon May 08 22:16:48.058289 2017] [proxy:error] [pid 3314] AH00959: ap_proxy_connect_backend disabling worker f             or (<IP_ADDRESS>) for 60s
[Mon May 08 22:16:48.058308 2017] [proxy_http:error] [pid 3314] [client <IP_ADDRESS>:32044] AH01114: HTTP: f             ailed to make connection to backend: <IP_ADDRESS>
[Mon May 08 22:16:48.309936 2017] [proxy:error] [pid 2928] (111)Connection refused: AH00957: HTTP: attempt to c             onnect to <IP_ADDRESS>:8082 (<IP_ADDRESS>) failed
[Mon May 08 22:16:48.309987 2017] [proxy:error] [pid 2928] AH00959: ap_proxy_connect_backend disabling worker f             or (<IP_ADDRESS>) for 60s
[Mon May 08 22:16:48.310004 2017] [proxy_http:error] [pid 2928] [client <IP_ADDRESS>:41347] AH01114: HTTP: f             ailed to make connection to backend: <IP_ADDRESS>, referer: https://www.dominio.com
I look forward to any help.
Clarifying that if I work with the database that brings "Traccar".

Not sure how Apache log is relevant here and your wrapper log is cut off, so it doesn't include the actual error message.

zadhkiel, Were you able to resolve this issue? Kindly share your solution. I am also stock with a similar issue.


Support for cross-schema reference during migration

Referencing a different schema (that belongs to the same DB) in a migration file, throws an error.
Example:
Given the following db schema in Postgres db.
Schema 1: account
Table: user
Schema 2: security
Table: authorized_devices
An error happen when trying to add a FK in the security.authorized_devices table referring to account.user.id column with the following script:
{
    "name": "add_fk_userid_authorized_devices",
    "operations": [
      {
        "alter_column": {
            "table": "authorized_devices",
            "column": "user_id",
            "references": {
                "name": "fk_user_id",
                "table": "account.user",
                "column": "id",
                "on_delete": "NO ACTION"
            }
        }
      }
    ]
  }

I also tried adding this cross-schema reference in the table creation migration file with no success.
So, is there a way of making this cross-schema reference to work in the current pgroll version?

Hi @lleopoldino, thanks for opening the issue.
Cross schema FKs aren't possible right now with pgroll unfortunately. Each schema is regarded in isolation with regard to versioned migrations currently.
I think this is a useful feature though, and I'll add this issue to our v1 milestone.


Use newer foreman apipie gem

A few of the data models that we need are not available in the old foreman_api gem.
gem apipie-binding is the official foreman gem and supports all the latest data models
/cc @gmcculloug @brandondunne

The build team is OK with this Gemfile change. @JPrause Please confirm all needed gems before the next 5.3 build.

Looks good, but can you explain the caching?  It's just new to me.

the old gem saved the server's api docs in the gem itself.
the new code saves the response from the server to the disk.
(the logic to decide to download the new stuff is pretty cool.)

@Fryguy cool. I moved that into rail's tmp


Improved recompilation times by utilizing CCache.

Utilizing CCache is especially useful when one realizes he misses a feature and so recompiles the tool with that feature enabled. Or when one realizes he has accidentially enabled a feature unavalable on his platform, so compilation fails and one has to recompile. In that case without CCache CMake has to cause recompile from scratch since it alters the preprocessor. CCache is capable to detect the recompilation from scratch is not needed and to reuse the suitable artifacts from previous builds.

Hi @KOLANICH, thanks for submitting a PR!
Historically, we did have ccache enabled by default if it was installed. I think there were some issues with using ccache with hexagon, so it was disabled in #11189. If you want to use cmake with your builds you can run cmake -DCMAKE_CXX_COMPILER_LAUNCHER=ccache ... when you configure cmake. If you'd like to try and get it enabled by default for everyone using TVM, you can try adding these lines https://github.com/apache/tvm/pull/11189/files#diff-1e7de1ae2d059d21e1dd75d5812d5a34b0222cef273b7c3a2af62eb747f9d20aL769-L796 back in and seeing if hexagon will still build.

Actually I've created a PR to re-enable ccache here: #12839

If you want to use cmake with your builds you can run cmake -DCMAKE_CXX_COMPILER_LAUNCHER=ccache ... when you configure cmake.

I have tried this first (but not when configuring, I have edited using cmake-gui), but I got some errors of interaction between CMake and ninja (that have forced me into cleaning CMake cacheand starting from scratch several times), so I resorted to this way.

Actually I've created a PR to re-enable ccache here: #12839

Thanks, I have left my comment there.

CMAKE_CXX_COMPILER_LAUNCHER

My bad, I have used CMAKE_CXX_COMPILER + CMAKE_CXX_FLAGS. Thanks for reminding me that var exists.


Native code-server mobile app using Node.js for Mobile Apps

Is there anything that’s stopping you from using https://github.com/JaneaSystems/nodejs-mobile to easily make a native code-server mobile app that will solve all the issues iPadOS and Android users are facing?

Not sure how that helps. code-server is still running remotely of course so we wouldn't benefit from nodejs on the mobile device.

@nhooyr I think you missed the point. It’s like Electron.js. Nothing would be running remotely.

That's not what it does. That's not allowed by the iOS App Store, you can only use webkit.
See https://code.janeasystems.com/nodejs-mobile

Its core component is a library - available for Android and iOS - that lets you add a Node.js background worker to any mobile app

Ah sorry I think you want to literally run code-server locally on the iPad? We'd still have to access it via webkit and so thing's would still break.

And of course you wouldn't have remote support as is.


[Proof of concept] Certificate handling in mTLS POP scenarios

Core Library
MSAL Node (@azure/msal-node)
Wrapper Library
Not Applicable
Public or Confidential Client?
Confidential
Description

var cca = ConfidentialClientApplicationBuilder.Create(clientID).WithCertificate(x509cert);
var result = cca.AcquireTokenForClient(scopes).WithMtlsProofOfPosession(); // request happens over mTLS

// Internally MSAL established mTLS connection to eSTS
// HttpClient httpClient = new HttpClient() { ClientCertificates = x509cert };

string token = result.AccessToken;

HttpRequest req = new HttpRequest("https://graph.com/user/me", new HttpHeader($"Authorization mtls_pop: {token}");
HttpClient httpClient = new HttpClient() { ClientCertificates = x509cert };

Q1: How are mTLS connections created in NodeJS? E.g. with fetch and vanilla http.
Q2: Are current cert formats supported by MSAL ok for this?
Q3: Linux and Windows differences.

const request: msal.ClientCredentialRequest = {
    scopes: ["https://graph.microsoft.com/.default"],
    clientCertificate: <client cert with valid file extension. see implementation below>,
    caCertificate: <CA cert with valid file extension. see implementation below>,
};

const confidentialClientApplication = new msal.ConfidentialClientApplication(clientConfig);
const response = await confidentialClientApplication.acquireTokenByClientCredential(request);

I worked with ChatGPT to cook up this implementation:
(assuming both cert types above were provided by the developer)
import { Agent } from 'https';
import { parse } from 'pkcs12'; // Assuming pkcs12 is used for parsing .pfx/.p12 files
/**
 * Detects certificate format based on the file extension.
 *
 * @param certInput - The certificate input data (Buffer or string).
 * @returns The format of the certificate as a string: 'pem', 'der', 'pfx', 'key', 'crt', 'p7b'.
 * @throws Error if the certificate format is unsupported or extension is missing.
 *
 * Supported formats:
 *  - 'pem' for PEM-encoded certificates and private keys (.pem, .crt, .p7b).
 *  - 'der' for binary encoded certificates (.der).
 *  - 'key' for private keys in PEM format (.key).
 *  - 'pfx' for PFX files (.p12, .pfx).
 *
 * Unsupported formats:
 *  - Java Keystore (.jks) and any other unknown formats.
 */
function detectCertFormat(certInput: string | Buffer): string {
  if (!certInput || !(typeof certInput === 'string' || Buffer.isBuffer(certInput))) {
    throw new Error('Invalid input: Certificate must be a string or buffer with a valid extension.');
  }

  const certExtension = (certInput as string).toLowerCase().split('.').pop(); // Extract the extension (assumed to be present)

  // If there's no extension, throw an error
  if (!certExtension || certExtension.trim() === '') {
    throw new Error('Certificate input must have a valid extension.');
  }

  // Check for known extensions and return the corresponding certificate format
  switch (certExtension) {
    case 'pem':
    case 'crt':
    case 'p7b':
      return 'pem';  // Return 'pem' for certificates in PEM format (.pem, .crt, .p7b)
    case 'der':
      return 'der';  // Return 'der' for binary encoded certificates (.der)
    case 'key':
      return 'key';  // Return 'key' for private keys in PEM format (.key)
    case 'pfx':
    case 'p12':
      return 'pfx';  // Return 'pfx' for PFX files (.p12, .pfx)
    default:
      throw new Error(`Unsupported certificate format: .${certExtension}`); // Throw error for unsupported formats
  }
}

/**
 * Loads a certificate (either client or CA) from input (either raw certificate or file path).
 *
 * @param certInput - The certificate input data (Buffer or string).
 * @param certPassword - Optional password for encrypted certificates (used for .pfx, .p12).
 * @returns The certificate in appropriate format (Buffer).
 * @throws Error if the certificate format is unsupported or there's an error in loading.
 *
 * Supported formats:
 *  - 'pem' for PEM-encoded certificates and private keys (.pem, .crt, .p7b).
 *  - 'der' for binary encoded certificates (.der).
 *  - 'key' for private keys in PEM format (.key).
 *  - 'pfx' for PFX files (.p12, .pfx).
 *
 * Unsupported formats include Java Keystore (.jks) and any other unknown formats.
 */
function loadCertificate(certInput: string | Buffer, certPassword?: string): Buffer {
  // Ensure proper buffer conversion, avoiding assumptions about encoding
  const certBuffer = Buffer.isBuffer(certInput) ? certInput : Buffer.from(certInput);

  const certFormat = detectCertFormat(certBuffer);

  switch (certFormat) {
    case 'pem':
    case 'key':
    case 'der':
      return certBuffer;  // Return raw buffer for these formats
    case 'pfx':
      if (!certPassword) {
        throw new Error('Password is required for PFX/P12 certificates'); // Password required for PFX certificates
      }
      return loadPfxCertificate(certBuffer, certPassword);  // Process PFX certificate with password
    default:
      throw new Error(`Unsupported certificate format: ${certFormat}`); // Throw error for unsupported formats
  }
}

/**
 * Loads a PFX certificate and returns the certificate data.
 *
 * @param certBuffer - The PFX certificate data (Buffer).
 * @param certPassword - The password for encrypted PFX certificates.
 * @returns The extracted certificate data (Buffer).
 * @throws Error if there's an error while processing the PFX certificate.
 */
function loadPfxCertificate(certBuffer: Buffer, certPassword: string): Buffer {
  try {
    const parsed = parse(certBuffer, certPassword); // Parse the PFX certificate using pkcs12
    return parsed.cert;  // Return the certificate data extracted from the PFX
  } catch (error) {
    throw new Error('Error processing PFX/P12 certificate: ' + error.message); // Handle error if PFX processing fails
  }
}

/**
 * Creates an HTTPS request with mutual TLS (mTLS) enabled using provided certificates.
 *
 * @param url - The target URL for the request.
 * @param certInput - The client certificate input (Buffer or string).
 *    - Supported extensions: `.pem`, `.crt`, `.p7b`, `.p12`, `.pfx`, `.key`, `.der` (client certificates).
 * @param caCertInput - The CA certificate input (Buffer or string).
 *    - Supported extensions: `.pem`, `.crt`, `.p7b`, `.der` (CA certificates).
 * @param certPassword - Optional password for encrypted client certificates (used for `.pfx`, `.p12`).
 *    - Required for `.pfx` and `.p12` certificates.
 * @param method - The HTTP method (e.g., `'GET'`, `'POST'`).
 * @param headers - Optional headers to include in the request.
 * @returns The response from the server.
 * @throws Error if there is a problem creating the request or if certificate loading fails.
 *    - If the client or CA certificate formats are unsupported (e.g., `.jks` or any unknown format).
 *    - If password is missing for encrypted `.pfx`/`.p12` certificates.
 */
async function makeSecureRequest(
  url: string,
  certInput: string | Buffer,
  caCertInput: string | Buffer,
  certPassword?: string,
  method: string = 'GET',
  headers: Record<string, string> = {}
): Promise<any> {
  try {
    // Load the client certificate
    const clientCert = loadCertificate(certInput, certPassword);
    // Load the CA certificate (no password required for CA certificate)
    const caCert = loadCertificate(caCertInput);

    // Create an HTTPS agent with the loaded certificates for mTLS
    const agentOptions: any = {
      cert: clientCert,
      ca: caCert,
      key: clientCert,  // Ensure this contains the private key or use an explicit key if necessary
      passphrase: certPassword,
    };

    const agent = new Agent(agentOptions);

    // Perform the fetch request using Node's native fetch API
    const response = await fetch(url, {
      method,
      headers,
      agent,  // Include the agent for mTLS authentication
    });

    return await response.json();  // Return the server's JSON response
  } catch (error) {
    console.error('Error in secure request:', error.stack);
    throw new Error(`Error making secure request: ${error.message}`); // Handle errors during the request
  }
}

Ok, so this code deals with all popular cert formats. That's great. But I don't get makeSecureRequest - what is the CA certificate?
And what about vanilla HTTP? Not a big deal, if you can integrate fetch though. We can block new features like mtls to fetch / higher version of node.

See explanation below. I've updated the code to include more descriptive comments that explain this more thoroughly.

The CA certificate is what the client and server trusts.
It will be used to verify the server's certificate during the TLS handshake.
The connection will fail if the server’s certificate is not signed by the trusted CA.

See explanation below. I've updated the code to account for self-signed certificates

Handling Self-Signed Certificates in mTLS:
Client Certificate: The client uses its own certificate (which might be self-signed) to authenticate to the server.
CA Certificate: In the case of a self-signed certificate, the server will need to trust the client's certificate. To achieve this, you would use the same certificate as both the client certificate and the CA certificate. This means that the CA (Certificate Authority) is effectively the client’s own certificate.

Re-writing fetch to use vanilla NodeJS's http functionality is trivial. It's not worth including it in the code above. It's minor changes. I think we're releasing a new major version of MSALJS soon - we can include mTLS for only this next version and above.

In Progress

In Progress


Added Support for EC2 Images (AMIs)

Alright, I went to resolve the conflicts and it merged those cloudanix files in the ec2-enhancements branch as well 🙈

I have created a new branch called aws-ec2-enhancements which is like a "fixed" version of this. So I'll open a PR from that and close this PR then.

I have created a new branch called aws-ec2-enhancements which is like a "fixed" version of this. So, you review and merge this PR. Whatever changes you suggest here, I'll do them in that branch as well and then once this PR is merged, I'll delete this branch.


Review page has very narrow first text column in Windows/chrome

Using: 7f9c04d7
Went through workflow for jscholarship only, uploaded two files. On review page, the first column is very narrow:

This needs to be fixed but not critical for user testing

This has already been fixed as part of another change

verified in 7f2a26bd


Rack::Session::Dalli connection pool

Hello, I'd like you use Rack::Session::Dalli in my Sinatra app running on Puma server in multithreading mode. How can I set a connection_pool size so it will not run in a single connection mode?
Thanks a lot

Closing as a duplicate with #562


iOS issues

Using just the plain output from liftoff and sending it to apple will generate a few errors, of which all of them are fairly easily fixed. I have pasted the error from Apple followed by the solution.
ERROR ITMS-4236: "Invalid value '0.0.1-SNAPSHOT' for bundle_short_version_string" at SoftwareAssets
robovm.properties
app.version=0.0.1
(remove all letters)
ERROR ITMS-90208: "Invalid Bundle. The bundle IOSLauncher.app does not support the minimum OS Version specified in the Info.plist."
<key>MinimumOSVersion</key>
<string>7.1.2</string>

I am not sure 7.1.2 is the correct to go with, but that is what I had in another project...
ERROR ITMS-90474: "Invalid Bundle. iPad Multitasking support requires these orientations: 'UIInterfaceOrientationPortrait,UIInterfaceOrientationPortraitUpsideDown,UIInterfaceOrientationLandscapeLeft,UIInterfaceOrientationLandscapeRight'. Found 'UIInterfaceOrientationPortrait,UIInterfaceOrientationLandscapeLeft,UIInterfaceOrientationLandscapeRight' in bundle 'com.trilligames.trillitest'."
https://www.badlogicgames.com/forum/viewtopic.php?t=27402
ERROR ITMS-90475: "Invalid Bundle. Your app supports Multitasking on iPad, so you must include the UILaunchStoryboardName key in your bundle, 'com.xxxxxx.xxx’. Learn more (https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW40)."
https://developer.apple.com/forums/thread/20405
WARNING ITMS-90025: "Missing recommended icon file. The bundle does not contain an app icon for iPhone / iPod Touch of exactly '120x120' pixels, in .png format for iOS versions >= 7.0. To support older versions of iOS, the icon may be required in the bundle outside of an asset catalog. Make sure the Info.plist file includes appropriate entries referencing the file. See https://developer.apple.com/documentation/bundleresources/information_property_list/user_interface"
https://appicon.co/
Generate icons there and follow general guidelines for how to add them (basically add result in ios/data/ and remove the old stuff)
Next two errors are the same problems.
WARNING ITMS-90026: "Missing recommended icon file. The bundle does not contain an app icon for iPad of exactly '152x152' pixels, in .png format for iOS versions >= 7.0. To support older operating systems, the icon may be required in the bundle outside of an asset catalog. Make sure the Info.plist file includes appropriate entries referencing the file. See https://developer.apple.com/documentation/bundleresources/information_property_list/user_interface"
WARNING ITMS-90026: "Missing recommended icon file. The bundle does not contain an app icon for iPad of exactly '76x76' pixels, in .png format for iOS versions >= 7.0. To support older operating systems, the icon may be required in the bundle outside of an asset catalog. Make sure the Info.plist file includes appropriate entries referencing the file. See https://developer.apple.com/documentation/bundleresources/information_property_list/user_interface"

Thanks so much! This really helps a lot. I guess I'll try to fix this using the steps you gave, and post a beta release here.

OK, sorry this took so long; I got stuck trying to figure out what to do with the iconset, so I just copied what gdx-setup does. The Info.plist is also now copied, and the robovm.properties shouldn't generate with any hyphens or letters now. Here's the latest "beta-ish" jar in a zip:
gdx-liftoff-<IP_ADDRESS>-SNAPSHOT.jar.zip . I think it should work better; I don't know if it's all the way to where it should be, yet.

I haven't had the time to test this, but just wanted to let you know that THIS version of gdx-liftoff-<IP_ADDRESS>-SNAPSHOT.jar works fine on osx! (As opposed to the one with same name in other ticket).
If I recall correctly, the gdx-setup way of handling icons was already outdated, and created issues with certain new Apple hardware. This is a bit of a blur, and I might confuse it with the splash screens, but that also needs updating. Maybe if you send me the biggest version of the icon that you have, then I can create a more modern version.
To really make this a sweet setup tool, one should be able to provide an image to liftoff, that then would create the correct icons and splashscreen for both iOS and Android and maybe even PC.

To really make this a sweet setup tool, one should be able to provide an image to liftoff, that then would create the correct icons and splashscreen for both iOS and Android and maybe even PC.

Oh, interesting idea.

Yeah, icons would be good. The only change between <IP_ADDRESS>-SNAPSHOT versions is a switch to libGDX 1.9.12-SNAPSHOT, which updates LWJGL3, and that breaks something. I think I need to post an issue on the libGDX repo; something is definitely broken on MacOS.

Oh, and as for the logo, is Adobe Illustrator's AI format OK? I tried to export as .svg but a lot of the image got messed up. There's 3 .ai files I used here:
liftoff-ai.zip
You probably don't need the logo for liftoff, and the libGDX branding info, like the logo, is available here.

It just depends on what icons you want liftoff to produce. Realistically they will all be replaced anyway with the real game icons later, so these will just be placeholders. Ideally the image then provided by the user and scaled by liftoff. I have some old messy unmaintained hack lib that does that and a whole lot of other things, that I can share, but realistically it might be easier to just to write new code to read, rescale and write in new code, to keep liftoff clean.
I will basically just mash it through something like this: https://appicon.co/
So an image (png) of 1024x1024 is good to start with. I can wrangle the ai into 1024x1024. If you want to just start with a template with liftoff image.
Then there is the LaunchScreen.storyboard (splash-screen) which is a way to scale and stretch images according to the device resolution. Then only one image is needed for any formfactor. Maybe the same 1024x1024 can be OK there as well. I think that is the latest apple way of doing it. I think it can be possible to create a template where the developer just have to replace one image and then it would be a nice splash-screen. As I said, it is a bit of a blur, but I wrestled with it quite a bit a year ago.
Basically it will be like this:
ios/data $ ls -R
Base.lproj		Media.xcassets		logo.png
./Base.lproj:
LaunchScreen.storyboard
./Media.xcassets:
AppIcon.appiconset	Contents.json		back.imageset
./Media.xcassets/AppIcon.appiconset:
100.png		114.png		144.png		167.png		20.png		40.png		57.png		60.png		76.png		87.png		1024.png	120.png		152.png		180.png		29.png		50.png		58.png		72.png		80.png		Contents.json
./Media.xcassets/back.imageset:
Contents.json	back.png
Stuff in bold would then be nice to generate from a user defined image.

Yeah, hm... Would it be a good idea to just link to appicon.co and say where to put the icons? The icon requirements seem to change often, and I doubt liftoff can keep up with Apple's whims; a dedicated site like appicon.co seems more capable there. I think they also may handle scaling an input image that isn't already the right size. Right now I'm using the libGDX logo from the libGDX repo, which I think has all the needed PNGs.

Not sure if I should awaken this thread, but I saw it was open and I found a related Reddit post (regarding icons):
https://www.reddit.com/r/libgdx/comments/1bilggo/warning_google_play_console_suspened_my_game/
A bit related to comment on Sep 22, 2020 https://github.com/libgdx/gdx-liftoff/issues/28#issuecomment-696637329
Someone got a game suspended because he used the libGdx icon and that had probably already been used by some other game and Google interpreted that as plagiarism and blocked the app and then also the name of the game.
I still think that it would be a very nice thing to have icons and splash screens generated by liftoff from a provided image. By now it is more complex since Android has this layer thing going on for the icon, but... good challenge?
Anyway, I read above that the readme should contain info regarding icons, and I do not see that. Maybe it has been removed since the comment above or I looked in the wrong place.
I am probably guilty of already submitting a (not published) app when I was testing out the iOS build. I took an unaltered project and sent it to both Google and Apple just to verify if Liftoff created functional projects. That could mean that anyone sending in a game without changing the icons might have to go through what the poor chap in reddit had to, including renaming the game which can be painful.
I see now that @tommyettinger called out for verification that things worked for iOS and well... I guess they did... until now sort of... 😄 Sorry.

Most info got moved from README.md to GUIDE.md ; there's also a Troubleshooting.md file where this might belong. Being able to take an image in the setup would be nice, especially if it could be automatically resized and its format adapted for the different platforms. A likely problem there is that most users won't start out with an icon for their app at project creation time. It doesn't seem that difficult to generate a moderately eye-pleasing icon randomly per-project, based on hashes of the initially given package and project name. This would ensure icons don't overlap if you forget to change them, or submit some version before you have an icon.
(I actually already started work on generating random icons using OpenMoji emoji, it might not be bad at all.)


Unstable temporary support for tRPC 11

This PR attempts to add a fallback to temporarily support tRPC 11.
It seems the procedure._def structure has changed. I added a few more branches to the procedure type check in case the current ones fail.
Error: Unknown procedure type: "query"
Not sure if this is the way to go. But since the main repository seems dead I figured we could make do with this for the moment.
Looking to contribute further. Many thanks!

ANY UPDATE ?


Feature/342 map timeline single date

Ref: #342
Basics

[X] I added a line to /doc/CHANGELOG.md
[X] The PR is rebased with current master.

[X] References to issues, e.g. close #X, are in the commit messages.
[x] The buildserver is happy.

Checklist

[ ] I have installed and I am using pre-commit hooks
[ ] I fully described what my PR does in the documentation
(not in the PR description)
[ ] I fixed all affected documentation
[ ] I fixed all affected decisions
[ ] I added unit tests for my code
[ ] I added code comments, logging, and assertions as appropriate
[ ] I translated all strings visible to the user
[ ] I mentioned every code or binary not directly written or done by me in reuse syntax
[X] I created left-over issues for things that are still to be done
[ ] Code is conforming to our Architecture
[ ] Code is conforming to our Guidelines
(exceptions are documented)
[ ] Code is consistent to our Design Decisions

Review

[ ] I've tested the code
[ ] I've read through the whole code
[ ] Examples are well chosen and understandable

Added Leftover issue #547

@kitzbergerg
I made some changes to the plantings tests and test module.
Shall we do this for all tests?
I think it improves the readability.
Please add your review again.

Rebase needed.

There is a bigger usability problem: while planting the planting information overlaps the time selector. But I think we can merge as is nevertheless and create a follow-up.

To clarify: it is actually okay that the "dialog" is above the date selector (it is not important that the date can be changed while planting). But the user should still see the selected date. A simple solution is that we add the current selected date in the planting "dialog".

@markus2330 I think this is done now. I will continue on #476
I added the react-query dev tools which helped me a lot.
They get removed from the production bundle.

Thank you so much, fantastic job!


Can't ESC out of completions in Settings (JSON) Editor ("workbench.settings.useSplitJSON": true)

I believe this started recently, but I can no longer hit esc to dismiss the completions widget.

Why did I reuse the context key for the UI, bad decision

Why did I reuse the context key for the UI, bad decision


Can’t add or switch accounts if PIN is disabled

To Reproduce

Log out, if logged in.
Tap through the onboarding screens.
Once on the Login screen, tap Import Account.
Import Account 1 (any account) via 12 words or private key.
Once logged in, go to Profile > account name > Add new account.
Add Account 2 (any account).
Once added, go to Profile > Security.
Disable Secure with Pin.
Go to Profile > account name.
Attempt to switch to Account 1.

Current behavior
Observe that taps on Account 1 do not switch to the account.
Expected behavior
User is expected to be able to switch to the other account.
Platform & App Version

iOS (likely both)
2.6.0

Additional context
Profile > account name > Add new account also does not work once PIN is disabled.

✅ Test Case 1

Log out, if logged in.
Tap through the onboarding screens.
Once on the Login screen, tap Import Account.
Import Account 1 (any account) via 12 words or private key.
Once logged in, go to Profile > account name > Add new account.
Add Account 2 (any account).
Once added, go to Profile > Security.
Disable Secure with Pin.
Go to Profile > account name.
Attempt to switch to Account 1.
Observe a successful switch to Account 1.


[Authy] Couldn't decrypt service tokens

Extension
https://www.raycast.com/guga4ka/authy
Description
I get the error "Couldn't decrypt service tokens. Seems like Backup Password is wrong"
At this point I've approved the connection on my phone and have tried changing my password 3 times so I'm sure that it actually does match
I've also tried uninstally Authy extension and reinstalling

Steps To Reproduce
No response
Current Behaviour
No response
Expected Behaviour
No response

@raycastbot close this ticket
i'm working on fix, but i really limited im time, will try to release fix during next week


Use a different TOML parser library

toml4j is outdated. The current specification is 0.5.0 and toml4j currently only supports 0.4.0. The project hasn't been updated for a year so another parser will need to be found to replace it. Needs to be looked into ASAP since important parts of Luna depend on TOML.

How about https://github.com/TheElectronWill/Night-Config

Will definitely consider that!

Will stick with toml4j for now as I still see some activity but if anything will use night-config in the future.


Unable to cancel Popup opening

Bug Report
Unable to cancel Popup opening in onOpen event.
Steps
Try to invoke e.stopPropagation() in onOpen event.
Expected Result
Popup should not be displayed.
Actual Result
Gets error - 'e.stopPropagation is not a function'

Version
2.0.4
Testcase
https://codesandbox.io/s/semantic-ui-example-forked-t0oq6?file=/example.js

Hi @abilash-cts
You may want to include a little more context here of what you are trying to achieve. The assumption that preventing propagation from an onOpen event will prevent the Popup from showing is incorrect. The onOpen event is fired after opening. There is likely a different way to accomplish what you are trying within React.
That aside, you can access the native event from the nativeEvent object from the event by doing: e.nativeEvent.stopPropagation(); but this function will still not prevent the popup from showing.

Thanks for the reply. Here is what I am trying to do.
I have a table with TextArea in one of the cell in row. I am showing values in the TextArea on hover in the popup. I want the popup not to appear if the TextArea is empty. That's the reason why I was trying to cancel the event in onOpen. As you mentioned, I won't be able to cancel the opening there, what could be the other possible ways to implement the same?

@abilash-cts it sounds like you are trying to rely on the internal state for the Popup to open and close which is the SUIR uncontrolled component pattern. Basically it just works. In order to be able to add logic to the popup opening or closing, you would need to take control over that state. Once you take control of it, you are responsible for all the logic.
Take a look at the Controlled example for Popup in the docs and you will see how this works in practice.


Run golangci-lint in parallel with GitHub Actions

Codecov Report

Merging #477 (19a9e26) into main (9312664) will increase coverage by 0.1%.
The diff coverage is 81.3%.

@@           Coverage Diff           @@
##            main    #477     +/-   ##
=======================================
+ Coverage   76.0%   76.1%   +0.1%
=======================================
  Files        173     173
  Lines      12008   12238    +230
=======================================
+ Hits        9128    9324    +196
- Misses      2635    2671     +36
+ Partials     245     243      -2

Impacted Files
Coverage Δ

attribute/set.go
61.8% <0.0%> (-1.8%)
:arrow_down:

attribute/value.go
88.9% <ø> (ø)

bridge/opencensus/aggregation.go
95.7% <ø> (ø)

bridge/opencensus/exporter.go
100.0% <ø> (ø)

...otlp/otlpmetric/internal/metrictransform/metric.go
78.1% <ø> (ø)

...rs/otlp/otlpmetric/internal/otlpmetrictest/data.go
0.0% <0.0%> (ø)

...tlp/otlpmetric/internal/otlpmetrictest/otlptest.go
0.0% <ø> (ø)

exporters/prometheus/prometheus.go
65.2% <ø> (ø)

exporters/stdout/stdoutmetric/exporter.go
62.5% <ø> (ø)

exporters/stdout/stdouttrace/trace.go
66.1% <0.0%> (-10.4%)
:arrow_down:

... and 66 more


DemoSelector demo choice could be improved

Last thing to do before v1.0.1-final

Fixed in 0d5c2e096b9d4d81cde5d4f9529bb8ee6f19a0ae


Multiple HTTP requests

Current behavior
Currently TranslateHttpLoader produces HTTP request every time getTranslation is called.
Expected behavior
TranslateHttpLoader should store state of language file loading and only one HTTP request is made.
How do you think that we should fix this?
This is how I implemented this (proof of concept, it performs only ONE request, everything works and tokens are translated):
	private errorState = false;
	private waiter = new Subject<Object>();
	private requestedLang: string;

    getTranslation(lang: string): Observable<Object>
	{
		if(this.errorState)
			return of({});

		if(this.requestedLang != null && this.requestedLang == lang)
			return this.waiter.asObservable();

		let languagPath = `assets/locale/${lang}.json`;

		this.requestedLang = lang;

		this.http.get(languagPath).pipe(
				catchError(error => {
					console.warn("can't load language file", languagPath, error);
					this.errorState = true;
					return of({});
				})
			).subscribe(result => {
				//console.log("translation", lang,"loaded!");
				this.waiter.next(result);
			});

		return this.waiter.asObservable();
	}

Minimal reproduction of the problem with instructions
Even standard ngx-translate template calls getTranslation at least two times.
My app got approximately 140 (app with multiple pages and modules) and lots of annoying alerts were displayed in case when translations were not found. If success, other requests fetched (304), but fetch still has delay.
Environment

ngx-translate version: 11.0.1
Angular version: 7.1.4

Browser:
- [x] Chrome (desktop) version XX

For Tooling issues:
- Node version: 10.15
- Platform:  Windows

I'm experiencing the same issue.
The json file with i18n translations is requested multiple times.  It seems to be requested in an infinite loop
It only occurs with non default language files (= languages that have not been set with setDefaultLang())
See https://cl.ly/f5b0f57313a8

@emeryowa this is indeed not well behaviour. In fact now i'm not using http-loader due to this issue. This TranslateHttpLoader implementation itself is too trivial to be added as package to your project IMO. Instead, it's better to implement your own TranslateLoader with the getTranslation function i've posted in the issue.

@SoapyMan I have implemented a custom loader, identical to the function you posted. I am getting the same error though = the call to the translations file is requested multiple times. Do you have any tips?

@emeryowa @SoapyMan
I've encountered the same error. Fortunately, the error message with your loader @SoapyMan  is much better than the one in the ngx-translate loader.
My Error shows:
     bytracking-translate-loader.ts:31 can't load language file assets/i18n/en.json TypeError: Cannot read property 'length' of undefined
    at<EMAIL_ADDRESS>(http.js:244)
    at http.js:215
    at Array.forEach (<anonymous>)
    at<EMAIL_ADDRESS>(http.js:215)
    at<EMAIL_ADDRESS>(http.js:280)
    at Observable._subscribe (http.js:1596)
    at Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable._trySubscribe (Observable.js:43)
    at Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable.subscribe (Observable.js:29)
    at subscribeToResult (subscribeToResult.js:13)
    at MergeMapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/mergeMap.js.MergeMapSubscriber._innerSub (mergeMap.js:74)

I created the following loader which does simple caching:
`
import {HttpClient} from "@angular/common/http";
import {TranslateLoader} from "@ngx-translate/core";
import {Observable} from "rxjs";
import {shareReplay} from "rxjs/operators";
export class CachedHttpTranslationLoader implements TranslateLoader {
cache$: Observable<Object> = null;
cachedLang: string = null;

constructor(private http: HttpClient, public prefix: string = "/assets/i18n/", public suffix: string = ".json") {}

/**
 * Gets the translations from the server
 */
public getTranslation(lang: string): Observable<Object> {
  if (!this.cache$ || this.cachedLang !== lang) {
    this.cache$ = this.http.get(`${this.prefix}${lang}${this.suffix}`).pipe(shareReplay(1));
    this.cachedLang = lang;
  }
  return this.cache$;
}

}
`

@larsvliet  thank  you
It works very well


TaskDialog missing progressbar

Describe the bug
TaskDialog seems to have a race condition, progressbar is randomly missing or there. Sleeping a while before calling monitor.initialize() seems to show the progress bar consistently. The progress bar also seems to show consistently on the first run of the script.
To Reproduce

Try ProgressExampleScript.java observe that it shows with the indeterminate progress animation.
Add a small Thread.Sleep() before monitor.initialize(10). Observe that it shows the progress bar as intended.

Expected behavior
I expect the progress bar to show
Screenshots

< The original script
Environment (please complete the following information):

OS: macOS 10.15.4
Java Version: 11.0.7 || 14.0.1
Ghidra Version: 9.1.2

I did a bit of debugging. I think the race condition is here but I don't know for sure. https://github.com/NationalSecurityAgency/ghidra/blob/7b76afee937f2309ac1f4ebf17ab91980a6d6874/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/script/GhidraScriptComponentProvider.java#L437-L444

I debugged this issue but I'm not quite sure how to fix it. When initialize happens too early the delegate is not set to the dialog thus the WrappingTaskMonitor passes the initialize to the initial BasicTaskMonitor thus the initialize is invisable to the actual TaskDialog.
I'd guess some type of copying of state from the BasicTaskMonitor when setting the delegate could work but I'm not sure of the implications.


Dropdown/option to search by the site (e.g.,  youtube.com) vs the specific url (youtube.com/Xasdax)?

Sometimes users navigate to a specific URL within a site but want to see relevant context around the actual page (e.g., discussion about youtube.com as a whole)
Maybe can enable this by either fetching both the site and specific URL searches?

Closing, subsumed under #93


Use app name as a prefix to hub so that different apps with same hub name can share the same Azure SignalR

Quote from our user:

I would like to understand what app name does and if I can use it for different environments.
Eg. In the code below environment would be ‘staging’, ‘prod’, ‘dev’
map.RunAzureSignalR("DrTalkSignalR" + environment, new HubConfiguration()
Would this work and be fully isolated?

A feature like this would be extremely useful to me.  Our service has multiple different parallel environments (prod, test, staging, etc.).  In the prod environment we use Azure SignalR to handle connection capacity, but none of the other environments have enough concurrent users to warrant paying the additional money for each one to have it's own dedicated Azure SignalR instance.  Given that we can't currently isolate the different environments from each other within a shared Azure SignalR instance, this forces us to only use Azure SignalR in production, which raises the chances of encountering bugs that only repro in production. :(
I envision something simple like this with the AppName getting prepended to each of the HubNames internally:
services
    .AddSignalR()
    .AddAzureSignalR(opts =>
    {
        opts.ConnectionString = azureSignalRConnectionString;
        **opts.AppName = $"{appName}_{envName}"**;
    });

I would find this also very useful, for the same reasons as @kroymann already described. According to #192 , it's already possible to re-use the same Azure SignalR Service for different App Services (and thus environments) as long as the hub names are different. With a setter for a prefix (or something similar) this could be improved upon.

I needed this, so have done the work and created a pull request.
#449
Works in the way that @kroymann describes.

Already supported


Remove --autogen-autoloader-pbal-non-annotated flag and enable PBAL for all non-legacy packages by default

Removes the --autogen-autoloader-pbal-non-annotated flag as it isn't required anymore, and also removes the autoloader_compatibility 'strict' annotation. Path-based autoloading will now be enabled for all non-legacy packages by default.
Motivation

Migration of Stripe codebase to Zeitwerk autoloader.
Test plan

See included automated tests. Tested on Stripe codebase.

@jez https://github.com/sorbet/sorbet/pull/6887/commits/abbd69684204b719ba2b38a2720c430a2a6da9a0

@jez fixed

@jez fixed. I used addErrorLine. Although perhaps I should have used addErrorNote as you said...lemme try that.

Oh yeah, that's better.

@jez fixed. I used addErrorLine. Although perhaps I should have used addErrorNote as you said...lemme try that.

Oh yeah, that's better.

Fixed


Add: Masked Autoencoders Are Scalable Vision Learners

Going ahead with the notion of "reconstruction as a pretext task" He et. al. in their paper have ablated on masking patches and predicting the patches with ViT autoencoders as a pretraining task. We (with @sayakpaul) have implemented the paper and have given thought to even the most minute details.
With just 100 epochs of pre-training and a fairly lightweight Autoencoder architecture we achieve 44.25% accuracy with linear probing on the CIFAR-10 dataset.
Colab notebook

@ariG23498
In your colab, I think you need to add the following in the callback class.
def on_epoch_end(self, epoch, logs=None):
   if self.epoch_interval and epoch % self.epoch_interval == 0:
        test_augmeneted_images = self.model.test_augmentation_model(test_images) < ---- here
        test_patches = self.model.patch_layer(test_augmeneted_images)
        ...

@innat thanks for the catch!

@fchollet thank you for the review. We have made the necessary changes.

EDIT: Updating the masking ratio from 60% to 75% gave us an increase in the linear probing accuracy on test set from 44.25% to 46.70%. This finding aligns with the literature.
CC: @sayakpaul

Very nice example! One note, can you consider adding the following two works from earlier this year to the related works section (I am not affiliated with any of them)?

SiT: trains ViT with a (non-patchwise) denoising objective (MAE not citing them has already caused some controversy)
BEiT: trains ViT with the same masked autoencoding objective, but using discrete VAE tokens instead of in pixel-space.

Thank you for your comments, @beresandras. For a more exhaustive literature survey interested readers could check out the MAE paper itself and the other two papers we have mentioned.

@ariG23498  @sayakpaul
Is it possible to add TPU training settings as well (additionally)?

For now, we will keep it as it is.

@sayakpaul definitely.
[ However, just from curiosity, I was trying to run the above colab on TPU but ended up with some issue, colab link. I also tried with tf.config.set_soft_device_placement(True) but it gave another issue. Actually, these are quite similar to an old issue that we faced previously, here. (Though I found some workaround but not general.) ]

Yes, those issues are the same ones we faced during the development process. Thanks for letting us know.

@fchollet a gentle reminder on this PR.
We were checking the file generation process for this PR and it errored out complaining that the code has 482 lines. We thought it might be a good time to discuss what do we do about that.

We were checking the file generation process for this PR and it errored out complaining that the code has 482 lines. We thought it might be a good time to discuss what do we do about that.

That's ok, you can temporarily disable the check (by increasing the limit).

@fchollet thank you! Just added all the files.

Thank you for the contribution!


New user command

Addresses #6.

Kaaaay, I ripped it apart. Good luck :)

Oh and add some integration tests, like the ones in tests/initialize_project.rs.

If name is a &String, should User.name be of type &String as well? That can cause a fair amount of manual lifetime management

No, forget everything I said about references earlier. Just keep everything as Strings like earlier. You had it right before, because that String goes from Args -> run_new_user -> new_user -> User -> Project -> disk, and then is never used again. So it's totally fine.

K, just get rid of the comments inside new_user and the blank line in project_types. After that the code looks good.
But we need tests.

What would you think about generalizing read_protonfile() to take an Option<String> containing the path to the Protonfile, matching None to assume the current directory? It could then be used in init.

Good idea, do it.

Alright, ready for a look over. Lmk if you want more tests. The ones I implemented are the ones off the top of my head.

Also, do we want duplicate names and/or keys for users? I would think yes to many keys per person, so if they lose their key or use a different machine they can still work. I don't think multiple people should have the same key, unless we wanted some kind of admin key.

Yeah, one person to many keys. One key to one person.

Otherwise we'd have lookup/identification problems. Which means we need a check on new user that no user already has that public key. You should implement that.

Nevermind, you already did. Good work.

Sort of. You did find_user. I should really just read the code before I comment.

User should contain a Vec for keys to handle the one to many.
You need to implement a lookup_user_by_pub_key, and then check that on new user.
It doesn't look like you're using find_user anywhere. I don't think its actually necessary?
Make sure to use deriving on the Eq traits. We already let them get out of sync with the actual data: Project's eq impl doesn't consider the users.

1 and 2: Could we use a HashSet or HashMap, with the public key being the key and the user being the value? That takes care of uniqueness of the key, and might make the lookup simpler
3: Using it in the test to check that the user was added properly. Thought it might be helpful to have as well, so I put it within the Project implementation.
4. Will do. Didn't know about that derive.

Sounds good. So, something like this:

Project

name : string
username_to_user : map<string, User>
pub_key_to_username : map<string, string>

User

Name (this will be a duplicate storage, but its okay)
(in the future) permissions, admin, etc

Can we JSON en/decode the in built hash maps? -- Yes we can, the traits are implemented for hashmap in the rustc-serialize package that we use.
Then we need two commands instead. new-user <username> and add-key <username> <pub-key>. Usernames should be unique. This is kinda complicated, but its necessary if we want one user to many keys.
Do we actually want that? I think it's actually better to just make it one to one, because then its less complicated for the users. I mean, we're going to be distributing the private key to every person doing sequencing anyway (at least, I can't think of another way to do it. We can just call it a password and tell them to plug it in when they open the GUI). It's not like they're going to use the private keys for general use on their own computers.

I'm alright with keeping it simple and making it one to one. If they use multiple systems, they will just have to copy the private key manually.
That would make Project and User look the same as before, just with added checks inside add_user()

Yup, sounds good.

Now find user is only checking if the name AND key are equal. You need to check if name OR key are equal.

Thanks, good catch. Just in time to make my tests pass too

Good?

Almost good. The only thing I noticed was in the tests was that you when you reset the current directory, you only go up to ... TempDir library makes a directory in the environment temp dir, so /tmp generally. So going up isn't correct. You want to save the current directory, then return directly to the saved directory.
But actually, I don't think you need that in the first place. Tests shouldn't depend on the directory they're in, unless they set it up themselves. So you can probably just get rid of all the directory resets. After that, LGTM.

And let me check real quick if there's a way to specify how many threads to use in the cargo.toml.

And no, there's not currently a way to set the RUST_TEST_THREADS in the cargo.toml (see rust-lang/rust#25636), so just forget about it. We might want to add a makefile to wrap around cargo, but we can think about that later if we need.

Great!

 Well, go ahead and merge when you're ready.


Clear the warning when getting the "Books" TableClient

Warning: /home/runner/work/SAFE-BookStore/SAFE-BookStore/src/Server/Storage.fs(69,50): warning FS3511: This state machine is not statically compilable. A 'let rec' occured in the resumable code specification. An alternative dynamic implementation will be used, which may be slower. Consider adjusting your code to ensure this state machine is statically compilable, or else suppress this warning. [/home/runner/work/SAFE-BookStore/SAFE-BookStore/src/Server/Server.fsproj]

https://github.com/dotnet/fsharp/issues/12839 Seems like this is caused by an issue in f# itself


Add a "Packaged by" field

I think adding a "Packaged by" field for every app would improve the UI for Flathub.
Here's why:

The user can clearly see the software is developed "by Google", but refi64 is responsible for packaging it. The "Unverified" tag already communicates that to those who know what it means (the About page explains it), but adding a "Packaged by" field would make it crystal clear.
Packagers should get some recognition! They make a big difference in user's lives by bringing up-to-date software to them they otherwise wouldn't be able to use, and they make a big difference for upstream developers who don't need to figure out how to write a Flatpak manifest from scratch when they decide to take ownership of the package.

Here's what I think it might look like:

Some problems:

I'm unsure the data exitst, at least not on the metainfo spec site of things
The list of packagers can be X long, which is a problem for UI and user understanding

Yeah, I'm not sure how this could be implemented in a great way with Github. You can't specify a main maintainer, so you'd need to take all of them if you even found a way. Probably not workable at least the way it works now...
I think there is some genuine confusion about what "Unverified" means, but that would be easily solvable in another way.
For example, how about a tooltip like what is shown for Verified packages when you hover over the checkmark? It might say, "Unverified means this app is packaged by a third party unaffiliated with the original developer or publisher."

Yes, adding the badge was a quick win. Adding the hover was planned, but nobody worked on it yet.


Add swagger-ui docs and clean up swagger-ui options

Contributes to #1531

coverage: 94.447% (+0.2%) from 94.289% when pulling bacb141fa91d6bc2bd5628dc40e5a89f3e7074fe on feature/swagger-ui-docs into abc1da750e6f40113a36c7d87ed7f658602c5871 on main.


20148 Updated to accommodate alternate name changes

Issue #: /bcgov/entity#20148
Description of changes:

Updated to accommodate alternate name changes in business response

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the bcrs-entities-create-ui license (Apache 2.0).

/gcbrun

Temporary Url for review: https://business-create-dev--pr-671-lfa79xqq.web.app

/gcbrun

Temporary Url for review: https://business-create-dev--pr-671-lfa79xqq.web.app


[网络] 私有云EIP挂载VPC LB支持

What would you like to be added:
/assign @yousong

dup of https://github.com/yunionio/cloudpods/issues/11057


Fix installing to a custom PREFIX.

$(MANDIR) wasn't being created, so the install failed when installing to a custom prefix.

Looking good! Thank you!


allow setting the installation location by environment variable

I wanted to install in ~/.local/bin, but that looked impossible.
So I looked into it, and a simple ? solved my problem :smile:
This allowed me to override the PREFIX variable like so:
$ PREFIX=~/.local make install
test -d /home/$USER/.local || mkdir -p /home/$USER/.local
test -d /home/$USER/.local/bin || mkdir -p /home/$USER/.local/bin
test -d /home/$USER/.local/share/man/man6 || mkdir -p /home/$USER/.local/share/man/man6
install -m 0755 pipes.sh /home/$USER/.local/bin
install -m 0644 pipes.sh.6 /home/$USER/.local/share/man/man6

$ make install PREFIX=~/local works as well
You can still use the default
$ make install
test -d /usr/local || mkdir -p /usr/local
test -d /usr/local/bin || mkdir -p /usr/local/bin
test -d /usr/local/share/man/man6 || mkdir -p /usr/local/share/man/man6
install -m 0755 pipes.sh /usr/local/bin
install -m 0644 pipes.sh.6 /usr/local/share/man/man6

Apparently I did not read the readme well enough :sweat_smile:


Oct 2020 公众号国密进展初稿

Signed-off-by: davidliu<EMAIL_ADDRESS>

@davidkhala ， pls help merge it.


[ToggleButtonGroup] Add variant prop for consistency with Button/ButtonGroup

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Summary 💡
variant prop added to at minimum support "outlined" | "contained" options when selected
Examples 🌈
ButtonGroup and Button have this feature
Motivation 🔦
Consistency within my application.  Majority of my buttons use "contained" variant.  By default this button is outlined and clashes with desired design.

@oliviertassinari Should mark this as a "new feature" or "out of scope" since it can be customized as said in #23446?

Duplicate of https://github.com/mui/material-ui/issues/23446
We suggest you to simply customise the component. More explanation: https://github.com/mui/material-ui/issues/23446#issuecomment-723592194

Thanks.  Thought I did click the New Feature option when creating this issue.
For anyone in the future that want's the toggle button to be contained when selected.  This was the styling I used:
const ContainedPrimaryToggleButton = styled(ToggleButton)(({ theme }) => ({
color: theme.palette.primary.main,
"&.Mui-selected": {
color: "white",
backgroundColor: theme.palette.primary.main,
},
"&.Mui-selected:hover": {
backgroundColor: theme.palette.primary.dark,
},
}));


Migrating to absolute paths

This PR restructures launch files in order to remove the previous "description_package" + "description_file" combination in favor of a nicer absolute path definition in "description_file" only, as requested in #22.

We should also add migration notes for this, but we would also need sphinx documentation for this.


CASMPET-6145: Add cilium-operator-replicas, k8s-primary-cni, and kube-proxy-replacement

Summary and Scope

Fixes: CASMPET-6145

Issue Type

RFE Pull Request

This adds cilium-operator-replicas, k8s-primary-cni, and kube-proxy-replacement the basecamp output.
These are optional and will default if not specified.   There is validation for each of these if they are specified.
This also sets the expected CSM version to 1.4.
Prerequisites

[x] I have included documentation in my PR (or it is not required)
[x] I tested this locally

Tested this with various valid and invalid combinations of the three additional fields.
Idempotency
Ran csi config init multiple times in a row.
Risks and Mitigations
Low risk.   The default for k8s-primary-cni is still set to weave.   The other two will be ignored unless k8s-primary-cni is set to cilium.

Seems like the 1.4 item was missed in https://github.com/Cray-HPE/cray-site-init/pull/257
I hadn't heard of any complaints, so it must've gone unnoticed.. and folks must've been using 1.3 as the value for 1.4 installs 🤦 .


Can you please add some output images.

@aAmitSengar please define output images?

meaning how we can see the result with this library, you have explained the use in vary good way but after implementation how i will see the output i.e

O(n)

@aAmitSengar this library has no GUI,
Result is returned by calling AnalysisService.analyze method as the AnalysisResult


Honest question : explain your disagreement with Facebook's JSX

Hello,
In the README, you say disagree with http://facebook.github.io/jsx/#why-not-template-literals. Can you give more details ? I'm questioning the pros and cons of JSX, template literals and simple functions. Your input could be valuable in my reflexion.
Thanks in advance !

JSX isn't part of the javascript language, so it always requires special configuration and extra tooling to work properly. Often, these extra tools and configuration are built around a particular stack, like react, which makes it more difficult to use them in isolation. Configuring jsx tools to support non-react options like virtual-dom/main-loop (which I like better) was more difficult than it ought to be. With less coupled tooling, we can experiment more freely and arrive on better solutions.
With a tagged template string function, you can pass in any configuration details and argument in your code instead of configuring your build pipeline, which I think is much more flexible and you can use template strings natively in node without any compile steps.

Thanks a lot.


User can share QR code

Can share images of Gift QR as a gift (Not working in IOS)

Need to check in ios

Not Resolved

Working fine -
https://github.com/bithyve/bitcointribe/assets/61345820/9611c8a1-6278-4dce-8f23-46d22f9c06f2

Need to test in iOS build

Only text is being shared No QR code imaged is attached

Verified this issue on Tribe app v 2.4.0(629)

Completed