Security considerations

Twitter discussion - currently we launch a plain webserver on localhost. Maybe we could avoid to launch a "real" webserver at all, see here:
https://twitter.com/robert0muehsig/status/924741177525587968

In a previous incarnation of sort of the same thing (but windows only), it was possible to hook into chrome, register a scheme and have the handler take the request and directly invoke it against the pipeline.
https://github.com/eVisionSoftware/Harley/blob/master/src/Harley.UI/MainWindow.xaml.cs#L23
https://github.com/eVisionSoftware/Harley/blob/master/src/Harley.UI/Owin/OwinSchemeHandlerFactory.cs#L44
I'd be really surprised if there wasn't an equivalent hook in Electron.
The hard part is probably hosting the .net code / clr in the same process. Definitely done elsewhere, but beyond my knowledge at this point.
Wondering if edge.js has anything useful to lift?

Well hello
https://github.com/tjanczuk/edge/blob/master/src/CoreCLREmbedding/coreclrembedding.cpp

Nice one - I guess currently our priorities would be to work on some basics, like easier debugging support or actual better build support (Icons for the produced app etc.), but I'm really interested in doing this 👍 (or if you have some sparetime - just sent a PR 😃 )

A big step.
Hosting the .net code / clr in the same process is a great feature.

My xcore plugin for nodejs can smoothly call any netstandard assembly from nodejs (even async stuff) without having to do nothing for the interop (I do generate the required code on the fly) and allows to call almost any method/property/indexer/event/ctor.
Could this be of any help?

Sure - do you have a GitHub Repo for your code?

The repo just contains the user guids and a couple of videos explaining how it works, but no sources yet.
https://github.com/raffaeler/xcore
I published the plugin here:
https://www.npmjs.com/xcorenode
There are few things that are worth to say:

I am going to change the C++ part heavily in order to adopt N-API which is the nodejs API which should not require to recompile the plugin for each nodejs version
I could use it from the standard Electron but in certain cases Electron crashes. Looking with windbg the crash, it does not depend on my plugin but noone (in chat or on github) from Electron helped me to understand the issue.
I am also improving the perf in the netcore side of the plugin
Part of the plugin is already x-plat (like for example loading coreclr) but I still have to adjust few other things to make it entirely work on linux.

If you have other questions, please let me know

@raffaeler Is XCore/XCoreNode similar to Edge.js but works with .NET Core?

I like to say that is more than that.
Edge.JS impose a fixed signature for the method to be called while xcorenode leave the .net developer free to shape the class at her will. Also, Edge.JS limit to methods while I allow ctos/props/methods/events, even with overloads (that were pretty difficult to implement).
The setup is also simpler. When I initially tried to use Edge.js, I had several troubles.
Instead I opted for a "self-contained deployment" so that all the required .net binaries are available and part of the plugin.
You can take a look to the npm package javascript examples to see the supported features.
Anyway, Edge.js is more mature and targets more than just .net interop, therefore please don't take my words as a critic towards Edge.js.

I like the idea of trying to internalize the webserver but it would be great to maintain the option of exposing the webserver when desired (I'm working on a project where I absolutely do want the webserver reachable from other processes running on the machine)

I have an idea with an own web proxy, which can not listen with Fiddler or an other HTTP Debugger.
The next idea is to allow only requests from electrons chromium browser.. It's not the best and I need help to create the web proxy with .net core..
We can give an additional option to deactivate some new security parts...

@GregorBiswanger I don't get your goal.
If you want to disable people sniffing the page, it's useless. I wrote a driver that can capture even localhost (which is "short-circuited" and is not processed from the whole network stack).
From a security perspective, once you are admin of the local machine, the game is over.

@raffaeler Yes, that is true. But every Electron application and local desktop application is not secure.. (reverse engineering etc.).. I think this steps are important to have a little better security.. protection of kiddy crackers :)
That is only an idea.. at the end the community should decide too..
I'm happy about other ideas too...

@GregorBiswanger just use https for internal communication then.
Again, you can decrypt the channel if you know how to retrieve the private key of the certificate but there will always be a way to sniff what the process is doing.
This is no different than any other desktop app. You can use spy++, windbg, APImon, or whatever else tool to watch the process activity in detail.
And even UWP is no different, sandboxes are done to avoid exiting the sandbox, but you can easily inject code there ... this is one of my demos ;-)

@raffaeler yeah.. thats right.. and the problem with certificate is, it expires..
The common question here is.. should we invest to the lightweight security implementations? (proxy, https etc.)

@GregorBiswanger you can create a self-signed lasting 100 years :)
From a security perspective you should just use the services offered from the OS.
Tokens, integrity levels and ACLs are the most common tools to avoid major issues from the other processes.
But once you run as admin on the box, the game is over :)

At the risk of proposing a "big idea" change, if your front end is a so-called single page app that gets delivered to the browser as a single chunk of HTML and a single bundle.js, then Electron's built-in Ipc functions means you can get all the benefits of running C# on the server without actually needing to run or expose ASPNET on the C# side.
The React sample I made (https://github.com/yoDon/Electron.NET-React-Typescript-MobX) maintains the full ASPNET MVC server in case someone wants to use the MVC capabilities, but it doesn't actually use any of it even while maintaining full C# state and functionality to back up the app. I added one class in /Ipc/Register.cs that registers all the Ipc routes. The register function is called by the ElectronBootstrap() function which is part of Configure(...) in . End result is I have the full Javascript/Typescript frontend UI experience and the full C# backend experience and no actual ASPNET functionality being used or needed anywhere in the process.
Like I said, that's a pretty "big idea" shift in how Electron.NET is used, but I think it's (a) more secure because it doesn't expose any ports and (b) the "right" way to do this sort of single-page application, without needing to do a ton of server work to regenerate all the static HTML repeatedly. React (and libraries like it) basically solved that problem for us. Build the HTML and bundle.js in advance, load it into the browser/renderer, and then everything after that is just exchanging function calls and json blobs with the server.

AFAIK this line makes sure that wwwroot is exposed to Electron, so you make use of ASP.NET.
Even if we don't expose a ASP.NET Core Service to Electron, we still need the IPC communication going on, right?

Definitely need the IPC. When I first started looking at all this, I figured wtf is this IPC thing, I want "real" tech like SignalR, but then as I better understood what what going on I realized that IPC really is the right way to communicate between the two processes because it's a low-level direct pipe that's not exposed to the rest of the OS.
The way you have IPC and hosting of dot net integrated into Electron.NET is the magic that's the key to all this wonderful goodness.

Wild idea to skip the ASP.NET stuff completly (at least for the "builded" app) - it would be possible to xcopy the wwwroot files to the electron dir, which will be packed, then we just need to boot up a .net core console application with the IPC stuff for the "backend".
Development/debugging might be "harder", but could work.

I'm pretty sure that Electron already supports hot reloading of the HTML/JS, so if you tweak the source JS files it would automatically do the transpiling/webpacking/loading/refreshing etc on the fly as you type in your editor. It's pretty slick stuff.

<- Technically the "it" that I referred to about would be webpack that's watching the filesystem and regenerating the code and such (I have all that running now in my boilerplate, the /wwwroot/bundle.js files will auto regenerate as you change the source files, but my HTML isn't configured yet to hot-load the updated bundle.js files (I think that's a pretty straight forward thing to do on the npm/HTML side, I just haven't gotten to it yet)

Mhhh... so you suggest we should just host the IPC stuff inside the actual .NET Core process?

I'm WAY less knowledgable about the dotnet core internals than you guys are but I think that's what I'm suggesting. Then you'd still be able to host ASPNET if you wanted to but it wouldn't be a required part of the process. You'd just need some way to tell Electron to host the files that are currently thought of as the /wwwroot contents if you were to make ASPNET optional.

@yoDon HI
I saw this line https://github.com/ElectronNET/Electron.NET/blob/200f51194062a953e1924c309e4de65941f2119b/ElectronNET.API/BridgeConnector.cs#L21
and this https://github.com/ElectronNET/Electron.NET/blob/200f51194062a953e1924c309e4de65941f2119b/ElectronNET.API/IpcMain.cs#L49
It seem like ElectronNET.API.IpcMain base on socket. It isn't realy ipc.
Am I right？

@konding all I know is the "IPC" terminology comes from how atom and Electron talk about their code. I'm not sure if the ElectronNET bits are implemented the same way as the base Electron IPC but @robertmuehsig or @GregorBiswanger probably know

Mhh... the communication path is described here. Our Electron.NET talks via this Socket to the Electron stuff.
I'm not sure what the definition of IPC is, but we use http as the channel. At work we are using named pipes to do IPC, but we just run on Windows. What is your definition of IPC @konding ?

My understanding is two objects communicate with each other in the same process. @robertmuehsig

FYI I could solve the issues of my plugin with Electron. It was not a real bug, but both me and Electron used a "slot" so each of us was overwriting the other.
Anyway, I could successfully run C# code inside the renderer process. I still have no public releases.
BTW, if anyone of you is at the next mvp summit, I will be there and we can chat about it.

@raffaeler Then we shall meet at the summit :) @GregorBiswanger

You can bet! :) My handle here is the same on twitter.

I have added the build parameter to /p:PublishSingleFile true in my recent PR.
I have a version of blazor webassembly, with host running in Electron.NET, bundled as single .exe file.
The only code exposed is .wasm file, so disassembly is not as easy as dropping DLL's into ILSpy or DotNetPeek anymore.
Also the app doesn't ship with any dll's this way. just a single .exe

If some people are strictly concerned about security, here's something I did for my project: https://github.com/domialex/Sidekick/commit/6a9f7bf5d9cc6839003bd00ab3541bef22f2685a
I just added a cookie with a Guid generated on startup to the BrowserWindow, then a middleware that verifies it on every request. Works perfectly.


Possible incompatibility with Conjuring

I don't really know where is the problem but when I try to spawn gooses with a conjurer (from this mod), the server goes crazy and laggs until I remove the gosses' soul from the conjurer.

I could not reproduce it in the latest version. That being said it is possible that 427ce23786b66dd6f076fa594f94170db90d07d2 also fixed this issue. It is going to be in the next release.


chore(main): release 0.7.0

:robot: I have created a release beep boop
0.7.0 (2024-02-05)
⚠ BREAKING CHANGES

rename Action::DimAction to Action::Dim to make clippy happy

Features

avoid computing groups/scene structs on every state update (997de4e)
cron integration (3be926f)
evalexpr support in rules and actions (7453168)
partially managed devices (638e516)
ReadOnly managed mode (48a3934)
routines: expressions in rules and actions (9632c9f)
scene expressions (e946d89)
SetDeviceState action (fd43901)
support forcibly triggering routines (65c2d77)

Bug Fixes

