Changes to File Overwritten if Changing Schema

First of all, I saw this in Golang Weekly the other day and this is just fantastic. Thanks for making such a cool tool.
After playing around with this for a bit, I've noticed that I'm having to edit the generated code quite a bit to customize the admin interface. i.e. I added a profile photo field, so I have to go into the generated code and change the type from editor.Input to editor.File. And then I added a relationship status field, so I had to go in and change it to editor.Select and add my choices.
After making these changes, I then realized I wanted to add another field. When I went to rerun the command, it required me to overwrite my existing changes to generate a new one. Maybe I missed something in the documentation, but there doesn't seem to be an ideal way to handle this scenario.
One suggestion might be a way to add, remove, and possibly modify (i.e. type from string to int) fields with the CLI - a schema migration ability of sorts. In the case of removing a field, I may want the data purged from Bolt as well.
On a related note, I feel that, at least optionally, uploading over / removing a file in the interface should delete it from disk. Wth my profile photo example, if someone uploads a new photo, I'd like the old one to be deleted since I've only specified one field for that file.
Another suggestion might just be to make the tool more robust so that if I want my field to manifest as a select element or file upload element, I can specify that from the CLI. The commands may get long, though, so optional input from a file in a format like JSON, TOML, etc. may be preferable.
Let me know if I'm missing something, and thanks again!

First of all, I saw this in Golang Weekly the other day and this is just fantastic. Thanks for making such a cool tool.

Thank you -- I'm happy other people are finding it useful! I appreciate the feedback and hope you get a lot of use from Ponzu.

After playing around with this for a bit, I've noticed that I'm having to edit the generated code quite a bit to customize the admin interface. i.e. I added a profile photo field, so I have to go into the generated code and change the type from editor.Input to editor.File. And then I added a relationship status field, so I had to go in and change it to editor.Select and add my choices.

Yes, this is very typical and although I, too, would like to work more in the CLI, it gets pretty tricky trying to add/insert/remove only parts of a generated file by regenerating a new one. Theoretically it could be done with Go's go/ast package which would help navigate your files and the methods, etc you have added. But generally speaking, getting boilerplate out of the way via code generation is enough to satisfy most needs.
I am putting some thought into how the CLI could more easily support an additional specifier to state the field input type.. something like:
$ ponzu gen c profile name:string bio:string:richtext age:int country:string:select ...

The problem is that the developer still has to manually add the select options, etc. I just don't know if the additional complexity in the CLI makes it that much better in the generate files. Also, it would only be able to work with internal element types. See the reference package pre-bundled into your addons directory.. It would be nearly impossible to decipher editor.Select and reference.Select without also including the package identifier in the CLI command.

After making these changes, I then realized I wanted to add another field. When I went to rerun the command, it required me to overwrite my existing changes to generate a new one. Maybe I missed something in the documentation, but there doesn't seem to be an ideal way to handle this scenario.

You should have seen a guard/warn message before anything was overwriten, correct? Something like "please remove 'content/yourcontent.go' before running this command? If not, I'm extremely sorry for any work you lost -- file a bug with your environment, Go version, and as much information about the overwritten file(s) as possible. Again, very sorry if you had code deleted without warning!
Your described usage fits the intended purpose of Ponzu. The generators, much like generators in other frameworks or platforms, write the boilerplate code for you once and you add to it. Changing functions or adding a new field should be pretty painless (although compared to running $ ponzu gen c mycode ..., everything else is kind of painful!). I would recommend copy/pasting as much of the generated code as you can, such as a Field{} or struct field. If you have ideas on how to make this better, at the implementation level, please feel free to help out.

One suggestion might be a way to add, remove, and possibly modify (i.e. type from string to int) fields with the CLI - a schema migration ability of sorts. In the case of removing a field, I may want the data purged from Bolt as well.

There's only so much code Ponzu can write for its users :) I agree that data may need to be purged in the event that the schema changes significantly, and it would likely require a new CLI command, such as $ ponzu migrate which would loop through all the content types and determine which fields stay and go in all Bolt buckets for that data. I'm concerned that this could end up doing more bad than good if used improperly or accidentally, and if you really need a migration like this, you could probably write the code specific to your dataset in a very reasonable amount of time.

On a related note, I feel that, at least optionally, uploading over / removing a file in the interface should delete it from disk. Wth my profile photo example, if someone uploads a new photo, I'd like the old one to be deleted since I've only specified one field for that file.

I believe that the common behavior for most CMS platforms is to keep uploaded content even when it's parent content is deleted. Please correct me if I am mistaken. Many other CMS platforms additionally implement some form of "Media" section where a directory tree of uploads is displayed, allowing uploaded content to be deleted. I'm considering this too - but have not yet had the time or personal need for it. Contributions are very welcome!

Another suggestion might just be to make the tool more robust so that if I want my field to manifest as a select element or file upload element, I can specify that from the CLI. The commands may get long, though, so optional input from a file in a format like JSON, TOML, etc. may be preferable.

100% with you, but as you said, the commands would start to be very long. At what point are we writing just as much code in the CLI as we are in files? The CLI generate content command was deliberately designed to maximize code generated per CLI keystroke, and minimize the potential for mistakes (which would then need to be manually corrected in files).
The input file is an interesting approach -- I'll have to put some thought into that and see how well one of those formats would support this. If you would like to draft a mock config file after having more time to test Ponzu and see where its CLI strenghs and weaknesses are, I'd love check it out.

Wow, GitHub is a better place because of people like you.
Thanks for the quick and incredibly thorough response - really means a lot.

I am putting some thought into how the CLI could more easily support an additional specifier to state the field input type.. something like:
$ ponzu gen c profile name:string bio:string:richtext age:int country:string:select ...

I like that idea and I also see your point about how the select poses an issue. Still, it would considerably reduce the overhead of changing several fields after generating the code if you could specify view details before generating.

It would be nearly impossible to decipher editor.Select and reference.Select without also including the package identifier in the CLI command.

That's good future proofing. Because you thought to include addons (which is a great idea), you would have to namespace which could get fairly verbose. I suppose you could also make them globally unique (i.e. ReferenceSelect) since you have to register the add-on anyway, but I haven't given too much thought to the ramifications of that.

You should have seen a guard/warn message before anything was overwriten, correct?

Sorry, didn't mean to alarm you - when I said "required me to", I meant that it prompted me in the way you just described. I didn't lose any data :)

I'm concerned that this could end up doing more bad than good if used improperly or accidentally, and if you really need a migration like this, you could probably write the code specific to your dataset in a very reasonable amount of time.

That's true - things could get messy and complicated pretty quickly if you introduced this. And it feels a bit out of scope now that we've discussed it.

Many other CMS platforms additionally implement some form of "Media" section where a directory tree of uploads is displayed, allowing uploaded content to be deleted.

That does sound familiar and what you're describing sounds like a reasonable solution. It was more that I realized they could pile up over time and didn't see a way to manage that in the interface, but the media section would resolve that.

The input file is an interesting approach -- I'll have to put some thought into that and see how well one of those formats would support this. If you would like to draft a mock config file after having more time to test Ponzu and see where its CLI strenghs and weaknesses are, I'd love check it out.

Hmm OK I'll include some examples for discussion at the end of this reply.

Thanks again for addressing all of my points. As far as this issue is concerned, I think an input file could help resolve it if it allowed the user to specify the view type as well. Since you requested it, I came up with quick examples in TOML and JSON based on 2 different possible approaches. Let me know what you think.
Both examples address what it could look like to specify the view and even view choices in the case of a Select element.
Example 1: String-based Approach
This approach is essentially just a newline-friendly version of the CLI. In implementation, you would still have to split on colons and optionally commas in the case of a Select.

JSON Example
TOML Example

Example 2: Structure-based Approach
This approach utilizes the structure we have access to in JSON and TOML. Rather than splitting on commas and colons, each feature has its own field. In particular, the separate array for viewChoices would allow someone to more easily specify and manage a larger number of choices (all US states, for example).

JSON Example
TOML Example

@ryanbaer  -
Sorry for the delayed response - I have a couple major deadlines coming up quickly.
I think adding the optional specifier to the CLI items is a good idea and will plan to add it in a future release - however, it will likely be limited to just the builtin editor package input types - hopefully this will accomplish the goal of making the CLI more useful without adding bloat.
Although the idea of using an input file as a schema definition for the types is appealing, I don't think that it is really much less typing that manually writing out code. The benefit I do see in using something like String-based approach is that we could easily share the input schemas between projects and developers as a standard... I'll have to put more thought into this, but at the moment I think we'll just keep it simple -- maybe once the project matures and more people make similar suggestions we will have clarity on how this kind of feature should be implemented.
Also, so you are aware, I am starting to migrate feature suggestions to Guthub's Project feature to clean up issues: https://github.com/ponzu-cms/ponzu/projects/2
Thanks again for your thoughtful feedback and I look forward to working together on some ideas for Ponzu!

@ryanbaer - just wanted to ping you to say the enhanced CLI code generator that you suggested has been added and is the latest master branch of the Ponzu repo. Sorry it took so long ;)
lmk if you get a chance to try it out. currently, only the basic inputs are supported (excluding repeaters, since I'm not 100% sure what the right nomenclature would be.) Check out the docs for these "Input View Specifiers" in the README here.


Highlight YAML issue

I am seeing different behavior between Hugo v0.38.2 and v0.40.0 (and v0.40.2).
I have a fairly simple layouts/shortcodes/b.html that makes things bold (trimmed \n at the end of this file):
{{.Inner}}

I have these 3 code fences in my content (yaml, sh, and unspecified):
```yaml
kind: {{<b>}}Service{{</b>}}
```

```sh
kind: {{<b>}}Service{{</b>}}
```

```
kind: {{<b>}}Service{{</b>}}
```

With 0.40.0, the contents of {{}} (or any other shortcode) simply does not work on the yaml code fence (other examples work fine). Output with 0.40.0:

Output HTML (note the contents of the shortcode is entirely missing on first div):

kind:

kind: Service

kind: Service

When I go back to v0.38.2, everything works fine as expected. (Platform: macOS):

Can confirm it's broken on v0.40.2 as well (released 12h ago).

Looks like the Chroma YAML lexer is doing something funky here.
Maybe this:
https://github.com/alecthomas/chroma/commit/50a6b50a3b3c289126b04d14ba7e09caf5f476de
It would be good if you could raise an issue on that tracker.
Note that Chroma will receive Service  and not your shortcode syntax.

Thanks, reported upstream.

@ahmetb, I'm not able to reproduce this with latest Hugo.  Can you test this scenario again?

Can't repro in Hugo v0.47/extended anymore.

@ahmetb, please close your upstream issue, too.


Allow for ES6 import

Thank you very much for the suggested improvement, however I can't merge it - as you can see here the build fails with the following error:

GulpUglifyError: unable to minify JavaScript

Basically it means that the ES6 export is unknown to JS minifier. It's not a big deal if you set up your development stack with Babel and it transpiles everything into good old ES5, but it will error out for users who just want to use it 'as is'.
Being able to import it as a module looks like an important thing, so creating an npm package now seems like a good idea.


[quicklaunch] add hints to extension app

Thanks! Do you think you could try not to reformat the JSON files if you don't need to though?
Every other app uses a one-line format for the storage files as I feel like it's a little bit more compact.

Yes, sorry 🫡🙂
It's never my intention to change it, but when I save the file it autoformats and then I forget to fix it here on github. I'll try and change some setting so it doesn't do this again.


fix: sort updates based on version range

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


Interpolators shouldn’t reuse return values by default?

While it is well documented, it’s still perhaps a bit surprising that interpolateArray and interpolateObject return a shared instance for performance reasons. This makes perfect sense for its usage by d3.transition—the returned array or object is immediately coerced to a string or only used for a single tick. But it’s easy to forget for other applications that you need to make a copy of the returned object if you want to compare the results of multiple interpolation calls. See the an earlier version of the rotating Voronoi for example.
Perhaps we could change these methods to return new instances, and then have an alternate method for reusing objects? Or perhaps interpolateArray and interpolateObject could take a third argument to use as the reusable destination object. For performance reasons, not reusing an object may also require the use of new Function to create an object literal, as is done in d3_dsv.

I’m not planning on changing reuse of objects & arrays for d3-interpolate for 4.0, so closing this.


Uses shaded netty in server jar to avoid downstream conflicts.

gRPC uses Netty 4.1 and netty-tcnative-boringssl-static, which is
sensitive to Netty versions. DataStax Cassandra driver 4.0 uses Netty
4.1, but the driver isn't out, yet. By using the published shaded jar,
we can dodge the conflict for now.
I've verified that we can connect to google cloud services after this
change. I've also verified that there's no significant jar size change.
See https://github.com/grpc/grpc-java/blob/master/SECURITY.md#netty
See https://github.com/GoogleCloudPlatform/stackdriver-zipkin/issues/45

fyi @michaelsembwever @llinder

pps of course I also verified cassandra still works by manually starting a zipkin server with storage type set to both versions


Move to a new remote test server on Jetstream

The Jetstream-based remote test server is now working.
So it now becomes the first default test server to try.
This also means that the dap4 remote testing is enabled.
The only issue to watch is to see if the Jetstream-based
server can stay up for significant periods of time.
A uptimerobot (https://uptimerobot.com) has been set ups
to monitor this hourly, so we shall see.
Also as a side issue, nc_test4/tst_varsperf was disabled; it can now
only be run manually. This is because Ed's changes make it too dangerous
to test routinely.

From the first, I had originally intended tst_varsperf to be a temporary
hack to measure the relative performance improvement of the switch of libsrc4
to using hashing pervasively (see docs/indexing.dox).
I planned to remove it completely after the 4.7 release.
Since it has a relatively limited purpose and was temporary,
I felt there was no need to keep it after all.


On mobile Chrome the English/Welsh language selector is at the bottom of the page

At least on the /start page

This is intentional as per TT-941, to save space and reduce scrolling on mobile devices.

Ok, thanks for the quick reply.  I'll close this issue.  For what it's worth HMRC's mobile site still has it in the top right, however.


Split too long variables

Added long awaited capability of spliting too long variables (up so far SplitTooLongLine only split too long keyword calls).
Closes #81

Codecov Report

Merging #352 (eb94264) into main (01ac7cf) will increase coverage by 0.02%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #352      +/-   ##
==========================================
+ Coverage   96.72%   96.74%   +0.02%
==========================================
  Files          43       43
  Lines        3419     3446      +27
==========================================
+ Hits         3307     3334      +27
  Misses        112      112

Impacted Files
Coverage Δ

robotidy/transformers/SplitTooLongLine.py
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 01ac7cf...eb94264. Read the comment docs.


Add support for remote installs to Linux box

Want to be able to decrypt files and laptop and install them on my sandbox, with the private key material never leaving the laptop.

Do I get you right, you'd have a vagrant or real linux, and with Ansible via ssh it'd set up the whole environment ? If so I am all in, let's hack together. I use osx/ubuntu and windows as well, and now got fed up with manually trying to consolidate the env, keep them up to date etc...

Here's what I currently have in this repo: a bunch of Ansible roles/playbooks and an install script that runs either the linux.yml or darwin.yml playbook, depending on the platform.
In practice, that means I can set up my dotfiles and other stuff on my laptop running OS X, but also on a remote Linux host that I call my "sandbox". Note that I'm not following the typical Ansible pattern here of orchestrating multiple hosts from a central command host; rather, I set up each machine by cloning this repo and running the install script on that machine. I'm using Ansible as a glorified (glorious?) Makefile.
Things are pretty consolidated already, but there is one key difference that I want to address in this issue: there are some encrypted files in the repo (eg. my ~/.ssh/config) and these currently only get set-up on the laptop, because only the laptop has access to the private key necessary to decrypt them.
So, the two or three obvious strategies I have considered are:

Use Ansible in a more typical way, running it from the laptop and having it connect to the Linux box to do its thing; note this could mean doing it for then entire set-up, or just to deal with the encrypted files (pro: solves the problem; con: potentially two-step process, requires host-based futzing with inventory, may need special steps to deal with corporate firewalls etc).
Decrypt the encrypted files on the Linux box using symmetric encryption and a passphrase, so that I don't have to worry about dealing with private keys (pro: not too invasive change; con: manual passphrase management).
Figure out if I can somehow forward gpg-agent to the remote host, so that it can decrypt without having direct access to the private key material (pro: minimally invasive change; con: not sure if possible/supported, not sure if corp firewall will cause problems).

But you are not managing 1000 of clusters, so i totally agree with your way of using Ansible. Back in the days I was using Fab in a similar fashion, that is not for deployment. Using the macbook as a command server would be my preferred way too. ;) So you are actually using a command server.
I tried to use install on ubuntus, with many issues, not installed packages in virtualenv. My idea would be to have a portable env across work machines (OSX, linux and yes potentially windows 10 with ubuntu running bash) and to some extent dev/qa/prod clusters. I think you need the some parts of the same sane zsh/vim/tmux config when you ssh into prod - all i see is a minimal korn shell, c shell , stripped down bash - and i make 100s of mistakes on the command line, lack of aliases - etc.. Having encrypted stuff in the repo is a must, e.g. Prezi got pwned by having keys on github. Let me know if you'd be available for a voice call/chat. A fire and forget solution to setup a VPS or vagrant box would be amazing (fire and forget as in after keys/auth)

For context, I'm living in a situation where I have 4 machines that I care about, and they end up getting configured in 3 different ways.
Machines I care about
Group A: Machines on which I do active development

My laptop: an OS X machine, gets replaced infrequently (ie.every couple of years), want the ability to perform initial set-up bootstrap in a repeatable, error-free way, but also want an idempotent set-up that I can run (often) to keep it up-to-date as I make configuration changes.
"Sandbox": physical Linux machine that gets replaced whenever it dies.

By "active development" here I mean intensive usage of Vim, build tools, command-line etc, so it's critical that dot-files get set-up. I work on very large products where virtualized environments won't cut it, at least with today's computing tech.
So I'm not "ssh-ing into prod" or even into VMs though in the sense that you're talking about; I work at a big company where I'm definitely on the developer/sandboxed-environment side and not at all on the ops/prod side. There are of course other machines on the network, but I don't need to know about them or connect to them in order to get my job done.
Group B: Other machines

Two AWS instances that I use to host websites and other services. Personal, not work related. Things like my blog, some Git repos etc.

I don't do active development on these at all, so I don't care about my dotfiles being available on them. They tend to be "throwaway" machines which I replace whenever they die or I need to do a major OS upgrade or migration to a  new instance-type.
How they are configured

This repo configures the Group A machines. As you say, Ansible is well-suited to this task even if I'm not using it in the textbook "fleet-management" way.
I have another (private) Ansible repo for configuring/provisioning the Group B machines. That one is totally "textbook" Ansible, even if the inventory only has 2 to 4 machines in it (the 2 I explicitly mentioned above, plus sometimes 2 more when I want a separate staging environment to test big changes).
Corporate-maintained Chef is provides another layer of configuration for the Group A machines, which are all company-owned/company-maintained. Chef runs automatically all the time on those and I let it do its thing, and my Ansible-driven config (this repo) ends up being a thin, manually-initiated layer of configuration on top of that, mostly dealing with "user-space" stuff (mostly preferences).

What that means for this repo
It means I have a fairly well-defined scope, in which I don't have a use case for spinning up virtual machines on a regular basis, but I still have an interest in making things as automated and reproducible as possible. I totally get your desire for fire-and-forget type workflow, though; I'm just not sure exactly what is the scope of your proposed/desired changes.
FWIW, in my brief googling it looks like the third option I mentioned above (gpg-agent forwarding) looks trivially doable with UNIX domain socket forwarding available in OpenSSH 6.7 and up, so that's something I want to explore when I get a chance.


ConvertFrom-Json does not complete parse input when StrictMode is set to 2 or higher

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[X] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce
Run the following code:
Set-StrictMode -version latest

[string] $content = @"
[
  {
    "First": "1"
  },
  {
    "Second": "2"
  }
]
"@

$json = (ConvertFrom-Json -InputObject $content)
$json.Second

Expected behavior
To get `2`.

Actual behavior
An error that says `The property 'Second' cannot be found on this object. Verify that the property exists.`

Error details
This issue was exhibiting itself in the context of a much larger script and it took me a while to narrow it down to Strict Mode...

Inspecting the issue, I discovered that setting the Strict Mode to lower than 2 causes the issue to stop appearing and the input text to get parsed correctly.

Could not find any documentation about ConvertFrom-Json changing behavior in respect to Strict Mode, so I am guessing that this is a bug.

Environment data
PowerShell 7.2.1 on Windows 11 Professional x64.

As a note, the issue also is also reproducible on Windows PowerShell.

Visuals
No response

Additional findings: If I change the format of the input text to be more compact, e.g.
Set-StrictMode -version latest

[string] $content = @"
[
  {
    "First": "1",
    "Second": "2"
  }
]
"@

$json = (ConvertFrom-Json -InputObject $content)
$json.Second

then the code runs successfully, and prints '2', even though Strict Mode is set to 2 or higher.

$json=(ConvertFrom-Json -InputObject $content)
$json

First
-----
1

With strict mode off the code shows First - only the property presents as NoteProperty. If we call $json.Second this shows Second. So it is expected behavior if strict mode is on to do not show Second.
$json | Get-Member

   TypeName: System.Management.Automation.PSCustomObject

Name        MemberType   Definition
----        ----------   ----------
Equals      Method       bool Equals(System.Object obj)
GetHashCode Method       int GetHashCode()
GetType     Method       type GetType()
ToString    Method       string ToString()
First       NoteProperty string First=1

And question is whether the cmdlet works right and do not add Second. I think it would be amazing if this cmdlet added each element of the array as a property since the array could be very large.

Isn't this because of how pwsh gets a property when the object itself is a collection. With the written json you have 2 objects that are stored with their own unique properties, the equivalent pwsh code is
$json = @(
    [PSCustomObject]@{First = "1"}
    [PSCustomObject]@{Second = "2"}
)

The way PowerShell's formatter works is it only displays the properties in the first object (AFAIK) and because your 2nd object doesn't have First then it looks like it isn't there. Strict mode is also failing because the array itself does not have a property called First or Second thus to get what you want you need to do
Set-StrictMode -version latest

[string] $content = @"
[
  {
    "First": "1"
  },
  {
    "Second": "2"
  }
]
"@

$json = (ConvertFrom-Json -InputObject $content)
$json[1].Second # Note the [1] here

I think the behaviour is as-expected. What you are doing with $json.Second is called member enumeration. Member enumeration tries to read the given property from all array elements. Without strict mode, you can get by even if not all array elements contain the given property. With strict mode on, trying to access a non-existing property is an error.
Here is a possible workaround:
$json.ForEach{ if( $_ | Get-Member Second ) { $_.Second } }

By calling the array method .ForEach, we can implement a safeguard against non-existing properties. Using Get-Member we check if the property exists and only then try to read its value. Note that the output can be an array if there are more than one elements in the JSON with a Second member.
With strict mode you get some safety but it comes at the price of some inconvenience.

Glad to see this is not a bug of ConvertFrom-Json. Thanks for the concise answers and workaround.


Inconsistent Result Error When Applying Changes to juju_application.ceph-mon

Description
Upon applying changes using Terraform for the deployment of ceph-osd and ceph-mon, an error occurred regarding inconsistent results produced by the provider. The error message displayed:
juju_model.ceph: Creating... juju_model.ceph: Creation complete after 2s [id=51bd3109-1463-4c3d-8962-f17f5eca6d8b] juju_ssh_key.mykey: Creating... juju_application.ceph-mon: Creating... juju_application.ceph-osd: Creating... juju_ssh_key.mykey: Creation complete after 0s [id=sshkey:ceph:ubuntu@gitlab] juju_application.ceph-osd: Creation complete after 3s [id=ceph:ceph-osd] ╷ │ Error: Provider produced inconsistent result after apply │  │ When applying changes to juju_application.ceph-mon, provider "provider[\"registry.terraform.io/juju/juju\"]" produced an unexpected new value: │ .placement: was cty.StringVal("lxd:0,lxd:1,lxd:2"), but now cty.StringVal("0/lxd/0"). │  │ This is a bug in the provider, which should be reported in the provider's own issue tracker.
Urgency
Blocker for our release
Terraform Juju Provider version
0.10.0
Terraform version
1.6.6
Terraform Configuration(s)
main.tf:

terraform {
  required_providers {
    juju = {
      version = "~> 0.10.0"
      source  = "juju/juju"
    }
  }
}

provider "juju" {}

resource "juju_model" "ceph" {
    name = "ceph"

    cloud {
        name = var.juju_maas_cloud_name
        region = var.juju_maas_cloud_region
    }
}

resource "juju_application" "ceph-osd" {
    name = "ceph-osd"
    model = juju_model.ceph.name
    charm {
        name = "ceph-osd"
	    channel = "quincy/stable"
	    revision = 576
    }
    units = var.ceph_units
    constraints = var.ceph_tag
    config = var.ceph_osd_config
}

resource "juju_ssh_key" "mykey" {
    model = juju_model.ceph.name
    payload = var.juju_ssh_key
}

resource "juju_application" "ceph-mon" {
    name = "ceph-mon"
    model = juju_model.ceph.name
    charm {
        name = "ceph-mon"
	channel = "quincy/stable"
	revision = 191
    }
    units = var.ceph_units
    placement = "lxd:0,lxd:1,lxd:2"
}

.tfvars

juju_maas_cloud_name = "maas"
juju_maas_cloud_region = "default"
ceph_tag = "arch=amd64 tags=ceph"
ceph_osd_config = {
    osd-devices = "/dev/disk/by-dname/sdb"
    aa-profile-mode = "complain"
    autotune = "false"
    bluestore = "true"
    bluestore-compression-mode = "none"
    customize-failure-domain = "false"
}

ceph_units = 3

juju_ssh_key = ""

variable.tf:

variable "juju_maas_cloud_name" {
    description = "MAAS Name"
    type=string
}

variable "juju_maas_cloud_region" {
    description = "MAAS region"
    type=string
}

variable "ceph_tag" {
    description = "Ceph tag constraints"
    type = string
}

variable "ceph_osd_config" {
    description = "Ceph OSD configuration"
    type = map(string)
}

variable ceph_units {
    description = "Number of units for Ceph"
    type = number
}

variable juju_ssh_key {
    description = "SSH key to login in the machines"
    type = string
}

Reproduce / Test
terraform init && terraform apply

Debug/Panic Output
juju_model.ceph: Creating...
juju_model.ceph: Creation complete after 2s [id=51bd3109-1463-4c3d-8962-f17f5eca6d8b]
juju_ssh_key.mykey: Creating...
juju_application.ceph-mon: Creating...
juju_application.ceph-osd: Creating...
juju_ssh_key.mykey: Creation complete after 0s [id=sshkey:ceph:ubuntu@gitlab]
juju_application.ceph-osd: Creation complete after 3s [id=ceph:ceph-osd]
╷
│ Error: Provider produced inconsistent result after apply
│
│ When applying changes to juju_application.ceph-mon, provider "provider[\"registry.terraform.io/juju/juju\"]" produced an unexpected new value:
│ .placement: was cty.StringVal("lxd:0,lxd:1,lxd:2"), but now cty.StringVal("0/lxd/0").
│
│ This is a bug in the provider, which should be reported in the provider's own issue tracker.

Notes & References
No response

This is a duplicate of issue #182.
We are planning schema changes to properly resolve this issue. The current schema conflates juju placement with juju machines.


Word wrapping in messages is broken

Quoted message doesn't have the correct word-wrapping

https://github.com/GetStream/stream-chat-react/issues/1457

URL preview in this thread seems to be going out on thread section

https://github.com/GetStream/watercooler/issues/100

:tada: This issue has been resolved in version 2.8.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Emit warning on env variable case mismatch

When running a command like cargo --target TRIPPLE cargo expects to find the environment variable CARGO_TARGET_[TRIPPLE]_* with uppercase and underscores. This check emits a warning if the checked environment variable has a mismatching case and/or contains dashes rather than underscores. The warning contains the given env variable as well as an explanation for the cause of the warning.
The check is skipped on windows as environment variables are treated as case insensitive on the platform.
Fixes #8285

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @Eh2406 (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see the contribution instructions for more information.

r? @ehuss

Thanks!  I pushed a small change to combine the two tests into one.
@bors r+

:pushpin: Commit 0564466f45d27171ec3365ec698c488522b60095 has been approved by ehuss

:hourglass: Testing commit 0564466f45d27171ec3365ec698c488522b60095 with merge af564b22ca53d4ea3f32fb400eba8511678e5443...

:sunny: Test successful - checks-actions
Approved by: ehuss
Pushing af564b22ca53d4ea3f32fb400eba8511678e5443 to master...


fix: incorrect location for { #await expr then v } with spaces

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 91.569%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2473

Relevant Lines:
2614

💛  - Coveralls


template update: attempt to resolve fails in another template PR

PR checklist
Attempting to close https://github.com/nf-core/raredisease/pull/64 with this

[ ] This comment contains a description of changes (with reason).
[ ] If you've fixed a bug or added code that should be tested, add tests!

[ ] If you've added a new tool - have you followed the pipeline conventions in the contribution docs
[ ] If necessary, also make a PR on the nf-core/raredisease branch on the nf-core/test-datasets repository.

[ ] Make sure your code lints (nf-core lint).
[ ] Ensure the test suite passes (nextflow run . -profile test,docker).
[ ] Usage Documentation in docs/usage.md is updated.
[ ] Output Documentation in docs/output.md is updated.
[ ] CHANGELOG.md is updated.
[ ] README.md is updated (including new tool citations and authors/contributors).

@jemten @ramprasadn Hello 👋 ! I made this PR to reverse changes I made before the nf-core/tools release- changes such as ignoring unrecognized files in .nf-core.yml. Please review so I can hopefully merge the bot template PR 👍


Use canonical path for roots of git checkouts

Fixes #8443

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @Eh2406 (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see the contribution instructions for more information.

I'd be nervous about this change. canonicalize does odd things (\\?\D:\) on windows that has been know to break things. I think that is why CI is unhappy.

@Eh2406 That is unfortunate - do you have any other suggestion for how to make cargo vendor work properly when $HOME involves a symlink?


P71

the mentioned dailyjs article links (related to prototipal inheritance) do not correspond anymore

should be
http://dailyjs.com/2012/05/27/js101-prototype-chains/

Fixing, thanks


Fixes Iterate Through an Array with a For Loop instruction

Fix instruction in Waypoint: Iterate Through an Array with a For Loop
Closes #5572

Thanks for your quick fixes! :+1:


Package Requested

[X] I would like someone else to build the manifest.
[ ] I would like help so I can submit the manifest.
[ ] I have performed a search and couldn't find this package.
[ ] I have checked that the installer for this package is not a standalone or portable executable or a .zip file
[ ] I think there is a new version available and I have provided the URL.

Please provide the following information
Publisher: KDE e.V.
Publisher Url: http://kde.org
Package Name: KDE.KMines.Nightly
Description: http://apps.kde.org/kmines
Package Version: master-789
Installer URL: http://binary-factory.kde.org/view/Windows 64-bit/job/KMines_Nightly_win64/lastSuccessfulBuild/artifact/kmines-master-789-windows-msvc2019_64-cl.exe
Current Package Identifier (for new versions): master-789

Duplicate of #39190
Please post your KDE requests here


Ability to disable animation

Hello.
I would like to be able to turn off animation for any chart.
At the moment I am particularly interested in the bar chart.

Have you tried specifying the animationSpec, e.g., to a tween with 0 duration?

I verified that if you use animationSpec = TweenSpec(durationMillis = 0) then the plot won't animate.


Rewrite library: finalize rewrite (4/4)

3/4 fixed #12

Alrighty, this PR is ready for review! 😄

@yshrsmz For the notifications comment, that was the best I could do. The "demo mode" developer option still shows some status icons even though they're all fake—I definitely wasn't coding at 8 😉. (Also, I have one less notification than the current demo gif so I beat you. 😆)
To address your second point, I actually removed the url on purpose. Here's my reasoning:

The colorAccent text is supposed to signify that a link is present.
Displaying the url feels like a developer centric view since most users won't know what GitHub is or even what those library names mean.
For developers, since GitHub is the only library that has a url anyway, they can know the url just though the author/libName syntax.
And just for the sake of completion: adding a url made the UI feel bloated and was distracting from the actual library name (which is what's important IMO).

@yshrsmz What do you think of the url situation given the above arguments?

The "demo mode" developer option still shows some status icons

What I meant is not status/notification icons, but notifications itself(I can see hangout and some other notifications in the first few frames). But if it's hard to remove those notifications, then it's fine :)
and about the second point, I can completely agree with your opinion! Let's leave it as it is. thanks!

@yshrsmz Ohhhhhhhh, I just rewatched the gif and saw what you meant. Thanks! Yeah, I don't want people to see my notifications either 😄. That should be fixed now.

Ok, thanks for your great contribution!
will do the final check & release within a (hopefully) few days!
btw, do you mind if I add you as a collaborator of this repo?

Awesome, thanks for working with me on this! I'll be on the lookout for that release. 😀 And yeah, I'd be happy to be added as a contributor. 😊

just released 2.0.0!
Thanks again for your contribution 👍


Allow a different robot configuration for each path

Due to the current state of the trajectory generator, the physics parameters of the robot often need to be modified and tuned for each path. This is not ideal, but it's just the way it is right now. I know this from using HelixNavigator in the 2023 season.
If this feature is not added, users will be forced into creating a separate document file for each path, not utilizing the multi-path selection user interface within the app.

How should this work with creating new paths and modifying overall physics parameters? If a user needs to tweak e.g. the robot mass because the design actually changed, do they modify a central main parameter list that the rest inherit from? What parameters are commonly fudged per-path?

I'm trying to think of a way that isn't too complicated. One way would be like how it works in Unity, where it would pull the "main" configuration unless a value were overridden. Another option is to make each one separate, but add a button to copy one configuration to all the other paths.
The parameters commonly fudged are just max velocity and max torque.


MailFactory missing sender name

PHP Version
8.1+
Shopware Version
<IP_ADDRESS>
Expected behaviour
As an API user, I am able to set the name of the e-mail's sender address.
Actual behaviour
The API does not provide a method or other, to set the sender's name.
How to reproduce
See
https://github.com/shopware/shopware/blob/trunk/src/Core/Content/Mail/Service/MailFactory.php#L84

[public] Automated response: This issue is linked to the internal issue https://shopware.atlassian.net/browse/NEXT-37796.
[created from NEXT-37796, comment 488217]


Cannot assign to read only property 'exports' of object '#'

index.js?e134:123 Uncaught TypeError: Cannot assign to read only property 'exports' of object '#'
at Object.eval (eval at  (app.js:975), :123:16)
at eval (eval at  (app.js:975), :125:30)
at Object. (app.js:975)
at webpack_require (app.js:660)
at fn (app.js:84)
at eval (eval at  (app.js:808), :6:75)
at Object. (app.js:808)
at webpack_require (app.js:660)
at fn (app.js:84)
at Object. (app.js:1163)

Can you show me more code, for example, how you import the module, how you use it.

import  Lazyload from "vue-lazyload-img"
Vue.use(Lazyload,{     fade: true,     speed: 20,     time: 300 })

Same here. Using yarn to install, copy+pasted code from README into main.js. Using webpack as my bundler.

Tried  to fixed it :)


Unify default cipher suites betweek JDK and OpenSSL

Motivation:
Currently the default cipher suites are set independently between JDK and OpenSSL. We should use a common approach to setting the default ciphers. Also the OpenSsl default ciphers are expressed in terms of the OpenSSL cipher name conventions, which is not correct and may be exposed to the end user. OpenSSL should also use the RFC cipher names like the JDK defaults.
Modifications:

Move the default cipher definition to a common location and use it in JDK and OpenSSL initialization
OpenSSL should not expose OpenSSL cipher names externally

Result:
Common initialization and OpenSSL doesn't expose custom cipher names.

This was discovered while developing PR https://github.com/netty/netty/pull/6964

4.1 (43ae9748d) 4.0 (f57d8a150)


CodeGen: Wrongfully picked up qubit

I am trying to get DPQA running for a couple of benchmark circuits. During this process, I experienced some unexpected behaviour. The error occurred during the execution of the following script from the root directory of the repository:
from solve import DPQA
from animation import CodeGen
import json

dpqa = DPQA("my_graph", dir="./results/smt/")
dpqa.setArchitecture([16, 16, 16, 16])
graph = [[5, 6], [5, 6], [4, 6], [3, 6], [2, 6], [1, 6], [4, 6], [3, 6], [2, 6],
         [1, 6], [4, 5], [3, 5], [2, 5], [1, 5], [0, 6], [4, 5], [3, 5], [2, 5],
         [1, 5], [0, 6], [3, 4], [2, 4], [1, 4], [0, 5], [3, 4], [2, 4], [1, 4],
         [0, 5], [2, 3], [1, 3], [0, 4], [2, 3], [1, 3], [0, 4], [1, 2], [0, 3],
         [2, 4], [1, 2], [0, 3], [2, 4], [0, 2], [2, 4], [0, 2], [0, 1], [1, 5],
         [0, 1], [1, 5], [1, 5], [0, 6], [0, 6], [0, 6]]
dpqa.setProgram(graph)
dpqa.hybrid_strategy()
dpqa.solve(save_file=True)

with open("./results/smt/my_graph.json") as f:
    data = json.load(f)
codegen = CodeGen("./results/smt/my_graph.json", no_transfer=data['no_transfer'], dir="./results/code/")

Executing this yields the error message:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/yannick/Documents/TUM/CDA/Research/projects/mqt-qmap/extern/dpqa/animation.py", line 1307, in __init__
    program = self.builder(no_transfer)
  File "/Users/yannick/Documents/TUM/CDA/Research/projects/mqt-qmap/extern/dpqa/animation.py", line 1438, in builder
    self.builder_reload(s, cols, rows, qubits, program)
  File "/Users/yannick/Documents/TUM/CDA/Research/projects/mqt-qmap/extern/dpqa/animation.py", line 1762, in builder_reload
    reloadRow_obj.generate_row_activate(
  File "/Users/yannick/Documents/TUM/CDA/Research/projects/mqt-qmap/extern/dpqa/animation.py", line 970, in generate_row_activate
    Activate(s=self.stage,
  File "/Users/yannick/Documents/TUM/CDA/Research/projects/mqt-qmap/extern/dpqa/animation.py", line 524, in __init__
    self.verify(
  File "/Users/yannick/Documents/TUM/CDA/Research/projects/mqt-qmap/extern/dpqa/animation.py", line 665, in verify
    raise ValueError(
ValueError: Reload_12:ReloadRow_7:Activate: q 5 wrongfully picked up by col 3 row 5 at x=60 y=100.

I appreciate any help with this issue.
FYI: The issue was observed on a MacBook Pro with an M3 chip and Sonoma 14.3.1 installed. The Python version used was 3.10.10.

Hi, thanks for the interest in this project. Somehow GitHub didn't notice me when you submitted. I just saw it today. I tried to reproduce the bug, but there's no such error on my computer. Please take a look at this branch: https://github.com/UCLA-VAST/DPQA/tree/issue2
I copied your script as issue2.py, and in results/ there are 3 new files as results of running the script.

My machine is quite different from yours. It's a Linux server with x86 CPU. However, that shouldn't be an issue since we're just using Python. Out of curiosity, what version of z3-solver are you using?

Currently, I use z3-solver==<IP_ADDRESS>. However, when I reported the issue, the version was an older one that I do not recall anymore, but probably <IP_ADDRESS> or <IP_ADDRESS>.
In the meantime, I figured out that the issue does not occur with the default settings. We modified the parameters in the animation.py file as follows and only then I can reproduce the error.
diff --git a/animation.py b/animation.py
index 417aa1e..0548604 100644
--- a/animation.py
+++ b/animation.py
@@ -9,12 +9,12 @@ from abc import ABC, abstractmethod

 # physics constants
-R_B = 6  # rydberg range
-AOD_SEP = 2  # min AOD separation
-RYD_SEP = 15  # sufficient distance to avoid Rydberg
+R_B = 2  # rydberg range
+AOD_SEP = 1  # min AOD separation
+RYD_SEP = 10  # sufficient distance to avoid Rydberg
 SITE_SLMS = 2  # number of SLMs in a site
 SLM_SEP = AOD_SEP  # separation of SLMs inside a site
-SITE_WIDTH = 4  # total width of SLMs in a site
+SITE_WIDTH = 2  # total width of SLMs in a site
 X_SITE_SEP = RYD_SEP + SITE_WIDTH  # separation of sites in X direction
 Y_SITE_SEP = RYD_SEP  # separation of sites in Y direction

The reason for the change is that with these settings the outcome is more comparable to the results that we compare it to, i.e., mapping of circuits to the zoned architecture described in the paper from Bluvstein et al. [^1].
[^1]: D. Bluvstein et al., ‘Logical quantum processor based on reconfigurable atom arrays’, Nature, Dec. 2023, doi: 10.1038/s41586-023-06927-3.

We have fixed this issue with the recent commit on main branch. We have also reduced some parameters in the beginning because our code can't adapt to some settings. For your set of parameters, it should work. Let us know if there are any other issues. Thanks very much!


Unsupported path android

Hey!
I'm trying to download a jpg file.

it works on IOS
on andoid I have an error: "Unsupported path /data/data/{app}/files/files/{id}.jpg.temp"

This is my code:
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, (fileSystem) => {
   fileSystem.root.getFile("${id}.jpg", {create: true, exclusive: true}, (targetFile) => {
     const url = "https://${process.env.API_ENDPOINT}/Preview/${id}";
      var downloader = new BackgroundTransfer.BackgroundDownloader();
      // Create a new download operation.
      var download = downloader.createDownload(url, targetFile);
      // Start the download and persist the promise to be able to cancel the download.
      download.startAsync().then(() => {
        //succes
      }, (error) => {
        console.log('onError', id, error);
      }, (progress) => {
        console.log('onProgress', id, progress);
      });
   });
});

The solution in #28 is not a good solution for me since it has to be stored on the internal storage of the application itself.

same issue

same issue here, continuing to try every configuration, if anyone has figured this out please provide the methods and file formats that end up working

Hi guys! We've made some improvements in this direction. Please update plugin and check if the issue has gone.
I'll close it for now but feel free to reopen it if you have any questions.

Installing at commit c5781c10d412241a7b6aaa384e9d2e4995941bb8 (master branch) did fix this error for me.


No syntax checking for project name

If you enter a project name with an invalid character (like a hyphen) then the app blows up when it tries to load. This is because the demo app name just takes the name entered. Probably good to convert separated words into camel case?
Happy to look at this later, just raising it on here first for discussion.

in the mian.require.js file we did
var local = {}; local['{{ component }}']

looks a bit funny if you dont know why it is doing it, but this would be a quick sollution for the spec/main.js and demo.js.  Your suggestion makes sense, just might have some unexpected side-affects so might take longer

Just ran into this issue and came to raise it, then saw it is already raised here!


[WIP] feat: RAR support

Moved off of my old (bad) in-place byte reading implementation and using the WIP 0.5 feature branch from the upstream unrar.rs. I had to make a few adjustments to get things compiling, but you can see the fork here
So far, tested on Windows and macOS. I will test Linux and Docker over the weekend 👏

Soooo it seems to be working on macOS, Windows, and Linux when running from source. Docker still throws a seg fault when inline-reading bytes, however 😭
I'm inclined to merge this AS-IS, since it is better than it was as far as RAR support goes, but I don't want to dive too hard into C++ world right now to try and debug what is going on in Docker with unrar.rs. Conversions (which requires extracting the  RAR files FULLY) also throws a seg-fault. So, I am not necessarily feeling this is necessarily an inline-reading problem anymore.  I think the next steps once I have time might be to create an isolated Rust app with unrar.rs and run it in a docker container to see when and how it breaks.


Adding a direct npm-package to repository-url endpoint

It's very useful as a browser search engine
Currently I've added https://caub.github.io/misc/npm-to-gh?q=%s in my browser search engines, as 'npm', then I can quickly type npm TAB some-package ENTER
source: https://github.com/caub/misc/blob/master/npm-to-gh.html#L32-L42
if you could handle it directly it would be ideal, and remove the need of that hacky script

@caub I'm not sure what you meant with this issue. Both the search and package info endpoints contain the repository url, e.g.: https://api.npms.io/v2/search?from=0&q=foo&size=1 and https://api.npms.io/v2/package/foo.
Can you elaborate?

@satazor yes that's what I'm using https://github.com/caub/misc/blob/master/npm-to-gh.html#L51
What I mean is having an endpoint like https://api.npms.io/v2/package/foo/url?redirect that'd reply with a Location: https://github.com/jasonLaster/foo header and 307 status


ros-melodic-mesh-navigation package released?

Readme suggests
apt install ros-melodic-mesh-navigation
but package does not seem to be available (mesh tools and others are though)

ros-melodic-mesh-navigation is coming soon.


Remove scm stage from pr pipeline

Why is this PR needed?
Presently the PR code is rebased on top of the target branch as part of the pipeline logic. This has several issues:

The PR code is checked (linted) before rebasing to the target branch (e.g. master)
The pipeline code that is executed is the one from the PR, not the more recent from the target branch, if any.
The logic for checking-out PR and merging with target branch is split between the Jenkins pipeline and python code in ci/tasks/rebase.py executed from the ci/Makefile. This makes it difficult to maintain this logic avoiding conflicts and inconsistencies.

Fixes https://github.com/SUSE/avant-garde/issues/1698
What does this PR do?
Removes the logic for rebasing the code from the PR pipeline and uses the marge option in the job's scm configuration. This way, the PR is merged before the pipeline is executed.
Due to a limitation in the multibranch job plugin, this change impacts the location of the code, as it cannot be checked out into a subdirectory as the current logic does, but directly into the workspace. Therefore, the daily jobs must also be updated to checkout the code directly in the workspace and the code location must be adjusted in all scripts and pipelines.
Also, because the code is merged before the pipeline is executed, the reference to the head of the PR branch is lost and the logic for reporting the status to github must be adapted.
Finally, the unit test make target had to be fixed to support the checkout into a directory different from skuba.
Anything else a reviewer needs to know?
The PR has been tested with the new SCM configuration in this modified pr pipeline
Also, a daily e2e job has been tested against this PR with the modified SCM configuration (checkout into the workspace, not into the skuba subdirectory)
Merge restrictions
(Please do not edit this)
We are in v4-maintenance phase, so we will restrict what can be merged to prevent unexpected surprises:
What can be merged (merge criteria):
    2 approvals:
        1 developer: code is fine
        1 QA: QA is fine
    there is a PR for updating documentation (or a statement that this is not needed)

Compared to my last review this is a rebase without any changes. CI fails like before. I still think removing the mentioned git clone steps would fix it.

Compared to my last review this is a rebase without any changes. CI fails like before. I still think removing the mentioned git clone steps would fix it.

Yes, you were right. Thanks for insisting!

Update acceptance is failing, but it is because the test is broken in v5.


Reconcile "How you can help" and the Tips page

Our main call to action is to view the water saving tips, which has been updated to emphasize outdoor reduction.
The How you can help page lists 3 example tips but they are not our top water saving tips. This is mainly due to drafting/expanding on the tips after the how you can help was drafted :).
Reconcile the content between the two for consistency. Over time we may expand the How you can help page to include how to report water waste
https://drought.ca.gov/how-you-can-help/
https://drought.ca.gov/water-saving-tips/

@thepegisin in light of the user testing, I think these two pages should be unified. Then it can serve as the drought site's tips/how to conserve page while we keep evaluating where the best content exists (maybe pointing to SaveOurWater as a secondary action on our water saving tips page).

Tasks:

[ ] Draft merged page: https://docs.google.com/document/d/1F7qPNFSi_2BeAXSRhAYWxKt_-1vjqDmHU0Wy5AzKWUw/edit#
[ ] Get approval through @jaredwyee Stage
[ ]  Check
[ ] Publish
[ ] Add Water saving tips to navigation

Was not able to add to navigation. Will comment on existing ticket for this: #126


IS-1203: Remove package-lock.json file from vcx nodejs wrapper

Signed-off-by: artem.ivanov<EMAIL_ADDRESS>

Maybe preventing package-lock.json being created is a good idea too.
https://www.codementor.io/johnkennedy/get-rid-of-that-npm-package-lock-json-e0bj7ai42
Do the reasons to remove package-lock.json apply the Cargo.lock as well?
https://jira.hyperledger.org/browse/IS-1295

package-lock.json here has a same value as Cargo.lock for Rust wrapper, not libindy or libvcx itself. So we should skip all language-specific lock files except libraries as libindy and libvcx are distributed in binary format.


ja: Make docs/reference/glossary/node.md follow v1.19 of the original text

This is a Feature Request

What would you like to be added
Update docs/reference/glossary/node.md to follow v1.19 of the original (English) text.
Why is this needed
content/ja/docs/reference/glossary/node.md is outdated.
Comments
/language ja
/good-first-issue
File to update
https://github.com/kubernetes/website/tree/dev-1.19-ja.2/content/ja/docs/reference/glossary/node.md
Original
https://github.com/kubernetes/website/tree/release-1.19/content/en/docs/reference/glossary/node.md
diff between translated and v1.19
https://gist.github.com/60a7401eaaf3f6c39edfbbaf62748c90
Note
Currently, we use dev-1.19-ja.2 branch. Please open a PR targeting the branch.
ref
https://kubernetes.io/ja/docs/contribute/localization/
If you have a question, feel free to ask us at slack.k8s.io #kubernetes-docs-ja channel

ちょっとした修飾子の変更のみなので日本語で対応が必要か要確認

実質差分なさそうなのでcloseで良さそう

/close


Repayment of Teachers’ Loans scheme

Use this issue to discuss Repayment of Teachers’ Loans scheme in the HMRC content style guide.

Replaced by #96.


Added preamble

	    We recommend having a look at the OpenChain Reference Training Slides and the OpenChain Reference Policy Template before undergoing Self-Certification. It will help frame the questions that follow.

@shanecoughlan The text also needs to be added to the translation files.  For English, it can be added after the Survey_title at https://github.com/OpenChain-Project/Online-Self-Certification-Web-App/blob/1b053cc94f9824985c4b3b7707392beb148a64dc/WebContent/resources/locales/en/translation.json#L162
The translated text should be added in their respective translation files.

If you merge the strings to the various translated files, the translated data can be added right there by overwriting the English. I'll handle the Japanese if necessary.

@brandelune I added the untranslated strings to the ja and ko translation files.  See PR #180
You can update the preamble-add-en branch directly or create a pull request against the preamble-add-en branch.  Then I'll merge in the branches.

@shanecoughlan @brandelune English and Korean are now implemented, let me know the ETA for the Japanese translation and I'll plan to do an update once it is available.

I am seeking the Japanese translation. Meanwhile, we just got sent a German one. Can it be included?
 Dies wird Sie bei der Beantwortung der folgenden Fragen unterstützen.

The Japanese is coming in today. Apologies for the delay.


Spanish translation

Made some changes like mentionned in the commit message

@nwinter, can you merge?

Thanks @Kavignon!


How do I hack a non Node native module

I'm trying to use the package snoowrap,
I've done rn-nodeify --install --hack and it all works well, but it only works if I manually add ../../../../shim.js to each file, how can I hack all my installed packages so I don't have to manually import the shim in each file?
I tried doing rn-nodeify --hack snoowrap but it doesn't seem to work

only import './shim' at the top of your index.ios.js / index.android.js, u don't need it anywhere else
my guess is you're experiencing a problem because there's a nested dependency on ws which tries to pull in WebSocketServer and fails
you can try to add a "browser" field to the nested ws package.json:
...
  "browser": {
    "./lib/WebSocketServer.js": false
  },
...

and see how far that gets you

I've done all that, but I seem to get this error:
![Error]
(http://i.imgur.com/1bDWUDa.jpg)

@Gacnt hard to say, but if your repo is public i can take a look. Or make a stripped down example


Assistants and better workflow

Hey there, I was trying to search for a suitable plugin to adopt, but couldn't find any yet.
First of all congrats for your product!
These are some of the features that I'd like see implemented in an ideal plugin, especially with the latest OpenAI Assistant API...
At the very basic I'd fancy a general dashboard that shows the current assistant in use, the thread (if any), and well, the chat box.

Threads switcher: be able to switch between threads (perhaps open them with telescope)

Assistant manager: be able to switch between assistants (perhaps open them with telescope)

Chat box: be able to chat with the assistant

Refactoring: open the assistant with context of the current file (or selection), insert a prompt, and open a side window comparing the original code with the refactored code. The user is in operation mode, at this point, and they can have the following options: accept, view diff (starts diffthis on both windows).

Do you think this is something you might feel a spark of interest for? I'm also open to contribute

@teocns Hey, I'll have to look into Assistant API in detail, but from what I've seen so far I certainly see the benefits. Tool use, working with non textual files (pdf, imgs) and providing them as a context, switching between assistants in a thread.
I also see the negatives, the assistant doesn't support streaming output yet which kinda sucks from user perspective - you hit query and wait an unknown amount of time. Plus even greater vendor lock in and some people might not like storing persistently their data/code in OpenAI cloud.
Concerning the points mentioned:

i. :GpChatFinder
ii. yeah dynamic switching between models and (locally specified) personas was on my todo list even before the OpenAI dev-day
iii. :GpChatNew, :GpChatToggle, :GpChatPaste
iv. :GpRewrite, GpAppend, GpPrepend` etc. - personally I use them to refactor in place and use gitsigns.nvim to see changed lines, jump between changes, preview hunk diffs or opening full diffthis. The beauty of (neo)vim is among other things in the ability to combine orthogonal extensible tools - I'm not closing door or dedicated refactoring pipeline, but I'd like to first hear the benefits over what I've just described.

Thanks @Robitx, indeed many of the features that you described, and I personally had the chance to test, complement my workflow seamlessly.
However I do have to mention that I experience serious insert-mode typing lag only after the conversation was initiated and a response from GPT was generated. For reference, I use Astronvim; I have tried disabling syntax highlight and LSP - anything that comes in your mind intuitively that you consider might be causing this issue?

@teocns well after the first GPT response in the chat buffer, there is a checks if the chat Title is unset (# topic: ?) and if so makes a second GPT call asking it to generate the topic. Can you check if it corresponds to the lag you're observing?
Otherwise if you have public nvim configuration (or if you're willing to provide it to me privately) I can check the behavior and try to debug it.

I can confirm # topic isn't the issue.
Here's my astronvim user config, if you're willing to give it a chance. This contains the user custom configuration - you will need to setup astronvim aside, and then place this configuration under the user directory.

I moved this to #53

I would like to move a bit ahead with the Assistants topic

I also see the negatives, the assistant doesn't support streaming output yet which kinda sucks from user perspective - you hit query and wait an unknown amount of time. Plus even greater vendor lock in and some people might not like storing persistently their data/code in OpenAI cloud.

I personally see output streaming as a more UI-breaking feature - neither ChatGPT's GUI managed to yet get a comfortable UX on the cursor side while the stream is running.
On another note, I was taking a look at pynvim to integrate it with the Chat API. Now, this is an idea from a non-experienced vim user, and I can intuitively recognise that tying this feature to Python can come with portability and other issues.
Hence, what's your take? Plain HTTP API, or Python SDK?

@teocns less dependencies means less breaking points outside of your control, so personally I would go with Plain HTTP API (within reason, depends on amount of complexity hidden by SDK, but these days GPT can help with migration).

@teocns for the agent telescope picker, add the following to your config= function().
      local pickers = require 'telescope.pickers'
      local finders = require 'telescope.finders'
      local actions = require 'telescope.actions'
      local action_state = require 'telescope.actions.state'
      local conf = require('telescope.config').values

      local models = function(opts)
        local buf = vim.api.nvim_get_current_buf()
        local file_name = vim.api.nvim_buf_get_name(buf)
        local is_chat = require('gp').not_chat(buf, file_name) == nil

        opts = opts or {}
        pickers
          .new(opts, {
            prompt_title = 'Models',
            finder = finders.new_table {
              results = is_chat and require('gp')._chat_agents or require('gp')._command_agents,
            },
            sorter = conf.generic_sorter(opts),
            attach_mappings = function(prompt_bufnr)
              actions.select_default:replace(function()
                local selection = action_state.get_selected_entry()
                actions.close(prompt_bufnr)
                require('gp').cmd.Agent { args = selection[1] }
              end)
              return true
            end,
          })
          :find()
      end

      vim.keymap.set('n', '<C-g>z', function()
        models(require('telescope.themes').get_dropdown {
          winblend = 10,
          previewer = false,
        })
      end, {
        noremap = true,
        silent = false,
        nowait = true,
        desc = 'GPT prompt Choose Agent',
      })


Transferring file to ADLS Gen2 via Storage Explorer Tool hangs at 100%

Storage Explorer Version: 1.10.1
AzCopy Version: 10.2.1
Build Number: 20190919.2
Platform/OS: macOS Mojave
Architecture: x64
Bug Description
Uploading a 1.4GB file to ADLS Gen2 hangs when it reaches 100%

hohoho: Azure Blob
datalake: ADLS Gen2
The 🚫 is from a previous transfer that I canceled that was hung at 100%.
Steps to Reproduce

Drag and drop a 1.4GB file into the container
Wait until it reaches 100% and hangs there

Expected Experience
Expect the transfer to complete.
Actual Experience
Transfer never completes.
Additional Context
I've transferred a few 4xxMB files without issues. I'm also able to transfer the identical 1.4GB file to Azure Blob storage without issues.

This is weird.  Your upload to Blob also has AzCopy enabled.  Uploading to ADLS Gen2 also uses AzCopy to actually do the upload. Shouldn't fail or hung.  If you don't mind, could you try to do an actual upload from the toolbar or copy the AzCopy command from the clipboard and run the AzCopy command line from the command line?  Observe to see if either of them succeeds? Thanks.

Attached the log file that was generated when I let it timeout: c0054505-2c1a-6143-742f-2b5704fe84b2.log
toolbar = Upload button in the application?
I can't do the azcopy cli method because v8 doesn't support adls gen2 and v10 azcopy doesn't work for me, keeps giving me the failed to refresh access token, even though I did an azcopy login right before it. I should maybe open a separate git issue for that.

Hey @jeeva86 , so we recently learned from the AzCopy team that they way we are calculating percentages is "wrong". Basically AzCopy tell us:

how many bytes need to be sent
how many bytes have been sent

And from that we do the math to calculate % done. But what we weren't aware of was that bytes sent includes bytes failed network calls! So looking at your log, you have a lot of 500 errors (server timeouts).
Towards the end though, I did start to see some 200s, so I think your transfer might eventually finish? But I can understand how it's frustrating to not see if any progress is actually being made. Thankfully in our next version of Storage Explorer, we'll be using an AzCopy that directly tells us % successfully sent. 😄
As for your token refresh issue, yep, you'll need to file an issue at the AzCopy repo: https://github.com/Azure/azure-storage-azcopy
Thank you for previewing the AzCopy feature, but also apologies about this issue.

Thanks @MRayermannMSFT. My transfers never finished, but I'll try again. Is there non-preview version of azcopy for pushing to adlsg2?

I retried this in my work network(bigger pipe), and the upload was successful!

@jeeva86, other than AzCopy requiring a large network bandwidth, do you still have any problem using Storage Explorer?


Postpone scanning when master has been recently modified

Fixes https://github.com/quantumlib/Cirq/issues/1343

Automerge cancelled: Pull Request is not mergeable.


Vim plugins n grammar

Motivation for this change
Adds a grammar checker to vim + agda-vim + some updates.
To use the grammar checker set let g:grammarous#jar_dir="${languagetool}/share/" in vimrc and also add "vim-grammarous" to your plugin set.
Things done

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

[x] NixOS
[ ] OS X
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

@jagajaga

Thanks guys!

@edwtjo why did you close it?

i think "comment" and "close and comment" buttons are to close :smile:

@jagajaga @garbas heh no I cherry-picked the commits before closing :) I should've written "closed with  "


FR: Ability to set height and width of the calendar

Hi,
Thanks for this great plugin. Really liking it! It would be really nice, if we can also have the ability to set the width and height of the calendar. That way we can adjust it's layout in wider screens for example.

@AvijeetPrasad I've solved it for myself via custom.css
`.logseq-block-calendar {
max-width: 400px;
min-width: 315px;
}
#calendar-placeholder {
display: flex;
justify-content: center;
}`
that is example, how to set minimum and maximum width for calendar and center it in the sidebar.
You can adjust the styles for your needs.


Stickyfill's module dist redefine's the window object, always commits 'seppuku'

I'm having a lot of trouble getting this polyfill to work.  I can see that it's installed, and I can add elements to stickyfill, but it doesn't seem to do anything. I've tried your test page and verified it working in IE11, so I'm wondering if there's some sort of collision with another library going on.
Below is a screenshot of my console in Browserstack.  You can see both elements are there and both are _stickyMode = null.  One is a H1 element whose only parent is the <body>. The other is a nav element that is position: sticky and works in Chrome without Stickyfill.

I'm pulling in the library asynchronously like so:
if (!Modernizr.csspositionsticky) {
    promises.push(
      // tslint:disable-next-line
      import(/* webpackChunkName: "sticky-polyfill" */ 'stickyfilljs')
        .then((stickyfill) => {
          window['Stickyfill'] = stickyfill;
        }),
    );
  }

And using it like so:
// Apply Position Sticky polyfill
if (!Modernizr.csspositionsticky) {
  window['Stickyfill'].add(document.querySelectorAll('.section__tabs'));
}

Any ideas for troubleshooting?

Hi, I need to see your page to help you.

whoops, didn’t mean to close

I've figured out the issue... sorta.  It's committing Seppuku in my IE11, so there's definitely a collision.
I'll try to get a test page up here shortly, but I suspect it might be Modernizr.

window.getComputedStyle is returning undefined when the Module is run.  In my IE11's console, it's working as expected.

The problem is this line here.  When used as a module, this is not the window object, so you end up redefining window for the rest of the script.

As others have mentioned in #54 and #43, I'd leave feature detection off. It'd be better to assume the browser's broken and leave feature detection up to a library like Modernizr.

Oh, I see. I’ve tested a bunch of bundlers and they didn’t mess with this, so it slipped past me.
I use these args for better minification, actually. They become a and b in minified version. It’s not much, but I’ll accept your PR and leave them be.
As for the feature detection, I won’t remove it completely, but I’m planning to add an option to disable it.
Thanks!

Sounds good, thanks!


Add Gateway-Router mapping to Discovery Metadata

See https://github.com/TheThingsNetwork/ttn/pull/659

@htdvisser could you generate the implementations for all languages ? my local setup is only configured for go and I guess you probably have a complete configuration ?

Thanks @htdvisser for your help on generating all protobuf implementations !


Use getHealth rpc method instead of /health URL

Hello,
I was wondering if it would be possible to update the is_connected check to hit the getHealth json RPC method, instead of the /health URL?
I have a node from quicknode, which returns a 404 for the /health call, but supports the getHealth rpc method.
Thank you.

Looks like this is blocked by https://github.com/michaelhly/solana-py/issues/116 :(

This should be closed now thanks to the merge of https://github.com/michaelhly/solana-py/pull/460 :)
@zpalmtree @michaelhly


Theme update

Think of using a more soothing, clean and readable theme?

Okay!, time to revamp whole page.

think of a .in domain name and lmk

can be something that you use as ur github and  linkedin username

Checkout theme now?

looks good, the italics need a bigger font, since italicising them makes them a bit shorted


HCPPlugin.m: unknown type name 'SocketIOClient'

Followed the setup in readme created a new cordova project but xcode can't build and fail with this error
HCPPlugin.m: unknown type name 'SocketIOClient'

What version of Xcode you are using?
What type of the project: Ionic or Cordova?

Xcode 7.1
cordova 5.*
I got it working by running cordova prepare ios
It just didnt work out of the box no idea why :)
On 10 November 2015 at 13:54, Nikolay Demyankov<EMAIL_ADDRESS>wrote:

What version of Xcode you are using?
What type of the project: Ionic or Cordova?
—
Reply to this email directly or view it on GitHub
https://github.com/nordnet/cordova-hot-code-push/issues/37#issuecomment-155412744
.

--
Best regards
Nicholas James Ennis.
<EMAIL_ADDRESS>

Xcode 7.1
cordova 5.*
I got it working by running cordova prepare ios
It just didnt work out of the box no idea why :)

Hmm, that is weird. Tried several times and it worked fine. But good that you solved it :)

Loving the plugin, made something similar myself using cordova's file
system plugins and some JS but it's no where near as stable as this :)
Keep up the good work!
On 10 November 2015 at 14:20, Nikolay Demyankov<EMAIL_ADDRESS>wrote:

Hmm, that is weird. Tried several times and it worked fine. But good that
you solved it :)
—
Reply to this email directly or view it on GitHub
https://github.com/nordnet/cordova-hot-code-push/issues/37#issuecomment-155417260
.

--
Best regards
Nicholas James Ennis.
<EMAIL_ADDRESS>

Thanks, will try to :)


[community] Add Dynatrace OneAgent operator bundle

Add a Dynatrace OneAgent operator bundle file containing CRD, CSV and package yaml.

Pushed oneagent operator to community-operators repo in quay