always convert color to preferred mode when sending (c52155c)
bypass config and use toml crate directly (a219adb)
deps: pin dependencies (6dd5fcc)
deps: pin rust crate croner to =2.0.4 (c4413a1)
deps: pin rust crate jsonptr to =0.4.4 (bd20093)
deps: pin rust crate serde-this-or-that to =0.4.2 (21220ae)
deps: update rust crate async-trait to v0.1.75 (18fb828)
deps: update rust crate async-trait to v0.1.76 (cbb0f3f)
deps: update rust crate async-trait to v0.1.77 (483da8c)
deps: update rust crate cached to v0.48.0 (3b73ce0)
deps: update rust crate cached to v0.48.1 (504c7c1)
deps: update rust crate chrono to v0.4.32 (56ea5b0)
deps: update rust crate chrono to v0.4.33 (a6fcc3c)
deps: update rust crate config to v0.14.0 (544d9ab)
deps: update rust crate eyre to v0.6.10 (8abf002)
deps: update rust crate eyre to v0.6.11 (c1f41c2)
deps: update rust crate eyre to v0.6.12 (a54cf04)
deps: update rust crate itertools to v0.12.1 (a6be06e)
deps: update rust crate once_cell to v1.19.0 (c48f7b5)
deps: update rust crate palette to v0.7.4 (4d4cf09)
deps: update rust crate serde to v1.0.194 (4da8780)
deps: update rust crate serde to v1.0.195 (d6baed3)
deps: update rust crate serde to v1.0.196 (c25c6bf)
deps: update rust crate serde_json to v1.0.109 (05a0e92)
deps: update rust crate serde_json to v1.0.110 (b7f92ab)
deps: update rust crate serde_json to v1.0.111 (07fd30d)
deps: update rust crate serde_json to v1.0.112 (aa72849)
deps: update rust crate serde_json to v1.0.113 (4dae8b3)
deps: update rust crate serde_path_to_error to v0.1.15 (8ecd7f4)
deps: update rust crate tokio to v1.35.0 (3c3962e)
deps: update rust crate tokio to v1.35.1 (1633046)
deps: update rust crate tokio to v1.36.0 (93c4479)
deps: update rust crate toml to v0.8.9 (060f1e5)
deps: update rust crate ts-rs to v7.1.0 (40d1edf)
deps: update rust crate ts-rs to v7.1.1 (72d0bb9)
deps: update rust-futures monorepo to v0.3.30 (2b396c9)
don't spawn new task for each message (e6a6e89)
drop neato and wake_on_lan integrations (161480d)
improve method of detecting written expr vars (45125e8)
make more use of cached flattened groups config (b18d32c)
websockets don't hold onto state lock forever (360d804)

Miscellaneous Chores

release 0.7.0 (ba4fca7)
rename Action::DimAction to Action::Dim to make clippy happy (3851b92)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/FruitieX/homectl-server/releases/tag/v0.7.0 :sunflower:


Add a scroll to top button

Adding a scroll to top button makes it's easier to scroll to the top by just hitting a button.

Good issue. Work on this

You can see the scroll to top button.

You can make PR. And also do the same for gh-pages branch.


Include constraints as dict within scipy.optimize.differential_evolution

In order to use more optimization approaches within the same code, it would be useful if the constraint definition could be as uniform as possible within the utilities offered by scipy package.
The description of constraints via dict, with the specification of extra arguments is very helpful for the class of problems related to shape optimization. However, neither LinearConstraint nor NonLinearConstraint coming with scipy.optimize.differential_evolution allows for this. Thus, one should remain within the more flexible scipy.optimize.minimize family of utilities.

LinearConstraint and NonLinearConstraint are the new-style way of treating constraints, and they are forwards/backward convertible to 'old-style' constraints. Indeed, this conversion occurs transparently in the optimize.minimize function. That conversion uses optimize._constraints.old_constraint_to_new and optimize._constraints.new_constraint_to_old.
Whilst new- style constraints don't accept extra arguments in the form of *args you can create a cheap wrapper function for those args in order to achieve this. I often do this with either lambda functions or a callable object.
Whilst the constraint changing functions may not be public (thus you shouldn't depend on them remaining the same), you could use them to convert your constraint dictionary to the new-style, to see how to write them in a form you need.
If you find that the constraints you require are not convertible to new-style using old_constraint_to_new then please re-open this issue.

@rgommers, this kind of issue is why I was proposing #10778

@andyfaff Thanks for the kind and quick forward to the source code, and good luck with #10778!


Ability to add Geth or Parity cmd options in config

Feature Request
I love the development experience offered by Embark, truly awesome work, congrats!
I like it so much, I use Embark to launch Geth locally rather than use the geth cmd.
But I use Docker a lot, and I need to add the option -rpcvhosts=* when launching Geth.
Today, there's no way to specify cmd options in blockchains.js.
Summary
Is it possible to enrich blockchain.js to enable passing options to Geth/Parity?

@choucrifahed yes, we have that planned. First some work needs to be done on the blockchain.js config then we add client specific options


Please honour TMPDIR

I've just installed this port (I read about it in the FreeBSD quarterly status report). It looks like just what I'm after!
A few notes / suggestions so far:
Please can you honour the TMPDIR setting with mkdir.
man mkdir:
"If the -t prefix option is given, mktemp will generate a template string based on the prefix and the TMPDIR environment variable if set.  The default location if TMPDIR is not set is /tmp.
e.g.:
SQL_FILE=$(mktemp /tmp/ports.sql.XXXXXX)   -->   SQL_FILE=$(mktemp -t ports.sql)
In addition, you can use mktemp -d to create a temporary directory, rather than creating a file, deleting it, and making a directory in its place. (Avoids a very unlikely but potential race-condition hack!)
Also, in includes.sh:
if [ $(echo $(which $dep) | wc -w | sed -e 's| ||g') = 0 ]; then
can be replaced with:
if ! which -s "$dep"; then
Cheers!

Hi Jamie,
Thanks for your suggestions!
Yuri

Hi! Thanks for that, and the quick response!
Cheers.

Hi! Thanks for doing that, and for your quick response!
I just realised you're the same guy I sent an update for the unicode-emojis port. I'm not stalking you, honest!

:-)


Fix travis-ci: set tty size

PrettyErrors's  dependecy RenderKid needs TTY columns to word-wrap lines to console.

That's quite awesome


Update the default EEPROM image to 2021-12-02

@timg236

Do you need to update the secure-boot-recovery EEPROM as well?

Updated the pieeprom.original.bin image in secure-boot-recovery to match the 2021-12-02 image

LGTM


Bootstrap keyspaces controller

Issue 1801
Description of changes: Bootstrapping keyspaces controller
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

/verify-owners


Emphasis on whole word only

Please implement emphasis only on whole words, otherwise it's really annoying.
Example:
THIS_IS_AN_ERROR_MESSAGE
results in "IS" and "ERROR" being underlined
Or:
speaking of variable MY_VARIABLE and YOUR_VARIABLE
results in "VARIABLE and YOUR" being underlined.
This is well explained here: https://lists.gnu.org/archive/html/emacs-orgmode/2009-08/msg00091.html
Thank you,
Mirco
PS: Anyway, it's so good having orgmode in sublime. I even think it should be native or fully integrated, like in emacs

Would be great, thank you

Should be live

That's it. Thanks a lot.


Method host_numbers in fritzhosts.py always returns 16

Hi,
like you already noticed the method host_numbers in fritzhosts.py always returns 16.
I investigated the code and it is indeed a fritzbox API error.
So there are three possibilities

Check if there are other ways to check the number of hosts within the official API
Substitute the for loop with a 'while True' loop and query the fritzbox and break as soon as we receive an empty message
Parse the raw HTML page (may not work on every model)

Option 2 would be a good workaround but option 1 would be the best

Hi,
About this matter, I already asked the guy who wrote fritzconnection,
and he responded, that this is a problem of the frizbox, and there is
currently no way to get the correct number of hosts. One simply has to
wait and hope that an update from AVM solves this. (I don't have IOS6
maybe this new one solves it. I can not test, since I don't have a
supported box.)
Suggestion 2. should be easy to implement.
Suggestion 3. I have no Idear. Sound possible but like a lot of work and
cumbersome.
On 12/9/2015 9:12 PM, Caius Cioran wrote:

Hi,
like you already noticed the method host_numbers in fritzhosts.py
always returns 16.
I investigated the code and it is indeed a fritzbox API error.
So there are three possibilities

Check if there are other ways to check the number of hosts within
the official API
Substitute the for loop with a 'while True' loop and query the
fritzbox and break as soon as we receive an empty message
Parse the raw HTML page (may not work on every model)

Option 2 would be a good workaround but option 1 would be the best
—
Reply to this email directly or view it on GitHub
https://github.com/deisi/fritzconnection/issues/1.


RBAC Enhancements

No-Code Authorization Authoring: The plugin will offer an intuitive, no-code UI for defining and managing permissions and policies within backstage.io. Users can easily create and modify authorization rules without complex coding or configuration.
Audit Logging: The plugin will provide audit logging capabilities, recording all permission-related activities and changes made within the Backstage instance.
Roles: Remove the ability to assign users and groups directly to permission policies
Caching and Performance: Enhance the efficiency of the RBAC using caching and other methods.
Conditional Policies: Improvements to the conditional policy implementation. Add validation for conditional policies. Add aliases for some conditional policy parameters. Add the ability to load conditional policies using a file.

[x] https://github.com/janus-idp/backstage-showcase/issues/363
[x] https://github.com/janus-idp/backstage-showcase/issues/362
[x] https://github.com/janus-idp/backstage-showcase/issues/605
[x] https://github.com/janus-idp/backstage-showcase/issues/604
[x] https://github.com/janus-idp/backstage-showcase/issues/623
[x] https://github.com/janus-idp/backstage-plugins/issues/898
[x] https://github.com/janus-idp/backstage-showcase/issues/606
[x] https://github.com/janus-idp/backstage-showcase/issues/675
[x] https://github.com/janus-idp/backstage-showcase/issues/671
[x] https://github.com/janus-idp/backstage-plugins/issues/996
[x] https://github.com/janus-idp/backstage-plugins/issues/900
[x] https://github.com/janus-idp/backstage-plugins/issues/944

Moving to close as all of the relevant issues have been closed or are being tracked through Jira.


Log out version

Now that we're relying on saved logs a lot more it probably make sense to log out the version so we can tell what changes are/aren't included when the log was generated.

Just a quick note: the version is already a part of the filename, so we have this data already.
This change is better, anyway. Filenames can change pretty easily


No DNS for containers with untagged images

I've found that if I have containers just running latest, and then I update the image, thus untagging the image currently in use, Skydock does not add a DNS entry for it.
Not sure if this is solvable with Skydock or not outside of storing an image ID's tag for later.

I think we just hit this too. Running with pre-built and tagged images from a private Docker Hub registry works just fine, but if we switch those images out for local ones we get the failure. The pre-built images were built using the exact same Dockerfile as the live builds.


Harbor should support windows docker image.

This is more of a verification.
If it doesn't we'll investigate what work is needed.
Need to verify on Windows Docker client.

Set the priority to low as the VIC engine may not support Windows in v1.3

removing the 1.3.

Tested with docker image : microsoft/windowsservercore in windows 10,
Update configuration file: C:\ProgramData\docker\config\daemon.json add a line:
"allow-nondistributable-artifacts": [":"]
Restart docker daemon.
Then docker push works
Limitation:
Then the windows image can be push and pull, but the image size in registry always display the manifest size instead of the real image size.
It is the limitation of registry


Changing the RandomHasher to urlsafe_base64

There may be a reason for shorter URLs for images. In particular, spamassassin cares how long a path is for a URL.
To shorten URLs slightly, it seems sensible to use base64 for the IDs instead of hex. The combinatorics allow for the ID to be 20 bytes long instead of 30, which means 28 character long IDs instead of 61.
I'm curious whether there is a strong rationale for hex. Is there a compatibility issue with different backends?
We are able to change the RandomHasher in the init, which is great; however, the valid_id method uses /\A[a-z0-9]+\z/i, which excludes a couple nonalpha characters.
So, ideally we would be able to replace the valid_id regex expression with a user-defined constant or some such, perhaps also kept as a method inside RandomHasher.
If that appeals, I'm happy to make a PR.

This is the safest way to store files.
I wouldn't recommend using anything besides alpha chars for file names, despite a lot of file systems allowing some special chars.
Remember that you can always create your own application's backend for generating different hashes, you only have to comply with the alpha chars requirement.
Cheers.


Assumption: device properties saving affected by IGFILTER

It's reported for the v2 Beta that Mode switching seems to not work consistently, primarily on wireless.
Assumption
Yet to be tested theory: the modification the IGFILTER performs necessary to make DirectInput hiding work may cause a split into another device object in the registry, storing the HID Mode property change in a different section than it was done in v1.
Verify
Browse the registry with SYSTEM permission to explore the property keys and see what exactly is happening differently under the hood.

Nope, everything is fine here, it's a bug in the new BthPS3 beta.


Overloading setter for abstract RegularFileProperty results in Cannot have abstract method MyClass.getXYZ().

Current Behavior
If a setter is defined for a property defined using decoration on an abstract getter Gradle will fail with the following error:

Cannot have abstract method MyClass.getXYZ()

 Caused by: java.lang.IllegalArgumentException: Cannot have abstract method MyClass.getMyFile().
 	at org.gradle.internal.instantiation.generator.AbstractClassGenerator.assertNotAbstract(AbstractClassGenerator.java:396)
 	at org.gradle.internal.instantiation.generator.AbstractClassGenerator.inspectType(AbstractClassGenerator.java:322)
 	at org.gradle.internal.instantiation.generator.AbstractClassGenerator.generateUnderLock(AbstractClassGenerator.java:224)
 	... 224 more

Expected Behavior
If this pattern is valid then having both the auto generated decorated setter overloaded by a custom setter should work.
If this pattern is not valid then a better error message should be thrown indicating that a setter of an auto generated property cannot be overloaded.
Context (optional)
No response
Steps to Reproduce

Create a decorated object:

public abstract class MyClass {
    private transient ObjectFactory objectFactory;

    @Inject
    public MyClass(ObjectFactory objectFactory) {
        this.objectFactory = objectFactory;
    }

    @InputFile
    public abstract RegularFileProperty getMyFile();

    // Overloaded to allow passing in String objects
    public void setMyFile(Object obj) {
        getMyFile().set(objectFactory.fileCollection().from(obj).getSingleFile());
    }
}

Instantiate it using objectFactory

objectFactory.newInstance(MyClass.class, objectFactory);

Use the plugin and object and attempt to set myFile

myFile = "file1.txt"

Gradle version
8.3
Build scan URL (optional)
No response
Your Environment (optional)
No response

Thank you for providing a valid report.
The issue is in the backlog of the relevant team, but this area of Gradle is currently not a focus one, so it might take a while before a fix is made.

I've also encountered this here, and it is very very frustrating. Overloading setters should be possible like this.

I've also encountered this here, and it is very very frustrating. Overloading setters should be possible like this.


fix: 'pavex new' no longer panics if 'cargo fmt' fails.

It also honours the casing specified by the user, rather than converting the project directory name to kebab-case

/ok-to-test sha=3664c17


[WIP] CentOS/RHEL7 support

Requires #362

@jnummelin PTAL

Upgrade path broken:
==> Upgrade master @ <IP_ADDRESS>
Pharos::SSH::RemoteCommand::ExecError : SSH exec failed with code 127: install-kubeadm.sh
+ set -ex
++ kubeadm version -o short
+ '[' v1.10.3 = v1.10.4 ']'
+ cd /tmp
+ export DEBIAN_FRONTEND=noninteractive
+ DEBIAN_FRONTEND=noninteractive
+ apt-get download kubeadm=1.10.4-00
sh: line 11: apt-get: command not found

Upgrade path broken:

Upgrade path is fixed now in #362, ofc needs also changes here.

@jnummelin PTAL

Upgrade path is pretty impossible to test as all previous kube versions on centos are pretty much broken with the cgroup bug.

I think the cgroup bug affects only subset of servers... at least for me it works in quite many environments (including Vagrant).


Build error when building with cargo cross and x86_64-pc-windows-gnu target

When building a project depending on this library using cargo cross for the x86_64-pc-windows-gnu target the build fails and a very long error is printed.
The solution for this is to remove the type definitions under after #if defined( _WIN32 ) in steamtypes.h. As I don't have any Windows PC I do not know whether the resulting binary works yet, but I wanted to open this issue in case anybody else has the same problem.
Edit: the binary works

steamtypes.h is from the steamworks sdk so it isn't in my control to fix it. I've avoided the windows-gnu backend after encountering some hard to debug issues when combined with steamworks awhile back.

Ah, yes of course!
I simply wanted to note that cross-compiling for windows is in fact possible when editing steamtypes.h just in case anyone else experiences the same problem - I guess this issue can then be closed?

Ah, yes of course!
I simply wanted to note that cross-compiling for windows is in fact possible when editing steamtypes.h just in case anyone else experiences the same problem - I guess this issue can then be closed?


Update README.md

Fixed grammatical error (duplicated word) in README file.

Thank you for fixing this @jamesbrine-tesserent !


ReactRootView.setAppProperties and RCTRootView.appProperties remounting app instead of updating it

[x] Review the documentation: https://facebook.github.io/react-native
[x] Search for existing issues: https://github.com/facebook/react-native/issues
[ ] Use the latest React Native release: https://github.com/facebook/react-native/releases

Environment
Environment:
OS: Windows 10
Node: 8.10.0
Yarn: 1.5.1
npm: 5.6.0
Watchman: Not Found
Xcode: N/A
Android Studio: Version  <IP_ADDRESS> AI-173.4697961
Packages: (wanted => installed)
react: ^16.2.0 => 16.2.0
react-native: 0.55.4 => 0.55.4
Description
I have a very simple app that contains a ReactRootView on an Android activity that bootstraps the react native app.
When the user presses the home button and comes back to the app, I call ReactRootView.setAppProperties with the updated properties. The problem is my app components are being destroyed and recreated instead of just being updated. I did some digging and while the react native's AppContainer component is being updated (componentWillReceiveProps is called), my components are being unmounted and remounted. Similarly on iOS I have a RCTRootView on which I call appProperties setter with the updated properties after the app comes back to active state and the behaviour is the same.
Reproducible Demo
On iOS:

Create a new react native project with react-native init
Create a simple class component that renders a view and put some console.log statements in componentDidMount and componentWillReceiveProps. Set this component to the root component of the app with AppRegistry.
In AppDelegate.m, attach a function to the UIApplicationDidBecomeActiveNotification notification and on it create a NSDictionary with some properties and call appProperties with the new properties.
Launch the app, put it on background and reactivate the app.
You will get componentDidMount statement printed out instead of componentWillReceiveProps

This is an urgent situation. I really need help with this. Thanks!

Found the answer to my own problem. The problem was on a component I was using (react-native-root-siblings) that was calling AppRegistry.setWrapperComponent and defining a class inside the function body, so the reconciler would not work correctly. I am gonna close this.


DateTime library uses deprecated datetime.utcnow()

datetime.datetime.utcnow() has been deprecated in Python 3.12 and datetime.datetime.now(datetime.UTC) should be used instead. That datetime.UTC is new in Python 3.11, so we need to use either version or feature detection to avoid using it with earlier Python versions.

We cannot simply use datetime.datetime.now(datetime.UTC) because that returns a timezone aware datetime object that cannot be used together with non-timezone aware (i.e. naive) objects that we otherwise use with DateTime. Using ``datetime.datetime.now(datetime.UTC).replace(tzinfo=None)` avoids that problem by removing timezone information and making the object naive.


"poudriere options -c" not invoking dialog4ports

So went to do do my quarterly packages update for  my FreeBSD servers and I had a problem updating  www/nextcloud because www/apache24 was getting skipped because security/distcache  was bot being built.
When I ran "poudriere options -c -j jailname -p portsname www/apache24" to turn off SOCACHE_DC, it didn't invoke dialog4ports to let me change the options.
I saved everything in /usr/local/etc/poudriere.d then deleted the jails and ports trees used by poudriere and recreated them. Same problem, dialog4ports not getting invoked.
So I went and looked in the directories where jails are kept and could not find dialog4ports anywhere underneath /usr/local/poudiere/jails/jailname.
Why is that not there? Aren't port options set by running 'make config' inside the jail?
It this point I am unable to change options for any port in any new jail of any version.
The machine running poudriere is 12.0-RELEASE-p11 and poudriere is 3.3.2_1 installed with pkg.

bump

bump

It works for me. What error did you get?

No errors. It simply did not run dialog4ports to change options.

You have it installed in the host?

Dupe of #599


Add unordered remove to primitive collection

Add fast unordered remove to primitive int collections (and longs through primitive expander).
Basically removes an element faster by overwriting with the last element (breaks order). This is instead of #134 because that approach is not allocation-free and the point of that change was to allow this in the primitive collections.

Thanks.


Wrong type ouput for getEffectiveModelType

For the following TypeSpec, when we call getEffectiveModelType for type Product, we will get a type named ProxyResource with the same properties of the original type Product. I suppose it should return the original type of Product.
model Product is ProxyResource<ProductProperties> {
  @doc("Name of product.")
  @pattern("^[\\w][\\w\\s]{1,48}[\\w]$|^\\.default$|^\\.unassigned$")
  @key("productName")
  @path
  @segment("products")
  name: string;
}

This output may impact many things, include the output of getLroMetadata for Azure: https://github.com/Azure/typespec-azure/issues/311.

cc: @archerzz @marygao

What options to you pass to getEffectiveModelType? I fixed a bug in getEffectiveModelType when dealling with read visibility here https://github.com/microsoft/typespec/pull/2945 maybe thats the same problem

JS has two cases failed and our current workaround is to get rid of getEffectiveModelType if the model has a name.
Case 1: A is Templet
The getEffectiveModelType would return Template name as model not A, this introduced a lot of duplicated names because they would always return the template name(see js issue).
Case 2: A extends B
The getEffectiveModelType would return B and also this caused duplicated names and also caused hierarchy information lost.

JS has two cases failed and our current workaround is to get rid of getEffectiveModelType if the model has a name.
Case 1: A is TemplateModel
The getEffectiveModelType(a) would return Template name as model not A, this introduced a lot of duplicated names because they would always return the template name(see js issue).
model B<Parameter> {
  prop1: string;
  prop2: Parameter;
}
model A is B<string> {
  @query
  name: string;
};

Case 2: A extends B
The getEffectiveModelType(a) would return B and also this caused duplicated names and also caused hierarchy information lost.
model B {
  prop1: string;
  prop2: string;
}
model A extends B {
  @query
  name: string;
};

One more case is for spread usage, i just guess maybe all of them are the same root cause.
model ResponseError {
  @header
  @doc("Error code.")
  "x-ms-error-code"?: string,
  ...ErrorResponse
}

So I think its maybe just how you are using it that might be wrong. Are you using the same call in the request and response with isMetadata as the value?
The problem I think if you look at all the repros is the model that doesn't get returned contains only a single readonly metadata property(It is in the response body but it is a metadata property)
What I think you might want to do instead is call with isApplicableMetadata and pass the correct visibility.

Ok actually if I update the previous playground with an intersection then it is getting into that problem. However I have this exact issue fixed in the body consistency pr Playground from that pr as example

So I think its maybe just how you are using it that might be wrong. Are you using the same call in the request and response with isMetadata as the value?

Yeah in our code we use isMetadata and i notice that isApplicableMetadata would require a visibility param, i may not understand why visibility could fix that, any simple explaination?
Could you explian with me what is the usage assumption for getEffectiveModelType?
Imagine following A and C types we would use filter to filter out name property so the effective model for them are both B<string>, if then the emitter should not call this function for named model because the name is not expected.
model B<Parameter> {
  prop1: string;
  prop2: Parameter;
}
model A is B<string> {
  @query
  name: string;
};
model C is B<string> {
  @query
  name: string;
};

Yeah sorry I actually got mistaken from my previous playground it is not working there too.
Yeah I do feel like getEffectiveModel type in those cases should return A and C, there might be a bug in the logic. I might need to dig more into it if it was done on purpose.
For why you need visibility, it depends on the usage but for the use case of openapi we need to create a definition for the body exactly(so extract the metadata property out) but we need to get a name (if possible) for that body. The body might not be the same in the request or response depending on the visibility so it could alter what is the effective model type.

I believe this will be addressed by this: https://github.com/microsoft/typespec/issues/3012

In ARM operation templates (as in rest operation templates),  the logical request and response type for a model is given by the @body decorator.  The linked issue will provide a single field that any emitter can use to map to a logical response type.
meanwhile  MPG emitters should use isBody to determine if there is a body type.


[feature request] add step component

Recently I had to create step indicator for one of my school project, I couldn't find anything inside bootstrap so I build one based on tutorial found on internet, unfortunately it wasn't responsive.
I searched for other steps components and I found this: http://demo.titon.io/?step
Maybe there can be similar component added to bootstrap?
Here is my current steps indicator:

here is titon version:

What do You think? Are there any chances this might be added?

Duplicate of #1982 (among several others).


SELinux package name has changed in CentOS/RHEL 8

The task for installing selinux dependencies on RHEL or Oracle Linux fails when running >= 8:

It appears the package is now named: "policycoreutils-python-utils"

Nevermind! It looks like felixb fixed this if/when PR #16 is merged.


Fix installation command in README.md

The package name was missing an “s”, and “go install” only works when you already have downloaded the package.

LGTM, thanks.


Debit Transactions are not returned in the finance API

Core: v.5.1
Description: Debit transactions are missing in the response of finance/transactions/account API.

Debits are events and not transactions, they do not happen on your sigchain so are not included in your transactions list


POPO migration comments

Description
Added POPO migration comments on affected lines for active_context, gen_plugin, help_dump, plugin_management, and primitive_type_check.
Linked Items:
Closes/Fixes/Resolves #711

additional work needed for certain types of dictionary references

fixed flake8 comment style errors


Presentation: Avoid loading assets in presentation-common esm module

Moved getLocalizedStringEN function to presentation-backend as this is the only place it is used. This change removes requirement to copy localization assets when building presentation-common esm module.

Just to confirm, you mean to merge this change into imodel02 not master?

Just to confirm, you mean to merge this change into imodel02 not master?

Yes. Localizations changes that caused this are still only in imodel02


Change term - basisOfRecord

Term change

Submitter: John Wieczorek
Efficacy Justification (why is this change necessary?): completeness
Demand Justification (if the change is semantic in nature, name at least two organizations that independently need this term): Result of recent public review
Stability Justification (what concerns are there that this might affect existing implementations?): An addition, no effect on stability except to promote standardization on a ratified term.
Implications for dwciri: namespace (does this change affect a dwciri term version)?: None

Current Term definition: https://dwc.tdwg.org/list/#dwc_basisOfRecord
Proposed attributes of the new term:

Term name (in lowerCamelCase for properties, UpperCamelCase for classes): basisOfRecord
Organized in Class (e.g., Occurrence, Event, Location, Taxon): None
Definition of the term (normative): The specific nature of the data record.
Usage comments (recommendations regarding content, etc., not normative): Recommended best practice is to use the standard label of one of the Darwin Core classes.
Examples (not normative): PreservedSpecimen, FossilSpecimen, LivingSpecimen, MaterialSample, Event, HumanObservation, MachineObservation, Taxon, Occurrence, MaterialCitation
Refines (identifier of the broader term this term refines; normative): None
Replaces (identifier of the existing term that would be deprecated and replaced by this term; normative): http://rs.tdwg.org/dwc/terms/version/basisOfRecord-2017-10-06
ABCD 2.06 (XPATH of the equivalent term in ABCD or EFG; not normative): DataSets/DataSet/Units/Unit/RecordBasis

This is to accommodate the addition of the MaterialCitation class.

Done.


[HELP] Zero-3 on partial model to fix the input/output constant constraint

Hello,
We have a multimodal model that is composed of multiple small "embedding" models followed by an large LLM. Because of scale of the training, we need for a multinode setup and we would like to use Zero-3 to reduce the memory footprint of the optimizer state.
Because of this, the input/output of the model may vary in size (and the same can be said for the model architecture). This prohibit us from using Zero-3 all together. Do you know if there is a way to start using Zero-3 in the middle of the model (aka. the boundary between the LLM and the embedded inputs). Notice that we still need gradients to be backpropagated to those embedders and as such we cannot simply consider the embeddings as the input.
I know of the deepspeed.utils.set_z3_leaf_modules method introduced in #4966, however it doesn't fit our use cases.
Do you have any idea or suggestion on how we could achieve this (if possible) ?
Thanks for you time and help !

@BoyeGuillaume, thanks for your question. I think getting more details would be helpful to understand your specific need.
Yes, I think that using a ZeRO-3_LLM in the middle of our model should work to forward loss and propagate back gradients, as below:
input -> SLM -> embed -> ZeRO-3_LLM -> loss
SLM <- grad <- ZeRO-3_LLM <- grad

Can you please try that and share any issues?
In case you are unaware, HF multimodal IDEFICS-80B was trained with ZeRO-3. The following links might be useful.

https://x.com/StasBekman/status/1694004904761987249
https://huggingface.co/HuggingFaceM4/idefics2-8b/discussions/30

I know of the deepspeed.utils.set_z3_leaf_modules method introduced in #4966, however it doesn't fit our use cases.

You are correct that deepspeed.utils.set_z3_leaf_modules is irrelevant for this case.

Thank you for your help, I'll check if this can fix the issue

I maybe wrong but it seems that in the case of IDEFICS-80B the image projection and the text embeddings are consider as input of the network (by that I mean that you cannot train the SLM as there is no gradient past the embedding)

My question is about whether it would be possible to apply Zero-3 optimization on only a portion of the "model" (aka. the LLM part) that is always the same.

Thanks for the clarification of your scenario. Yes, ZeRO-3 can be applied to only the LLM portion of the model. In our RLHF work, the actor, critic, reward, and reference models are configured with different ZeRO-* optimizations, as in this example script.
I am curious if the above rlhf example matches your scenario. Can you share your scenario code or pseudo-code, so we can discuss more concretely.

Thanks I'll check this out,
Concerning our architecture, our entire model fit within a single pytorch.Module that consists of the LLM and all of the models for embedding modalities. We then use the huggingface Trainer (a modified version as  we have additional masking to do) and launch the entire pipeline with pytorch (for distributed training). The huggingface trainer takes the deepspeed configuration directly.

Or it seems to be doable, however we will probably end up getting rid of the huggingface trainer (as it seems it is doing a lot of dirty things in the background 🙃)
Thanks for the help

Concerning our architecture, our entire model fit within a single pytorch.Module that consists of the LLM and all of the models for embedding modalities

In that case, another option could be to use stage3_param_persistence_threshold configuration to restrict ZeRO-3 optimization to only the large parameters of the model.
https://www.deepspeed.ai/docs/config-json/#zero-optimizations-for-fp16-training

You can examine the following line in your log to observe the effectiveness of this approach
https://github.com/microsoft/DeepSpeed/blob/6e6563d3c8d7527713cc48d4a3adce51f22e83a2/deepspeed/runtime/zero/parameter_offload.py#L253-L255

Closing as the issue has been resolved. Please feel free to reopen if needed.


⚠ SceneTime has degraded performance

In f713d90, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 11804 ms

Resolved: SceneTime performance has improved in 4be00b7 after 20 minutes.


Add Redirect Functionality to Website Logo in membership page

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
When I click on the logo in the header, it does not redirect me to the home page as expected.

Expected behavior
Clicking on the logo should redirect the user to the home page.
Add ScreenShots
Clicking on the logo does not result in any action.
On which device are you experiencing this bug?
Chrome
Record

[X] I have read the Contributing Guidelines
[X] I'm a GSSOC'24 contributor
[ ] I'm a VSOC'24 contributor
[X] I have starred the repository

Could you please assign me this under GSSOC 2024 ? I am confident that I can provide a strong solution and would appreciate the opportunity to work on this issue.

@apu52  I’ve made the changes. Please add the 'Level' tag so I can push.


[GUI-v1] invalid data on the x-axis of the graph

I'm submitting a ...

[x] bug report
[ ] feature request
[ ] support request

Do you want to request a feature or report a bug?

bug

What is the current behavior?

invalid data on the x-axis of the graph

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem

publish multiple data

What is the expected behavior?

What is the motivation / use case for changing the behavior?

the behavior of the graph in this version is different from previous versions

Please tell us about your environment:

Version: 0.6.0-rc.1
Environment: kubernetes, docker-compose
Operating system: Ubuntu 20.04

Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, gitter, etc)

in v0.6.0-rc.1

in v0.5.2

Note:

data published at 15:44

the same data after a new publish

K8s

Docker-compose

K8s

Docker-compose


Multiple instances of Tabular Editor being open at once causes error when closing

Recent files json is used by another process

Accidentally posted without comment (sorry). Closing until I get the necessary screenshots/info.

Reopening, now that details are added.

Thanks for reporting this. Never considered that multiple instances could be closed at the exact same time - should be an easy fix.


feat: Update supported go versions to match cloud SDK

that's go 1.19 - go 1.21
This also includes a system_test.sh fix for UID mismatches between the namespaces used by each of our nested containers.

The test failures in Kokoro do not appear related to this change, except the discoveryengine test, which ive captured in #3569


not worked

it is not work for me now(macos14.3, chrome121.0.6167.160(arm64))

it is not work for me now too (edge 121.0.2277.110)


Source git for SRPM

Add --upstream-ref (sourcegit support) to srpm command.
Fix hardcoded cwd when running commands.
Add context manager for temporary git checkouts.
Move patching to the base class.
Remove old CLI files.
Do not use chdir in upstream tests.
Improve git ref handling to support all refs .
Fix problem with local_project.ref type. (local_project.ref is a string)

TODO:

[x] tests
[x] docs

I pushed 2 changes into your branch:

use the new rebase helper API while keeping compatibility with the old one
setting source path to the directory where spec file is in: I needed this for the systemd source-git

2\. setting source path to the directory where spec file is in: I needed this for the systemd source-git

Since you moved the specfile property to PackitRepositoryBase, distgit path does not need to be the same as the ustream one (from the config).
I've changed it to search for the specfile in multiple places --  we try configured path as well as the ./{downstream_package_name}.spec

2\. setting source path to the directory where spec file is in: I needed this for the systemd source-git

Since you moved the specfile property to PackitRepositoryBase, distgit path does not need to be the same as the ustream one (from the config).
I've changed it to search for the specfile in multiple places -- we try configured path as well as the ./{downstream_package_name}.spec

oh my, you're right, I haven't thought of this

Even though tests are failing, let's merge, I'll rebase and let's fix the tests in my jumbo PR


Transpile demo workers to es5

https://github.com/uber/deck.gl/issues/691

This will also solve #618 right?

There seemed to be some problem with trans-piled output.
for example in the Arc Example, the error is located at bundle.js
line 74974
var pageLoadPromise = isBrowser ? new Promise(function (resolve, reject) {
  window.onload = function () {
    isPageLoaded = true;
    resolve(document);
  };
}) : Promise.resolve({});

SCRIPT5009: 'Promise' is undefined
File: bundle.js, Line: 74974, Column: 1

This error is captured in IE 11 Version 11.0.9600.18617

'Promise' is undefined

@kktam  Thanks for reporting this. This should be solvable by the application by importing a polyfill like babel-polyfill or similar.
In the example folder.
yarn add babel-polyfill or
npm install babel-polyfill
In app.js, add
require('babel-polyfill`);

before other code
While we do want to support IE11, I think we should handle this through documentation (i.e. have a section about how to add the polyfill), rather than make all apps pay the cost of a polyfill when all modern browsers already define Promise by default.
@shaojingli @Pessimistress

Opened #845


i cannot run the cli

Am i missing something?

okay never mind. I just npx sign-bunny hello and it works


Write a Python program to reverse an array

Description
Write a Python program to reverse an array
Input  : [1, 2, 3, 4, 5]
Output : [5, 4, 3, 2, 1]

How to contribute

Save the solution in reverse-an-array.py file
Add reverse-an-array.py file in program/reverse-an-array folder

!assign


[Bug]: postgres doesn't care what UID it runs in, but initdb does. user does not exist

Is there an existing issue already for this bug?

[X] I have searched for an existing issue, and could not find anything. I believe this is a new bug.

I have read the troubleshooting guide

[X] I have read the troubleshooting guide and I think this is a new bug.

I am running a supported version of CloudNativePG

[X] I have read the troubleshooting guide and I think this is a new bug.

Contact Details
No response
Version
1.21.0
What version of Kubernetes are you using?
1.28
What is your Kubernetes environment?
Self-managed: k3s
How did you install the operator?
Helm
What happened?
i found a configuration item.
https://github.com/cloudnative-pg/cloudnative-pg/blob/06871b2735823111a3f78ccc57c384447ee1cde5/config/crd/bases/postgresql.cnpg.io_clusters.yaml#L2517
upon using postgresGID and postgresUID, the uid is not changed the user is:
# tl;dr: "logger":"initdb","msg":"initdb: could not look up effective user ID 501: user does not exist\n",
# full log below:
{"level":"error","ts":"2023-11-08T07:54:09Z","msg":"Error while bootstrapping data directory","logging_pod":"cluster0-1-initdb","error":"error while creating the PostgreSQL instance: exit status 1","stacktrace":"github.com/cloudnative-pg/cloudnative-pg/pkg/management/log.(*logger).Error\n\tpkg/management/log/log.go:128\ngithub.com/cloudnative-pg/cloudnative-pg/pkg/management/log.Error\n\tpkg/management/log/log.go:166\ngithub.com/cloudnative-pg/cloudnative-pg/internal/cmd/manager/instance/initdb.initSubCommand\n\tinternal/cmd/manager/instance/initdb/cmd.go:151\ngithub.com/cloudnative-pg/cloudnative-pg/internal/cmd/manager/instance/initdb.NewCmd.func2\n\tinternal/cmd/manager/instance/initdb/cmd.go:104\ngithub.com/spf13/cobra.(*Command).execute\n\tpkg/mod/github.com/spf13/cobra@v1.7.0/command.go:940\ngithub.com/spf13/cobra.(*Command).ExecuteC\n\tpkg/mod/github.com/spf13/cobra@v1.7.0/command.go:1068\ngithub.com/spf13/cobra.(*Command).Execute\n\tpkg/mod/github.com/spf13/cobra@v1.7.0/command.go:992\nmain.main\n\tcmd/manager/main.go:64\nruntime.main\n\t/opt/hostedtoolcache/go/1.21.3/x64/src/runtime/proc.go:267"}
Error: error while creating the PostgreSQL instance: exit status 1

the doc states
--username=username

Selects the user name of the database superuser.
This defaults to the name of the effective user running initdb.
It is really not important what the superuser's name is,
but one might choose to keep the customary name postgres,
even if the operating system user's name is different.

therefor to set uid/gid expects the system to create the user before starting the process. which it does not
relevant excerpt from: https://hub.docker.com/_/postgres
The main caveat to note is that postgres doesn't care what UID it runs as (as long as the owner of /var/lib/postgresql/data matches), but initdb does care (and needs the user to exist in /etc/passwd):

the easiest way around this it to include a chmod operation before the pod starts.
bitnami has an implementation of such a process.
https://github.com/bitnami/charts/blob/main/bitnami/postgresql/templates/primary/statefulset.yaml
what do i expect
i would like for the instance manager to create the user if its uid is missing.
Cluster resource
No response
Relevant log output
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

i found the exec command
https://github.com/cloudnative-pg/cloudnative-pg/blob/8cceb710d459bf93da94a5ca115c63e2908afdc5/pkg/utils/exec.go#L42
gonna look at the bootstrap

It seems to be that ignoring containerSecurityContext is the problem, unless I don't understand the problem. Why doesn't  runAsUser, runAsGroup (and maybe fsGroup) override postgresUID and postgresGID?

@ndrwstn
well its in the title.
pg wont care if a user exists on the system but initdb, initializing the pg db does.
so if you provide a uid/gid which does not exists your pods wont start up because of it.

I don't understand your response,then Isn't the point of containerSecurityContext to provide the user/group that the container is supposed to run as. I guess there is a scenario where someone is assigning that to a user that doesn't exist, but why? And if initdb respects the security context (and we trust the end-user not to put nonsense into security context), doesn't that solve the problem?
I'm just looking for an alternative answer as it didn't seem like they're going to accept your PR due to the need for root access.

running the container with the gid/uid from nobody as sensible default might be the safest bet security wise and a valid reason.
iirc the securityContext in itself does not change the underlying system in itself. it just runs the container along the asigned gid/uid.

I hadn't thought of that, but it's a good point.

There seems to be a misunderstanding regarding the CNPG operator. It assumes that the container images it runs have a postgres user with UID 26 (which is the default in RHEL systems). However, if your image requires a different value, you can change the UIDs by using the postgresUID and postgresGID fields. It is the responsibility of the image creator to ensure that the user exists.
I would like to highlight that initdb is not the only tool that requires an environment to have a line in /etc/passwd for the current UID. There are many other tools and extensions that also require this, so it is not safe to assume that a tool will work correctly in a misconfigured container.
It is the responsibility of the person who builds the container image to include the postgres user inside the Postgres container. If the environment changes the user to something different, such as OpenShift's restricted SCC, then it is up to the environment to make sure that the user exists within the /etc/password file, and our operator supports it.

@mnencia given id like to add such a user beforehand. How would i approach this?
to shuffle the responsibility onto the user is easy, but if its not possible to solve it might be the wrong thing to do.

Hello @wibed and @ndrwstn
From a security point of view, this is not plausible since there's system that will not rely on the user provided and will
change it applying different security policies, so this will be blocking everything that may use a different user.
Following on the security side, creating a UID or a GID requires super user privileges, the images are, and should always be, by default, run as non root, having a root user inside a PostgreSQL image, is, in all the possible meanings a really bad idea, and should never be the use case, now, going back to the patch, if that's required, this it's a fully no go for this.
Related to the image, presumes that a couple of commands are there, well, the major problem here will be with a PostgreSQL image using alpine or ubi, even worst, what if we use a distroless image? this for sure will not work.
I think it's clear here that the problem shouldn't be handled at runtime level but when the image is created, but moreover, here is missing a way to reproduce the issue, I don't fully understand because we can't reproduce, can you add the steps to reproduce here so we can see more clearly how you reached this point?
Regards,


Codelive/chatter recipes

What does this PR do?
Adds some basic chatter recipes

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@038131f). Click here to learn what that means.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main     #193   +/-   ##
=======================================
  Coverage        ?   94.06%
=======================================
  Files           ?       52
  Lines           ?     1701
  Branches        ?        0
=======================================
  Hits            ?     1600
  Misses          ?      101
  Partials        ?        0

Flag
Coverage Δ

Apex
94.06% <100.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...default/classes/Chatter Recipes/ChatterRecipes.cls
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


ipython notebook deprecated

remove references to ipython notebook and replace with jupyter notebook

Also should update the example notebooks. They've completely refactored their docs.

Examples covered in #83.


Minify Javascript Code Myself

It is not really an issue. I wanted to add some functionality myself.
For example include tags in picture files when you are downloading the album or have ability to download your search results the same way as albums (useful when your friend wants all pictures with him/her).
There are javascript files in lychee/src/scripts/ however they are no used, so changes to them do not have any effect. lychee/dist/main.js is a file that is actually used. It is all files from scripts folder jammed together and minified. I was wondering what software do you use to jam and minify multiple JS files.

It is minified using Gulp (and its plugins). See the Lychee/docs/Build.md for description how to do it. You have to install NodeJS and use npm.

This issue will be closed because I'm not actively working on Lychee anymore. The repository of Lychee will stay available, but the main development continues under the Lychee Organisation. A fork maintained by the community. Important issues have been migrated. Feel free to re-add your issue(s) when necessary.


PromQL : default() function addition

Proposal
Use case. Why is this important?
It would be a nice addition in the promql functions, to be able to default an undefined or non existent variable, the same way you can do it in ansible using the jinja2 default filter :
{{ some_variable | default(5) }}.
In my usecase, I'm defining custom threshold for some VM, and would like to have only one alert for all of them, and to do so I need a way to default an undefined variable.
In promql, it would be something like this :
((vmware_vm_guest_disk_free * 100) / vmware_vm_guest_disk_capacity <= default(5,on(vm_name) group_left vm_disk_threshold))
Hopefully it makes sense

This is already possible with or.
It makes more sense to ask questions like this on the prometheus-users mailing list rather than in a GitHub issue. On the mailing list, more people are available to potentially respond to your question, and the whole community can benefit from the answers provided.


Rasa shell --debug RuntimeError

Rasa version: 1.7.0
Python version: 3.7.3
Operating system (windows, osx, ...): MacOS Catalina 10.15.3
Issue:
After updating to Rasa 1.7.0 whatever I run the command rasa shell --debug the console return this output
Error (including full traceback):
2020-02-01 14:15:48 DEBUG    rasa.model  - Extracted model to '/var/folders/vr/r9cxzr112jz28wybywj5kx_r0000gn/T/tmptzfyn3s9'.
2020-02-01 14:15:48 DEBUG    rasa.cli.utils  - Parameter 'endpoints' not set. Using default location 'endpoints.yml' instead.
2020-02-01 14:15:48 DEBUG    rasa.cli.utils  - Parameter 'credentials' not set. Using default location 'credentials.yml' instead.
2020-02-01 14:15:49 DEBUG    rasa.model  - Extracted model to '/var/folders/vr/r9cxzr112jz28wybywj5kx_r0000gn/T/tmpyj3erf_8'.
2020-02-01 14:15:50 INFO     root  - Connecting to channel 'cmdline' which was specified by the '--connector' argument. Any other channels will be ignored. To connect to all given channels, omit the '--connector' argument.
2020-02-01 14:15:50 DEBUG    sanic.root  - CORS: Configuring CORS with resources: {'/*': {'origins': [''], 'methods': 'DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT', 'allow_headers': ['.*'], 'expose_headers': None, 'supports_credentials': True, 'max_age': None, 'send_wildcard': False, 'automatic_options': True, 'vary_header': True, 'resources': {'/*': {'origins': ''}}, 'intercept_exceptions': True, 'always_send': True}}
2020-02-01 14:15:50 DEBUG    rasa.core.utils  - Available web server routes:
/webhooks/rest                                     GET                            custom_webhook_CmdlineInput.health
/webhooks/rest/webhook                             POST                           custom_webhook_CmdlineInput.receive
/                                                  GET                            hello
2020-02-01 14:15:50 INFO     root  - Starting Rasa server on http://localhost:5005
2020-02-01 14:15:50 DEBUG    rasa.core.utils  - Using the default number of Sanic workers (1).
2020-02-01 14:15:50 INFO     root  - Enabling coroutine debugging. Loop id<PHONE_NUMBER>.
--- Logging error ---
--- Logging error ---
Exception ignored in: <built-in method call_exception_handler of Loop object at 0x134ff6018>
Traceback (most recent call last):
  File "uvloop/loop.pyx", line 2359, in uvloop.loop.Loop.call_exception_handler
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/logging/__init__.py", line 1412, in error
    self._log(ERROR, msg, args, **kwargs)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/logging/__init__.py", line 1519, in _log
    self.handle(record)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/logging/__init__.py", line 1529, in handle
    self.callHandlers(record)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/logging/__init__.py", line 1591, in callHandlers
    hdlr.handle(record)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/logging/__init__.py", line 905, in handle
    self.emit(record)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/logging/__init__.py", line 1040, in emit
    self.handleError(record)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/logging/__init__.py", line 958, in handleError
    traceback.print_exception(t, v, tb, None, sys.stderr)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/traceback.py", line 104, in print_exception
    type(value), value, tb, limit=limit).format(chain=chain):
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/traceback.py", line 508, in __init__
    capture_locals=capture_locals)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/traceback.py", line 363, in extract
    f.line
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/traceback.py", line 285, in line
    self._line = linecache.getline(self.filename, self.lineno).strip()
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/linecache.py", line 16, in getline
    lines = getlines(filename, module_globals)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/linecache.py", line 48, in getlines
    for mod in sys.modules.values():
RuntimeError: dictionary changed size during iteration
2020-02-01 14:15:52 DEBUG    rasa.model  - Extracted model to '/var/folders/vr/r9cxzr112jz28wybywj5kx_r0000gn/T/tmpgwcc3vxo'.
2020-02-01 14:15:56 INFO     absl  - Entry Point [tensor2tensor.envs.tic_tac_toe_env:TicTacToeEnv] registered with id [T2TEnv-TicTacToeEnv-v0]
2020-02-01 14:15:57 DEBUG    rasa.core.tracker_store  - Connected to InMemoryTrackerStore.
2020-02-01 14:15:57 DEBUG    rasa.core.lock_store  - Connected to lock store 'InMemoryLockStore'.
2020-02-01 14:15:58 DEBUG    rasa.model  - Extracted model to '/var/folders/vr/r9cxzr112jz28wybywj5kx_r0000gn/T/tmpsl28r2sv'.
2020-02-01 14:15:58 DEBUG    pykwalify.compat  - Using yaml library: /Users/marco/programmazione/cxp/cxp-rasa-chatbot/venv/lib/python3.7/site-packages/ruamel/yaml/__init__.py
2020-02-01 14:16:00 DEBUG    rasa.core.nlg.generator  - Instantiated NLG to 'TemplatedNaturalLanguageGenerator'.
Unable to start server
Traceback (most recent call last):
  File "/Users/marco/programmazione/cxp/cxp-rasa-chatbot/venv/lib/python3.7/site-packages/sanic/server.py", line 860, in serve
    http_server = loop.run_until_complete(server_coroutine)
  File "uvloop/loop.pyx", line 1433, in uvloop.loop.Loop.run_until_complete
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/asyncio/tasks.py", line 581, in ensure_future
    task = loop.create_task(coro_or_future)
  File "uvloop/loop.pyx", line 1396, in uvloop.loop.Loop.create_task
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/traceback.py", line 211, in extract_stack
    stack = StackSummary.extract(walk_stack(f), limit=limit)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/traceback.py", line 363, in extract
    f.line
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/traceback.py", line 285, in line
    self._line = linecache.getline(self.filename, self.lineno).strip()
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/linecache.py", line 16, in getline
    lines = getlines(filename, module_globals)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/linecache.py", line 48, in getlines
    for mod in sys.modules.values():
RuntimeError: dictionary changed size during iteration
/Users/marco/programmazione/cxp/cxp-rasa-chatbot/venv/lib/python3.7/site-packages/sanic/app.py:1133: RuntimeWarning: coroutine 'Loop.create_server' was never awaited
  serve(**server_settings)

Thanks for raising this issue, @TyDunn will get back to you about it soon✨
Please also check out the docs and the forum in case your issue was raised there too 🤗

Hi @mrcsilverfox! I tried to reproduce this with a clean install on my own machine and did not run into this issue. Does it also happen if you run rasa init --no-prompt and then rasa shell debug.
There was this issue reported last week that also had to do with uvloop, but it was fixed in Rasa 1.6.2

Hi @TyDunn! I have some issue to install rasa from scratch. I executed this step
mkdir rasa-chatbot
python3 -m vena --system-site-packages ./venv
source venv/bin/activate
python -m pip install rasa

Whenever I run rasa --version the console returns this error:
Traceback (most recent call last):
  File "/Users/marco/programmazione/cxp/cxp-rasa-chatbot/venv/bin/rasa", line 5, in <module>
    from rasa.__main__ import main
ModuleNotFoundError: No module named 'rasa'

In relation to the initial problem, after updating rasa from version 1.4.3 to 1.7.0 I have this requirements:
absl-py==0.9.0
aiofiles==0.4.0
aiohttp==3.6.2
APScheduler==3.6.3
astor==0.8.1
async-generator==1.10
async-timeout==3.0.1
attrs==19.3.0
boto3==1.11.5
botocore==1.14.5
bz2file==0.98
cachetools==4.0.0
certifi==2019.11.28
cffi==1.13.2
chardet==3.0.4
Click==7.0
cloudpickle==1.2.2
colorclass==2.2.0
coloredlogs==10.0
colorhash==1.0.2
ConfigArgParse==1.0
cryptography==2.8
cycler==0.10.0
decorator==4.4.1
dill==<IP_ADDRESS>
dnspython==1.16.0
docopt==0.6.2
docutils==0.15.2
dopamine-rl==3.0.1
fbmessenger==6.0.0
Flask==1.1.1
future==0.18.2
gast==0.2.2
gevent==1.4.0
gin-config==0.3.0
google-api-python-client==1.7.11
google-auth==1.10.1
google-auth-httplib2==0.0.3
google-pasta==0.1.8
googleapis-common-protos==1.51.0
greenlet==0.4.15
grpcio==1.26.0
gunicorn==20.0.4
gym==0.15.4
h11==0.8.1
h2==3.1.1
h5py==2.10.0
hpack==3.0.0
httpcore==0.3.0
httplib2==0.16.0
httptools==0.0.13
humanfriendly==4.18
hyperframe==5.2.0
idna==2.8
importlib-metadata==1.4.0
itsdangerous==1.1.0
Jinja2==2.10.3
jmespath==0.9.4
jsonpickle==1.2
jsonschema==3.2.0
Keras-Applications==1.0.8
Keras-Preprocessing==1.1.0
kfac==0.2.0
kiwisolver==1.1.0
Markdown==3.1.1
MarkupSafe==1.1.1
matplotlib==3.1.2
mattermostwrapper==2.1
mesh-tensorflow==0.1.9
more-itertools==8.1.0
mpmath==1.1.0
multidict==4.6.1
networkx==2.4
nltk==3.4.5
numpy==1.18.1
oauth2client==4.1.3
opencv-python==<IP_ADDRESS>
opt-einsum==3.1.0
packaging==19.2
pika==1.0.1
Pillow==7.0.0
promise==2.3
prompt-toolkit==2.0.10
protobuf==3.11.2
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycparser==2.19
pydot==1.4.1
pyglet==1.3.2
PyJWT==1.7.1
pykwalify==1.7.0
pymongo==3.10.1
pyparsing==2.4.6
pypng==0.0.20
pyrsistent==0.15.7
python-crfsuite==0.9.6
python-dateutil==2.8.1
python-dotenv==0.10.3
python-engineio==3.11.2
python-socketio==4.4.0
python-telegram-bot==11.1.0
pytz==2019.3
PyYAML==5.3
questionary==1.4.0
rasa==1.7.0
rasa-sdk==1.7.0
redis==3.3.11
requests==2.22.0
requests-async==0.5.0
requests-toolbelt==0.9.1
rfc3986==1.3.2
rocketchat-API==0.6.36
rsa==4.0
ruamel.yaml==0.15.100
s3transfer==0.3.1
sanic==19.9.0
Sanic-Cors==0.9.9.post1
sanic-jwt==1.4.0
Sanic-Plugins-Framework==0.8.2
scikit-learn==0.20.4
scipy==1.4.1
six==1.14.0
sklearn-crfsuite==0.3.6
slackclient==1.3.2
SQLAlchemy==1.3.12
sympy==1.5.1
tabulate==0.8.6
tensor2tensor==1.14.1
tensorboard==1.15.0
tensorflow==1.15.0
tensorflow-cpu==1.15.0
tensorflow-cpu-estimator==1.15.1
tensorflow-datasets==1.3.2
tensorflow-estimator==1.15.1
tensorflow-gan==2.0.0
tensorflow-hub==0.7.0
tensorflow-metadata==0.21.0
tensorflow-probability==0.7.0
termcolor==1.1.0
terminaltables==3.1.0
tqdm==4.41.1
twilio==6.35.2
tzlocal==2.0.0
ujson==1.35
uritemplate==3.0.1
urllib3==1.25.7
uvloop==0.14.0
wcwidth==0.1.8
webexteamssdk==1.2
websocket-client==0.54.0
websockets==8.1
Werkzeug==0.16.0
wrapt==1.11.2
yarl==1.4.2
zipp==1.0.0

I have been facing the same issue when I run the command for rasa-demo bot Sarah

Hi @vaibhavgupta0786. Can you please create a new issue filling out the information like above?

I got the same issue.
Upgrading python to 3.7.7 (at this time) fixed it for me


A few suggestions abut the mod.

It would be nice if we had a few settings, to generate a more specific map more easily:

Number of rivers.
Number of water sources (in total).
Height contrast. (Look at the map ViperHead, for example. I attached a modified version with underground ruins added.)
Starting Point distance from the water source.
Starting Point distance from water.

256x256 Viperhead Canyon (v1) withMine.zip

By the way, thanks for updating the mod to work with Thunderstore! Much appreciated!

A few "map types" with various settings for each are actaully planned.  I want to port the mod to completely C# based first, and then I will start adding a whole gui full of options, piece by piece. :)
In short, big things are planned, just a matter of finishing the C# port and a lot more will start to be exposed.

Sadly, I just gave up on the idea of a C# port...  at least for now.  The Python script just works, and as much as it's a pain for Mac users, for right now it's the easiest way forward.
I spent the last 2 days wrangling typeless python to typed C# and lets just say it's a mess I wanna put aside for a while lol.
Yes, that means I can start working on new map types.  I'll probably start by exposing options on the existing generator in a nice GUI...  will update soon.

The C# port is actually coming along nicely, and I plan to launch it alongside a GUI app exposing a settings interface to the map generator for all kinds of options, so it looks like your request will be fulfilled soon. :)

Thanks for the great changes!
You added presets in the form of .ini files. Please consider adding a dropdown menu from which we can choose from the presets you offer, which to overwrite the settings we currently have, and any change should move it to the Custom "preset" which to let us freely change the settings. This way, people can quickly load the settings for the kind of map they want, then optionally people would tweak the settings a little bit, to get the perfect map for them. Not only that, but you could ask people to submit settings as issues or pull requests, for certain map types.
I'm looking forward to the evolution of your mod!

Yes, I am working on this now, we seem to think alike heh.
The only issue I am running into is dropdowns don't really...  work.  The GUI item for them in Timberborn/Fragment UI is really broken.  I will have to make do with something else.  Working on it.


client.get_user discards returned fields

Hi there.
The below call
response = client.get_user(username='jack', user_fields=['description'])
returns this:
Response(data=<User id=12 name=jack username=jack>, includes={}, errors=[], meta={})
As you see only id, name and username are there, there's no "description", and "includes" is empty (and I have triple-checked, it is not just missing in the printed version).
Now here are the logs:
Headers: {'date': 'Wed, 26 Oct 2022 22:38:43 UTC',  XXXXXXXXX 'x-response-time': '25', XXXXXXX Content: b'{"data":{"description":"#bitcoin","username":"jack","id":"12","name":"jack"}}'
As you see the description field is in the response. But it is discarded, apparently in:
https://github.com/tweepy/tweepy/blob/48ebdb7face9188a352bfa82c616b20c6de12475/tweepy/client.py#L148
Same thing happens with "profile_image_url" and alike. What am I missing?

Why am I not getting expansions or fields data with API v2 using Client?
If you are simply printing the objects and looking at that output, the string representations of API v2 models/objects only include the default fields that are guaranteed to exist.
The objects themselves still include the relevant data, which you can access as attributes or by subscription.
There’s also a data attribute/key that provides the entire data dictionary.

https://tweepy.readthedocs.io/en/v4.11.0/faq.html#why-am-i-not-getting-expansions-or-fields-data-with-api-v2-using-client

it is not just missing in the printed version

includes is empty because you're not requesting any expansions.
As for description, I'm unable to reproduce this:
>>> response = client.get_user(username='jack', user_fields=['description'])
>>> response.data.description
'#bitcoin'

There is no "discarding" being done.
Feel free to create a new issue if you have a reproducible example (MCVE/SSCCE) of missing fields.


Email notifications for comment replies say "Re: New comment posted on None"

Checklist

[x] I am running the latest version. Installing Isso from GitHub from the master branch does not fix my issue
[x] I have checked the troubleshooting guide
[x] I have searched the open issues, but my issue has not already been reported

What is not working?
When an email notification is sent for a reply to one of your comments, the subject of the message says Re: New comment posted on None. I haven't had time to debug this yet, but it did happen in my local testing as well in the past (but I forgot to report it).
Not sure if this is related but it also says "Thread: None" for all comments/replies in the admin panel.
How can one reproduce this issue?

Also I remember when I was testing it that there aren't email notifications if you reply to your own message (that threw me off a bit, but it makes sense).

isso.cfg

# Isso configuration file
# vim: set filetype=cfg
# https://posativ.org/isso/docs/configuration/server/

[general]

# file location to the SQLite3 database, highly recommended to change this
# location to a non-temporary location!
dbpath = /db/comments.db

# required to dispatch multiple websites, not used otherwise.
# name =

# Your website(s). If Isso is unable to connect to at least one site, you'll
# get a warning during startup and comments are most likely non-functional.
#
# You'll need at least one host/website to run Isso. This is due to security
# reasons: Isso uses CORS_ to embed comments and to restrict comments only to
# your website, you have to "whitelist" your website(s).
#
# I recommend the first value to be a non-SSL website that is used as fallback
# if Firefox users (and only those) supress their HTTP referer completely:
#
# host =
#     http://example.tld/
#     https://example.tld/
#
host =
    http://bbaovanc.com/
    https://bbaovanc.com/
    http://demo.bbaovanc.com/
    https://demo.bbaovanc.com/
    http://localhost:1313/
    https://localhost/

# time range that allows users to edit/remove their own comments.
# It supports years, weeks, days, hours, minutes, seconds.
# 3h45m12s equals to 3 hours, 45 minutes and 12 seconds.
max-age = 15m

# Select notification backend for new comments. Currently, only SMTP is
# available.
# Select notification backend(s) for new comments, separated by comma.
# Available backends:
#
# stdout
#     Log to standard output. Default, if none selected.
# smtp
#     Send notifications via SMTP on new comments with activation (if
#     moderated) and deletion links.
notify = smtp

# Allow users to request E-mail notifications for replies to their post.
# WARNING: It is highly recommended to also turn on moderation when enabling
# this setting, as Isso can otherwise be easily exploited for sending spam.
reply-notifications=true

# Log console messages to file instead of standard output.
# log-file =

# adds property "gravatar_image" to json response when true
# will automatically build md5 hash by email and use "gravatar_url" to build
# the url to the gravatar image
gravatar = false

# default url for gravatar. {} is where the hash will be placed
# `s=55` results in height and width of 55px.
# for other options, see http://en.gravatar.com/site/implement/images/
# gravatar-url = https://www.gravatar.com/avatar/{}?d=identicon&s=55

# enable the "/latest" endpoint, that serves comment for multiple posts (not
# needing to previously know the posts URIs)
# latest-enabled = false

[admin]
enabled = true

# Admin access password
password = [redacted]

[moderation]
# enable comment moderation queue. This option only affects new comments.
# Comments in modertion queue are not visible to other users until you activate
# them.
enabled = true

# with moderation enabled, automatically approve new comments by an
# author if they've had comments approved within the last 6 months
# Note: No verification is done on the email addresses entered by commenters.
# This means that if someone is able to guess correctly the email address used
# by a previously approved author, they will be able to have their new comment
# auto-approved. For this reason, we recommend that you also activate SMTP
# notification if you activate this option, so that you will see
# auto-approved comments as they get posted.
approve-if-email-previously-approved = false

# remove unprocessed comments in moderation queue after given time.
# purge-after = 30d

[server]
# interface to listen on. Isso supports TCP/IP and unix domain sockets: UNIX
# domain socket listen = unix:///tmp/isso.sock TCP/IP listen =
# http:///localhost:1234/
#
# When gevent is available, it is automatically used for http:// Currently,
# gevent can not handle http requests on unix domain socket (see #295 and #299
# for details).  Does not apply for uWSGI.
listen = http://<IP_ADDRESS>:8080

# public URL that Isso is accessed from by end users. Should always be a
# http:// or https:// absolute address. If left blank, automatic detection is
# attempted.
public-endpoint = https://isso.bbaovanc.com

# reload application, when the source code has changed. Useful for development.
# Only works with the internal webserver.
reload = off

# show 10 most time consuming function in Isso after each request. Do not use
# in production.
profile = off

# an optional list of reverse proxies IPs behind which you have deployed
# your Isso web service (e.g. `<IP_ADDRESS>`).
# This allow for proper remote address resolution based on a
# `X-Forwarded-For` HTTP header, which is important for the mechanism
# forbiding several comment votes coming from the same subnet.
# trusted-proxies =

# Override Set-Cookie header SameSite value.
# Needed for setups where isso is not hosted on the same domain, e.g. called
# from example.org and hosted under comments.example.org.
# By default, isso will set SameSite=None when served over https and
# SameSite=Lax when served over http.
# See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite
# and https://github.com/posativ/isso/issues/682
# Accepted values: None, Lax, Strict
# samesite =

[smtp]
# Isso can notify you on new comments via SMTP. In the email notification, you
# also can moderate (=activate or delete) comments.

# self-explanatory, optional
username =<EMAIL_ADDRESS>
# self-explanatory (yes, plain text, create a dedicated account for
# notifications), optional.
password = [redacted]

# SMTP server
host = mail.bbaovanc.com

# SMTP port
port = 587

# use a secure connection to the server, possible values: none, starttls or
# ssl. Note, that there is no easy way for Python 2.7 and 3.3 to implement
# certification validation and thus the connection is vulnerable to
# Man-in-the-Middle attacks. You should definitely use a dedicated SMTP account
# for Isso in that case.
security = starttls

# recipient address, e.g. your email address
to = [redacted]

# sender address, e.g. "Foo Bar"<EMAIL_ADDRESS>from = "Isso Comment System"<EMAIL_ADDRESS>
# specify a timeout in seconds for blocking operations like the
# connection attempt.
timeout = 10

[guard]
# Enable basic spam protection features, e.g. rate-limit per IP address (/24
# for IPv4, /48 for IPv6).

# enable guard, recommended in production. Not useful for debugging purposes.
enabled = true

# limit to N new comments per minute.
ratelimit = 3

# how many comments directly to the thread (prevent a simple while true; do
# curl ...; done.
#direct-reply = 3
direct-reply = 100

# allow commenters to reply to their own comments when they could still edit
# the comment. After the editing timeframe is gone, commenters can reply to
# their own comments anyways. Do not forget to configure the client.
reply-to-self = true

# force commenters to enter a value into the author field. No validation is
# performed on the provided value.  Do not forget to configure the client
# accordingly.
require-author = false

# require the commenter to enter an email address (note: no validation is
# done on the provided address). Do not forget to configure the client.
require-email = false

[markup]
# Customize markup and sanitized HTML. Currently, only Markdown (via Misaka) is
# supported, but new languages are relatively easy to add.

# Misaka-specific Markdown extensions, all extensions can be used here,
# separated by comma, either by their name or by EXT_<extension>.
# Careful: Misaka 1.0 used "snake_case", but 2.0 needs "dashed-case"!
options = strikethrough, superscript, autolink, fenced-code

# Misaka-specific HTML rendering flags, all html rendering flags can be used
# here, separated by comma, either by their name or as HTML_<flag>.
# Per Misaka's defaults, no flags are set.
# flags =

# Additional HTML tags to allow in the generated output, comma-separated. By
# default, only a, blockquote, br, code, del, em, h1, h2, h3, h4, h5, h6, hr,
# ins, li, ol, p, pre, strong, table, tbody, td, th, thead and ul are allowed.
# allowed-elements =

# Additional HTML attributes (independent from elements) to allow in the
# generated output, comma-separated. By default, only align and href are
# allowed.
# allowed-attributes =

[hash]
# Customize used hash functions to hide the actual email addresses from
# commenters but still be able to generate an identicon.

# A salt is used to protect against rainbow tables. Isso does not make use of
# pepper (yet). The default value has been in use since the release of Isso and
# generates the same identicons for same addresses across installations.
salt = [redacted]

# Hash algorithm to use -- either from Python's hashlib or PBKDF2 (a
# computational expensive hash function).
#
# The actual identifier for PBKDF2 is pbkdf2:1000:6:sha1, which means 1000
# iterations, 6 bytes to generate and SHA1 as pseudo-random family used for key
# strengthening. Arguments have to be in that order, but can be reduced to
# pbkdf2:4096 for example to override the iterations only.
algorithm = pbkdf2

[rss]
# Provide an Atom feed for each comment thread for users to subscribe to.

# The base URL of pages is needed to build the Atom feed. By appending
# the URI, we should get the complete URL to use to access the page
# with the comments. When empty, Atom feeds are disabled.
base = https://bbaovanc.com

# Limit the number of elements to return for each thread.
limit = 100

Yeah they weren't receiving titles. But it does work if I add the data-title attribute to my #isso-thread. Then I guess I'll have to go through and update the title in my database for my existing posts where the title is null.

The parse logic probably ought to be changed (I think it also fails if you have nested elements inside h1 tags, e.g.
My title
)
Note that title detection from the server side seems fine in the wild:
Adding https://bbaovanc.com to hosts of a local dev instance and then
curl 'http://localhost:8080/new?uri=/blog/auditing-with-google-lighthouse-and-github-actions/' \
  -d '{"text": "new comment", "author": "foo", "email"<EMAIL_ADDRESS>\
  -H 'Content-Type: application/json'

works fine, title gets created.
As for titles sent by the JS taking precedence:
https://github.com/posativ/isso/blob/e786aa9be651cd367c0973d3a9e220f89803486a/isso/js/app/isso.js#L130
https://github.com/posativ/isso/blob/e786aa9be651cd367c0973d3a9e220f89803486a/isso/views/comments.py#L282-L287
I think the JS-land null might be translated to None in python.
But:
mydict = dict(a='hi', b=None)
'b' in mydict
~> True
'b' not in mydict
~> False

So this would be my solution:
diff --git a/isso/views/comments.py b/isso/views/comments.py
index 4304692..03bc00c 100644
--- a/isso/views/comments.py
+++ b/isso/views/comments.py
@@ -279,7 +279,7 @@ class API(object):

         with self.isso.lock:
             if uri not in self.threads:
-                if 'title' not in data:
+                if not data.get('title'):
                     with http.curl('GET', local("origin"), uri) as resp:
                         if resp and resp.status == 200:
                             uri, title = parse.thread(resp.read(), id=uri)

With title set to null:
curl 'http://localhost:8080/new?uri=/blog/auditing-with-google-lighthouse-and-github-actions/' -d '{"text": "new comment", "author": "foo", "email"<EMAIL_ADDRESS>"title": null}' -H 'Content-Type: application/json'

and using .get() instead of checking not in data also scrapes the title just fine. Opening a PR.


[RELAY][OP] Support MXNet-style attributes for reshape_like

This PR adds MXNet-style shape slicing attributes for reshape_like, to enable reshaping part of a shape (using part of another shape). In particular, this adds lhs_begin, lhs_end, rhs_begin, rhs_end.
cc @kevinthesun @icemelon9 @junrushao1994

Thanks @altanh @tkonolige @electriclilies @jroesch @giuseros! It is now merged :-)


Return all occurrences of geo and time

To make things easer on the front side, the DAG is now uploading to postgres the stats table with all occurrences of geo (especially sections and communes) and time (YYYY-MM), with potentially many rows containing empty values. The table with no empy values is uploaded to Minio and published to (demo.)data.gouv.fr.

This PR touch too many files on this repo instead on only DVF. Can you maybe rebase to be more clear ?

Aborting this PR : it aims at etalab/master instead of etalab/main


Cleanup docker files

Simplification of docker files, conf files, etc.
Closes https://github.com/inventree/InvenTree/issues/1457
Docs PR - https://github.com/inventree/inventree-docs/pull/102

So with my default config I'm getting something that looks like this:
inventree-web       | Could not connect to database: FATAL:  database "inventree" does not exist
db                  | 2021-04-18 08:50:10.614 UTC [113] FATAL:  database "inventree" does not exist
inventree-worker    | Could not connect to database: FATAL:  database "inventree" does not exist

It's easy to fix for me, but it would be nice if it were configured.

@rcludwick currently (as per the docker setup guide ) the database is created as a manual step in the setup process.
Are you suggesting that the database should be created automatically? Is this "safe"?

I pretty sure you just need to run django migrations to create the db for you.  And it's safe.  So django migrations won't destroy any existing DB that exists.

Looked over your docker changes and they look good to me.

I do not think that you can auto-create a db (except if you're using the sqlite backend):
https://docs.djangoproject.com/en/3.2/intro/tutorial02/#database-setup

It looks like you're right.   I use postgres at work for my development database, and I swear I didn't have to, but it's also 3:30am here so I can't really remember right now.  :smile:
What's weird is that unit tests have no issues creating databases on postgres.... So ...


I tried to apply talos tool to find hyperparameters on a datset but I got the error: module 'keras_preprocessing.image' has no attribute 'DataFrameIterator'

Thank you very much for reporting a bug on Talos. Before you do, please go through the below checklist carefully and make sure to prepare your bug report in a way that facilitates effective handling of the matter.
1) Confirm the below

[ ] My Python version is 3.5 or higher
[ ] I have searched through the issues Issues for a duplicate
[ ] I've tested that my Keras model works as a stand-alone

2) Include the output of:
talos.__version__
3) Explain clearly what you expect to happen
A description of what you tried to do and what you thought should happen.
4) Explain what actually happened
A description of the issue in Talos that you had identified
5) Provide a code-complete reference

[ ] My bug report includes an input model
[ ] My bug report includes a parameter dictionary
[ ] My bug report includes a Scan() command
[ ] My bug report question includes a link to a sample of the data

NOTE: If the data is sensitive and can't be shared, create dummy data that mimics it.
A self-contained Jupyter Notebook, Google Colab, or similar is highly preferred and will speed up helping you with your issue.

You get this error from Keras, it has to do with your model or the Keras version you are using. Closing here, feel free to open new one if anything.


Upgrade to logback 1.1.10

@arteam logback 1.1.10 was merged into dropwizard in https://github.com/dropwizard/dropwizard/pull/1918, do you want to update to that version in metrics too?

Yes. Updated the version.


280 character fix/blacklisting capabilities

With Twitter increasing the character limit from 140 to 280 a while back, I figured twitter_ebooks needed some updating (as did some others apparently, which I only saw afterward). I made the ebooks archive command fetch from twitter in expanded mode (by default it truncated long tweets) and increased the hard character limits in places.
I also added blacklisting/banned word capability based on https://blog.boodoo.co/2014/06/27/how-to-make-an-_ebooks.html
I converted it to reading .txt files (default is "banned_words.txt"), and added an optional command to change what file the banlist is read from for potential bots with multiple ban lists.

On second thought I've made my own fork with the changes I need. This codebase doesn't seem to be maintained anymore regardless.


malposition

I tried to reproduce it. But I couldn't. I checked everything and this problem shouldn't happen. But since I created a new version anyways, I just reworked the dialog a bit. I just hope it didn't get worse.
If you have any issues with the new version, please tell me. But I hope its fixed for you now.
You can get the new version <IP_ADDRESS> here: https://github.com/SebastianBecker2/PowerPlanSwitcher/releases
Just install the new version. It replaces the old one.


Add license inside the library

Thanks for bringing this up, I decided to just add a note about the license type instead of embedding the full license text.


Sets new lower limits based on latest SMP nightly build

What does this PR do?
Adjusts the memory limits on quality_gate experiments
Motivation
Accounting for the RSS win posted by @pgimalac in https://github.com/DataDog/datadog-agent/pull/32174
Describe how you validated your changes

Possible Drawbacks / Trade-offs
Additional Notes

/merge


Still supported?

Hi!
Its awesome that this plugin has been made, and thanks a lot for that. I am only questioning if it is stil maintained, and working for Gatsby v4?

wondering the same.

according to #4 its not working with Gatsby v4


Updates bosh-env doc to show bosh-env usage

Previously it showed usage for apply-changes

@clhynfield Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

@clhynfield Thank you for signing the Contributor License Agreement!

Sorry, should have noted that this fixes #322

Looks good! Thanks @clhynfield !