Can't install via "go get" using Go 1.2

From @pfalcon on May 24, 2015 23:49

Installation
go get decomp.org/x/cmd/restructure

All I get is:

package decomp.org/x/cmd/restructure: unrecognized import path "decomp.org/x/cmd/restructure"

I'm on Ubuntu 14.04.
$ go version
go version xgcc (Ubuntu 4.9.1-0ubuntu1) 4.9.1 linux/amd64

Copied from original issue: decomp/restructure#1

From @pfalcon on May 25, 2015 0:7
Ok, gccgo was cunningly suggested by ubuntu builtin package oracle, figured I need to install "golang" instead. Result is the same however:
$ go get decomp.org/x/cmd/restructure
package decomp.org/x/cmd/restructure: unrecognized import path "decomp.org/x/cmd/restructure"
$ go version
go version go1.2.1 linux/amd64

From @pfalcon on May 25, 2015 0:36
I see, I installed Go 1.4 from Ubuntu PPA, and finally was able to get "go get" to work, thanks. I don't know if it's Ubunti so slow or something, but maybe it's worth to mention in READMEs that Go 1.4 is required.

 Could you try running go get with -v and post the output.
This is the output I get, while running Go version 1.4:
[~]$ export GOPATH=${HOME}/gocode
[~]$ go get -v decomp.org/x/cmd/restructure
Fetching https://decomp.org/x/cmd/restructure?go-get=1
Parsing meta tags from https://decomp.org/x/cmd/restructure?go-get=1 (status code 200)
get "decomp.org/x/cmd/restructure": found meta tag main.metaImport{Prefix:"decomp.org/x/cmd/restructure", VCS:"git", RepoRoot:"https://github.com/decomp/restructure"} at https://decomp.org/x/cmd/restructure?go-get=1
decomp.org/x/cmd/restructure (download)
Fetching https://decomp.org/x/graphs?go-get=1
Parsing meta tags from https://decomp.org/x/graphs?go-get=1 (status code 200)
get "decomp.org/x/graphs": found meta tag main.metaImport{Prefix:"decomp.org/x/graphs", VCS:"git", RepoRoot:"https://github.com/decomp/graphs"} at https://decomp.org/x/graphs?go-get=1
decomp.org/x/graphs (download)
github.com/mewfork/dot (download)
github.com/mewkiz/pkg (download)
Fetching https://decomp.org/x/graphs/iso?go-get=1
Parsing meta tags from https://decomp.org/x/graphs/iso?go-get=1 (status code 200)
get "decomp.org/x/graphs/iso": found meta tag main.metaImport{Prefix:"decomp.org/x/graphs", VCS:"git", RepoRoot:"https://github.com/decomp/graphs"} at https://decomp.org/x/graphs/iso?go-get=1
get "decomp.org/x/graphs/iso": verifying non-authoritative meta tag
Fetching https://decomp.org/x/graphs?go-get=1
Parsing meta tags from https://decomp.org/x/graphs?go-get=1 (status code 200)
Fetching https://decomp.org/x/graphs/merge?go-get=1
Parsing meta tags from https://decomp.org/x/graphs/merge?go-get=1 (status code 200)
get "decomp.org/x/graphs/merge": found meta tag main.metaImport{Prefix:"decomp.org/x/graphs", VCS:"git", RepoRoot:"https://github.com/decomp/graphs"} at https://decomp.org/x/graphs/merge?go-get=1
get "decomp.org/x/graphs/merge": verifying non-authoritative meta tag
Fetching https://decomp.org/x/graphs?go-get=1
Parsing meta tags from https://decomp.org/x/graphs?go-get=1 (status code 200)
Fetching https://decomp.org/x/graphs/primitive?go-get=1
Parsing meta tags from https://decomp.org/x/graphs/primitive?go-get=1 (status code 200)
get "decomp.org/x/graphs/primitive": found meta tag main.metaImport{Prefix:"decomp.org/x/graphs", VCS:"git", RepoRoot:"https://github.com/decomp/graphs"} at https://decomp.org/x/graphs/primitive?go-get=1
get "decomp.org/x/graphs/primitive": verifying non-authoritative meta tag
Fetching https://decomp.org/x/graphs?go-get=1
Parsing meta tags from https://decomp.org/x/graphs?go-get=1 (status code 200)
github.com/mewfork/dot/token
github.com/mewkiz/pkg/term
github.com/mewkiz/pkg/errutil
decomp.org/x/graphs/primitive
github.com/mewkiz/pkg/goutil
github.com/mewfork/dot/ast
github.com/mewfork/dot/scanner
github.com/mewfork/dot/parser
github.com/mewfork/dot
decomp.org/x/graphs
decomp.org/x/graphs/iso
decomp.org/x/graphs/merge
decomp.org/x/cmd/restructure
[~]$ go version
go version go1.4.1 linux/amd64

From @pfalcon on May 25, 2015 8:23

The upcoming pure Go library for LLVM IR will require Go 1.5. When v0.2 of the decompilation pipeline is released this dependency will be clearly stated in the README. I'll include a notice for now, referencing this issue.

I wanted to avoid "I told you so", but well: Using Go 1.5 isn't going to help lower entry level into your project. Ubuntu 14.04 is the latest long-support release (i.e. something real human want to use, who don't have time to relearn something each half-year) and it ships 1.2. There're even more conservative distros like proverbial Debian Stable or RHEL/CentOS. Consider that most people just tried the command you gave with whatever they have on their hands (e.g. 1.2), so error, thought that your stuff is broken crap and moved on to the next thing in the list (and the list is long).
let's take my example, I consider it a chance to play with Go finally, so I discovered 1.4 for Ubuntu in a PPA https://launchpad.net/~evarlast/+archive/ubuntu/golang1.4 and git it work. But even I don't know where to get 1.5 (that repo lacks it). That proves the point: you can't write stable software in Go. Because the language itself is not stable, design not backwards compatible (e.g. 1.2 assures that there's no such package for something 1.4 can install), etc., etc.
So, please really consider leaving all current components/versions in Go results of nice experiment, and start another experiment - using Python as an implementation language.
With all fairness, issues like above happen to almost any language, the talk is about maturity. Python2 vs Python3 split is well handled, Python3 is there for a long time (5+ years ago), Python2 was made rather compatible with it, so the situation is not comparable with a mess Go turns to be. Go 1.5 will be good to write software in too - in ~5 years. If it will survive until then is buzz-making media companies environment. Rust will be viable choice - when in gets really rusty and trusty, in some 10 years, with the same warning. So far they are nothing but alGol14 and Algol15, with the same fate likely ensue.

maybe it's worth to mention in READMEs that Go 1.4 is required.

 When v0.2 of the decompilation pipeline is released this dependency will be clearly stated in the README. I'll include a notice for now, referencing this issue.

Think I found a solution to this issue at stackoverflow: http://stackoverflow.com/a/23832292
@pfalcon, would you mind trying to see if those steps fixes the issue with Go 1.2? I'm not on Ubuntu, so it would take me quite some time to reproduce this issue.
sudo apt-get purge golang*
sudo rm -rf /usr/lib/go /usr/local/go
sudo apt-get install golang-go golang-go.tools

From @pfalcon on May 26, 2015 7:35
Ok, I disabled 1.4 PPA, executed commands above, install 1.2.1 from the main repo and got just the same error as initially:
$ go get decomp.org/x/cmd/restructure
package decomp.org/x/cmd/restructure: unrecognized import path "decomp.org/x/cmd/restructure"

I'd say, it's not worth the effort - in the world of experimental languages like go, something like 2 mini versions ago is ancient, a completely different language at all ;-). As long as you tell users that 1.4 is required, it's ok, and time can be spent on something else instead (like switching to Python ;-) ).

But even I don't know where to get 1.5 (that repo lacks it).

This is because Go 1.5 has not yet been released. It is scheduled for release on the July 31, 2015. The pure Go library for interacting with LLVM IR makes use of arbitrary precision floats which will be added in Go 1.5 (currently available on tip). However, once Go 1.5 has been released it would be trivial to vendor math/big locally, thus allowing users of Go 1.4 to simply use go get. I am still interested to find out what caused Go 1.2 to fail on go get. I'll reopen the issue for now so that it can be resolved. Basically I want to figure out if it is a feature lacking in Go 1.2, or me doing something wrong with configuring custom remote import paths.

I was able to replicate this issue, after installing Go version 1.2.1 on Ubuntu 14.04 in VirtualBox. The issue is caused by an unsupported SSL certificate verification method. For reference, the verification method was added in the following CL: https://codereview.appspot.com/87670045 (added roughly 1 year ago). There are three ways of solving this issue.

Using a later version of Go than 1.2.
Backporting the required patches to the Go toolchain.
Updating the SSL certificate for decomp.org.

The first option is the recommended approach for now. The third option is the long term plan on how to solve this issue for users of earlier Go versions.
u@foo:/tmp/go$ go get -v decomp.org/x/cmd/restructure
Fetching https://decomp.org/x/cmd/restructure?go-get=1
https fetch failed.
Fetching http://decomp.org/x/cmd/restructure?go-get=1
import "decomp.org/x/cmd/restructure": http/https fetch: Get https://decomp.org/x/cmd/restructure?go-get=1: x509: certificate signed by unknown authority (possibly because of "x509: cannot verify signature: algorithm unimplemented" while trying to verify candidate authority certificate "COMODO ECC Certification Authority")
package decomp.org/x/cmd/restructure: unrecognized import path "decomp.org/x/cmd/restructure"

Closing for now, as three mitigation methods have been described.

I'd say, it's not worth the effort - in the world of experimental languages like go, something like 2 mini versions ago is ancient, a completely different language at all ;-)

I'd still say that this is indeed a bug, as it violates the Go 1 compatibility contract. I'll reopen the issue and investigate further.


use cyclonedx-bom v0.8.0, and recode to use updated validation within it

💚 All backports created successfully

Status
Branch
Result

✅
release/1.2.z

Questions ?
Please refer to the Backport tool documentation


[packchk] Error M313 reported: does not look very valid #800 (#509)

MakePathCanonical() also for package path to test against

Relates to #800

@fred-r-perso can you confirm this fixes your issue?

I need to see how to rebuild the tooling.
I will confirm by the end of the week.

Hi @JonatanAntoni,
It seems the binaries have expired.
The problem I face is this one:
build$ ls -al
total 8
drwxrwxr-x  2 fred fred 4096 mars  21 05:53 .
drwxrwxr-x 15 fred fred 4096 mars  21 05:55 ..
fred@fred-N53Jl:~/cmsis/devtools/build$ cmake -DCMAKE_BUILD_TYPE=Release
CMake Warning:
  No source or binary directory provided.  Both will be assumed to be the
  same as the current working directory, but note that this warning will
  become a fatal error in future CMake releases.

CMake Error: The source directory "/home/fred/cmsis/devtools/build" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.

If I call CMake from the upper level folder, the build starts (then I have some disk space issues on my machine).
Thanks & Regards,
Fred


Fix copying dependencies from task groups to notebooks (with inner task groups)

Before this change, DatabricksWorkflowTaskGroup (astro-provider-databricks==0.1.3) did not pass Python dependencies to inner Databricks tasks if they were inside intermediate Airflow Task Groups for Airflow 2.2.4. For newer Airflow versions, it duplicated the dependencies proportionally to the amount of nested TaskGroups.
In the example, DAG introduced:

notebooks 1, 2, 3 and 4 need the simplejson dependency
the simplejson dependency is only set at the DatabricksWorkflowTaskGroup level (example_task_group)
notebooks 2 and 3 are inside an inner Airflow TaskGroup (my_task_group)

We confirmed the Databricks cluster does not have simplejson as a dependency:

And we also confirmed the notebooks failed since the cluster does not have this dependency:

All the tasks from this Databricks Workflow have the simplejson dependency in Databricks, both the ones inside the inner task group and the ones outside. Examples:

Codecov Report
Patch coverage: 60.86% and project coverage change: -0.15 :warning:

Comparison is base (d3a633c) 78.47% compared to head (8d1c017) 78.33%.

:exclamation: Current head 8d1c017 differs from pull request most recent head 9fdeaa4. Consider uploading reports for the commit 9fdeaa4 to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #47      +/-   ##
==========================================
- Coverage   78.47%   78.33%   -0.15%
==========================================
  Files           5        5
  Lines         460      480      +20
  Branches       57       64       +7
==========================================
+ Hits          361      376      +15
- Misses         78       83       +5
  Partials       21       21

Impacted Files
Coverage Δ

src/astro_databricks/operators/notebook.py
83.82% <60.86%> (-1.53%)
:arrow_down:

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


session.authorize returns 503

Describe the bug
I have implemented next-auth for auth purposes. And below is my auth endpoint for liveblocks. It used to work seamlessly but for the past 1 2 days sometimes it stops working and giving me error I posted below
// liveblocks-auth/route.ts
import { getUser } from '@/lib/getUser';
import { Liveblocks } from '@liveblocks/node';
import { v4 } from 'uuid';

const liveblocks = new Liveblocks({
  secret: process.env.LIVEBLOCKS_SECRET_API_KEY,
});

export async function POST(request: Request) {
  const { room } = await request.json();

  const dbUser = await getUser();

  const avatarId = v4();

  const user = dbUser || {
    id: avatarId,
    name: 'Anonymous',
    image: `https://avatar.vercel.sh/${avatarId}.png`,
  };

  // Start an auth session inside your endpoint
  const session = liveblocks.prepareSession(user?.id, {
    userInfo: {
      name: user.name,
      image: user.image,
    },
  });

  if (room) {
    session.allow(room, session.FULL_ACCESS);
  }

  // Authorize the user and return the result
  const { status, body, error } = await session.authorize();

  console.log('status', error);
  return new Response(body, { status });
}

To Reproduce
Steps to reproduce the behavior:

pnpm run dev

Expected behavior
session.authorize() should work and I should see my livee cursorss
Illustrations
If applicable, add screenshots or video recordings to help explain your problem.
Upload your file with a drag and drop on the text area.

Environment (please complete the following information):
"@liveblocks/client": "^1.7.0",
"@liveblocks/node": "^1.7.0",
"@liveblocks/react": "^1.7.0",
"@liveblocks/react-comments": "^1.7.0",

Hey! Getting a ENOTFOUND from the getaddrinfo syscall typically indicates an unreachable host or a network or connectivity issue on your local network. We haven’t seen any downtime in the last couple of days, so maybe it’s best to check and see if there is perhaps a local network or firewall issue that plays up intermittently on your end? Have you seen connectivity issues with other services maybe as well? When these happen, how quickly do they resolve for you?

Thanks @nvie . No connectivity issues with other services. It seems like the hiccup is specifically with liveblocks, and when it happens ( for the last 1 2 day actually )  it hangs around for about 5 minutes. I'll dig into my local network and firewall settings to see if there's any mischief going on there. Appreciate the guidance!

Best of luck with that! I'll keep an extra eye out in our logs and look out to see if other people also are running into this issue.


Using RSpec::OpenAPI.path = -> but for different audiences

Contextual snippet:
RSpec::OpenAPI.path = -> (example) {
  case example.file_path
  when %r[spec/requests/api/v1/] then 'doc/openapi/v1.yaml'
  when %r[spec/requests/api/v2/] then 'doc/openapi/v2.yaml'
  else 'doc/openapi.yaml'
  end
}

I really like the idea behind generating multiple schemas, but the current configuration causes a caveat that makes this feature challenging to use. (I didn't test this in practice but that is what I assume happens based on documentation)
It's because these different schema files, which might be targeted at different audiences are sharing common values for other configuration options like:
RSpec::OpenAPI.title = 'OpenAPI Documentation'
RSpec::OpenAPI.enable_example = false
RSpec::OpenAPI.application_version = '1.0.0'
RSpec::OpenAPI.info = {
  description: 'My beautiful API',
  license: {
    'name': 'Apache 2.0',
    'url': 'https://www.apache.org/licenses/LICENSE-2.0.html'
  }
}
RSpec::OpenAPI.request_headers = %w[X-Authorization-Token]
RSpec::OpenAPI.response_headers = %w[X-Cursor]
RSpec::OpenAPI.servers = [{ url: 'http://localhost:3000' }]
RSpec::OpenAPI.security_schemes = {
  'MyToken' => {
    description: 'Authenticate API requests via a JWT',
    type: 'http',
    scheme: 'bearer',
    bearerFormat: 'JWT',
  },
}
RSpec::OpenAPI.comment = 'comment'
RSpec::OpenAPI.description_builder = -> (example) { example.description }
RSpec::OpenAPI.summary_builder = ->(example) { example.metadata.dig(:example_group, :openapi, :summary) }
RSpec::OpenAPI.tags_builder = -> (example) { example.metadata.dig(:example_group, :parent_example_group, :openapi, :tags) }
RSpec::OpenAPI.example_types = %i[request]
RSpec::OpenAPI.ignored_path_params = %i[controller action format]

I don't have a suggestion on how this should be changed. But currently, I cannot generate schema for our frontend API team that is internal and second one for external and public API schema for our consumers.

Let me confirm.
Do you want to customize title, info, comment or such based on pathes, for different audiences?
Something like #162?


Python 3.4 compatibility

Most Ubuntu installations still come with Python 3.4 and Matplotlib 1.3
The visualisation code has a problem in these conditions as reported here b010098

I am running code but have this output. Only frames of the figure appear but no curves.
D:\anaconda\lib\site-packages\h5py_init_.py:36: FutureWarning: Conversion of the second argument of issubdtype from float to np.floating is deprecated. In future, it will be treated as np.float64 == np.dtype(float).type.
from ._conv import register_converters as _register_converters
Tensorflow version 1.5.1
Extracting data\train-images-idx3-ubyte.gz
Extracting data\train-labels-idx1-ubyte.gz
Extracting data\t10k-images-idx3-ubyte.gz
Extracting data\t10k-labels-idx1-ubyte.gz
max test accuracy: 0


Some errors logs occurring in demo unshielding-shielding

When testing with the recent node & running the unshielding demo, alot of errors are occurring within the worker:
Synced 70 out of 70 finalized parentchain blocks
[2021-10-29T07:14:23Z ERROR its_top_pool::watcher] failed to send status update to rpc client: InvalidConnectionHash
[2021-10-29T07:14:23Z ERROR its_top_pool::watcher] failed to send status update to rpc client: InvalidConnectionHash
[+] Received finalized header update (71), syncing parent chain...
[+] Found 1 block(s) to sync
Synced 71 out of 71 finalized parentchain blocks
[2021-10-29T07:14:29Z ERROR its_top_pool::watcher] failed to send status update to rpc client: InvalidConnectionHash
[2021-10-29T07:14:29Z ERROR ita_stf::helpers] key not found in state [26, aa, 39, 4e, ea, 56, 30, e0, 7c, 48, ae, c, 95, 58, ce, f7, b9, 9d, 88, e, c6, 81, 79, 9c, c, f3, e, 88, 86, 37, 1d, a9, 4, d2, 58, 26, 12, 2b, 94, fd, 9a, 4c, df, 5f, d6, b3, 42, 1c, 18, e2, 3, 39, ce, b5, 74, 4b, cb, f6, e0, 9b, 70, cb, a8, a5, 4f, 6c, 23, a, bd, 32, d9, 7d, 9, c1, 5f, d6, a7, 1c, c9, 16]
[2021-10-29T07:14:29Z ERROR its_top_pool::watcher] failed to send status update to rpc client: InvalidConnectionHash
[2021-10-29T07:14:30Z ERROR its_top_pool::watcher] failed to send status update to rpc client: InvalidConnectionHash
[+] Received finalized header update (72), syncing parent chain...
[+] Found 1 block(s) to sync
Synced 72 out of 72 finalized parentchain blocks
[+] Received finalized header update (73), syncing parent chain...
[+] Found 1 block(s) to sync
Synced 73 out of 73 finalized parentchain blocks
[+] Received finalized header update (74), syncing parent chain...
[+] Found 1 block(s) to sync
Synced 74 out of 74 finalized parentchain blocks
[+] Received finalized header update (75), syncing parent chain...
[+] Found 1 block(s) to sync
[2021-10-29T07:14:49Z ERROR enclave_runtime] Error performing Stf::execute. Error: InvalidNonce(1)
Synced 75 out of 75 finalized parentchain blocks
[+] Received finalized header update (76), syncing parent chain...
[+] Found 1 block(s) to sync
Synced 76 out of 76 finalized parentchain blocks
[2021-10-29T07:14:56Z ERROR its_top_pool::watcher] failed to send status update to rpc client: InvalidConnectionHash
[+] Received finalized header update (77), syncing parent chain...

The error [2021-10-29T07:14:30Z ERROR its_top_pool::watcher] failed to send status update to rpc client: InvalidConnectionHash is a result of my changes to the direct RPC interface and the watch mechanism. When I ported your previous implementation @haerdib, I put the same rules into play about sending additional replies to the client. But apparently there has been a flaw in that logic. But we only discovered it after my changes, because that error was not checked for before. It doesn't affect the success of direct call, but should still be fixed at some point.

The error [2021-10-29T07:14:30Z ERROR its_top_pool::watcher] failed to send status update to rpc client: InvalidConnectionHash is a result of my changes to the direct RPC interface and the watch mechanism. When I ported your previous implementation @haerdib, I put the same rules into play about sending additional replies to the client. But apparently there has been a flaw in that logic. But we only discovered it after my changes, because that error was not checked for before. It doesn't affect the success of direct call, but should still be fixed at some point.


Pinned editors are often indistinguishable

Testing #98019

open and pin vscode.d.ts and vscode.proposed.d.ts
there is no way to tell them apart
:confused: Not sure what I should do in this scenario.

Yeah, https://github.com/microsoft/vscode/issues/98161 is there to discuss other options.Marking as duplicate.


Wrong $saveMode parameter documentation in SchemaTool::updateSchema

In Doctrine\ORM\Tools\SchemaTool::updateSchema the documentation states that "If $saveMode is set to true the command is executed in the Database, else SQL is returned.". That is wrong since the method never returns anything.
What actually happens when $saveMode is true is that the method calls toSaveSql instead of toSql in SchemaDiff which produces a non-destructive update. The details can be found in the documentation of Doctrine\DBAL\Schema\SchemaDiff::toSaveSql(). This is very useful, for example, when you want to do a partial update of the schema, you need $saveMode set to true otherwise updateSchema would drop all the tables not included in the update, learned that the hard way.

Yeah this seems to be a copy/paste issue from getUpdateSchemaSql()

Noticing that also getUpdateSchemaSql() is wrong as is it oppositely states it will execute commands in DB eventually which is not true either.

Done via #5597


VTGate commit/rollback will fail if session object is not valid

@sougou @alainjobart @shrutip

With this change, transaction patterns like below will fail. Do we happen to see those?
begin -> commit
begin -> rollback

lgtm with a few nits.

Agree with Sugu's comments. LGTM otherwise.

Coverage increased (+0.05%) to 44.3% when pulling 9909d76231128c754a1cf3542874e787b4c9a4cc on vtgatecommit into 2e5f169cdceac884033a9f93df2a09f1168cd3c2 on master.


proto: add function to shallow copy a message

Generated messages have mutexes and other variables that make it dangerous to shallow copy.
Add a function to the proto package that does the equivalent of a shallow copy in a safe way.
The function would semantically equivalent to:
func ShallowCopy(dst, src proto.Message) {
     dm := dst.ProtoReflect()
     sm := src.Protoreflect()
     if dm.Type() != sm.Type() {
         panic("mismatching type")
     }
     proto.Reset(dst)
     sm.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {
         dm.Set(fd, v)
         return true
     })
}

but be optimized for performance.

I have just had to abandon an upgrade because we copy messages. Because they now contain mutexes the copylocks check of the  go vet command now fails in numerous places.
So I need this for correctness - it is a serious error to copy mutexes which explains why 'go vet' has check explicitly for when this happens.

I have just had to abandon an upgrade because we copy messages. Because they now contain mutexes the copylocks check of the go vet command now fails in numerous places.

The data structures that were not safe for shallow copying have always been present since v1.1 (and possibly earlier). The only difference is that we made it possible for vet to detect such cases more readily. In other words, just because vet didn't flag it for v1.3 and earlier doesn't mean it was okay on those versions.

I have just had to abandon an upgrade because we copy messages. Because they now contain mutexes the copylocks check of the go vet command now fails in numerous places.

The data structures that were not safe for shallow copying have always been present since v1.1 (and possibly earlier). The only difference is that we made it possible for vet to detect such cases more readily. In other words, just because vet didn't flag it for v1.3 and earlier doesn't mean it was okay on those versions.

It isn't obvious to users of these libraries that it wasn't safe.  The point of generated code is that a user shouldn't need to be reading it to figure out implementation subtleties.
It is good that you've made everyone aware of the issue but...  at the same time there's no way to remediate the problem.
I too am stuck now in trying to upgrade to these libraries, but am hosed because I have thousands of these errors coming up now (mainly in logging statements).

This seems indeed an important issue. Copying (both shallow and deep) and comparison is one of the most basic operations one would want to perform -- not without reason Go supports assignment and comparison for structs.
For end-users to deal with it can be inneficient+incovenient (writing a generic function with reflection), or very inconvient (having to write a  copy/equal functions by hand for each message, as needed).
Notice that C++ API, Java API and [Python API] all provide a CopyFrom() method. For equality I've seen methods for that in testing packages, but I can't find them right now.

For future reference: You probably mean proto.Clone, rather than Equal.

Question: proto.Clone() creates a new protobuff message from the old one. What If I do not want that? Instead I want to create a new struct that only contains the data fields without any protobuf fields (XXX and suchlike). In that case I want an explicit CopyFrom(), MergeFrom() methods ? proto.Clone() is not suitable in this case...
It might be possible to use proto.Marshal()/Unmarsha() which gets you most of the way there albeit with the protobuf fields still present but nil.?

What If I do not want that? Instead I want to create a new struct that only contains the data fields without any protobuf fields (XXX and suchlike). In that case I want an explicit CopyFrom(), MergeFrom() methods ?

😟 I don’t think something like that is going to be easily accomplished without using protobuf reflection. How could these hypothetical CopyFrom and MergeFrom methods work against an arbitrary type like that without using reflection?

@puellanivis yes - I think this can only be accomplished if the generated code  creates these methods as part of the struct definition...

+1

+1

Mmm I found this topic because I was hoping for a better solution to shallow copy protobuf message(s). I'd guess you're right @puellanivis @eccles, in that the only way to accomplish "copy without reflection" would be to implement it manually, or generate code for it.
My use case typically involves patching part of an existing message, without actually modifying the existing value. It's been my experience that treating messages as read-only often the only sane choice, if you're passing protobuf messages around (within a single process).
This is my solution, which uses the reflect package. I am not sure why I didn't use protobuf reflection. I may have I run into issues, or perhaps I just didn't bother investigating it 😂.
// shallow copy methods could also be implemented manually, though that's a bit of a pain

var copySomeMessage = ProtoCopier((*SomeMessage)(nil))

func (x *SomeMessage) Copy() *SomeMessage { return copySomeMessage(x).(*SomeMessage) }

// ProtoCopier returns a function that will shallow copy values of a given protobuf value's type, utilising any `Get`
// prefixed method, accepting no input parameters, and returning a single value of the same type, available for each
// given field, intended to be be used with generated code for protobuf messages
// NOTE a panic will occur if the v's type is not t
func ProtoCopier(v interface{}) func(v interface{}) interface{} {
	var (
		t            = reflect.TypeOf(v)
		fieldMethods = make([][2]int, 0)
	)
	for i := 0; i < t.Elem().NumField(); i++ {
		field := t.Elem().Field(i)
		if field.PkgPath != `` {
			continue
		}
		method, ok := t.MethodByName(`Get` + field.Name)
		if !ok ||
			method.Type.NumIn() != 1 ||
			method.Type.NumOut() != 1 ||
			method.Type.Out(0) != field.Type {
			continue
		}
		fieldMethods = append(fieldMethods, [2]int{i, method.Index})
	}
	return func(v interface{}) interface{} {
		src := reflect.ValueOf(v)
		protoCopierCheckType(t, src.Type())
		dst := reflect.New(t.Elem()).Elem()
		for _, fieldMethod := range fieldMethods {
			dst.Field(fieldMethod[0]).Set(src.Method(fieldMethod[1]).Call(nil)[0])
		}
		return dst.Addr().Interface()
	}
}

func protoCopierCheckType(dst, src reflect.Type) {
	if dst != src {
		panic(fmt.Errorf(`ProtoCopier dst %s != src %s`, dst, src))
	}
}

@dsnet I'm not sure if it's what you had in mind, and I'd still love to see something added to the official plugin, but I've implemented a protoc plugin to address this use case.
https://github.com/joeycumines/protoc-gen-go-msgclone


Added the blog about how meditation help the developer by Parmesh Bhatt

Closes issue #817
Changes proposed
I have added the article related to how meditation helps the developer because meditation is very important for the developer to think logically.
Please review it and If it is fine then please merge it to the main branch.
Check List (Check all the applicable boxes)

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

hey pls resolve the conflicts in your branch!

I have resolved the conflict.

Resolve this error--

You can add a new image for new blog 🙂


Implement timeout behavior in readByte / readPacket

This PR addresses issue #87, ran overnight publishing a messages at about 1Hz. Still running without issue this morning after > 50000 messages published and > 18 hours of runtime. I think it's ready to merge.

Thanks!


Support for one model per endpoint approach

Hey, I've been wondering what the next big implementation we need to breed here inside @talkdai. After a quick chat with @avelino, we agreed that we need to start working on allowing users to use multiple models in the same deployment, making it less resource-expensive to have multiple LLMs and prompts.
This approach is quite simple, we need to support any LLM class that a user supplies to us through the .toml file and allow the user to choose the URL path for that model and also the prompt it should be using.
A quick draft of this new session in the .toml file looks like this:
[multimodels]
[[endpoint]]
endpoint = "/model1"
class = "dialog-lib.models.Model1"
prompt = "You are a wonderful bot called Justin."

[[endpoint]]
endpoint = "/default"
class = "dialog-lib.models.Model2"
prompt = "You are a nice bot called Mike."

The modification on dialog would be simple, on the loading of the project, our system should iterate through the toml endpoints and get all of the settings, setting up routers using the settings passed.

https://stackoverflow.com/questions/76635770/how-to-test-fastapi-application-without-sharing-the-same-application-between-tes

@avelino you are right! i missed that part


Missing information about how to add publish item

I just followed the instruction in order to make a installer but after below paragraph I found it not completed:
"rom the Custom Actions window, select Install > Add Custom Action."
below this step looking forward Publish Items from App.WindowsService (Active).
How we can find this file while we or system do not create it before!.

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

ID: e044209a-0802-07c0-7518-208967a3ef02
Version Independent ID: 83c4d805-1394-90b7-6def-cf809c33ae22
Content: Create a Windows Service installer - .NET
Content Source: docs/core/extensions/windows-service-with-installer.md
Product: dotnet-fundamentals
GitHub Login: @IEvangelist
Microsoft Alias: dapine

You must have missed the section that calls out that this tutorial is a continuation of a previous tutorial that creates the project in question. I'll make that clearer, thanks.

Ah, ok! That is very helpful, I'll be sure to include this in the updates. Thank you.


Refactor DOE Energy Burden and COI to use YAML

Closes #1518

LGTM! 🍏
We only need to incorporate @lucasmbrown-usds's changes and then we can do another review.

@mattbowen-usds just remember to PR this against the narwhal release and not main.

@esfoobar-usds thanks for the reminder! updated the base to merge against!


added missing tls attribute to traefik dashboard access

cant reach traefik dashboard without it
as previous discussed at Discord topic here

Thank you for the PR!


raise ImproperlyConfigured( django.core.exceptions.ImproperlyConfigured: "^upload\.(?P<format>[a-z0-9]+)/?\.(?P<format>[a-z0-9]+)/?$" is not a valid regular expression: redefinition of group name 'format' as group 2; was group 1 at position 38

Found a bug? Please fill out the sections below.
Issue Summary
A summary of the issue.
Steps to Reproduce
It's essential that you provide enough information for someone else to replicate the problem you're seeing. Simply describing something that's broken on your current project is not enough!

(for example) Form the catalogue app with ./manage.py oscar_fork_app catalogue myproject/
Edit models.py as follows...
...

Any other relevant information. For example, why do you consider this a bug and what did you expect to happen instead?
Technical details

Python version: Run python --version.
Django version: Look in your requirements.txt, or run pip show django | grep Version.
Oscar version: Look in your requirements.txt, or run pip show django-oscar | grep Version.

django.core.exceptions.ImproperlyConfigured: "^upload.(?P[a-z0-9]+)/?.(?P[a-z0-9]+)/?$" is not a valid regular expression: redefinition of group name 'format' as group 2; was group 1 at position 38
solution is
#urlpatterns = format_suffix_patterns(urlpatterns)
but for me it is not working.
Issue is :-  when i am using the viewsets and router.py in django.  To connect router and viewsets
we use the path
path('api/v1/',include(router.urls))
when i am using above path the error is coming

Hi there. We use Github only for managing bugs and feature requests, and not for support. We recommend that you ask for help on Stack Overflow using the django-oscar tag, or joining our slack workspace and asking a question there. Thanks.


Suggestion: Option to save backup files next to FM files

I've just tried out AngelLoader v1.4, and noticed that after setting the backup path in the options, I can’t unset it. Also, as I can see, AngelLoader can load backup files in the FM archives (saved by fmsel).
Would it be possible to allow the user to save the backup there, next to the FM files, as well?

You're right, the backup path being required is sort of weird and is a holdover from when all the other fields used to be required too. It's not really necessary, I would just have to add checks and a warning box if no backup path is set.
As for allowing backups next to FMs, the reasons I didn't do that are:

I wanted to leave other loaders' save backups alone and not overwrite them, just in case.
Because FMSel and NDL both require separate FM archive folders per-game, there's only ever one location where backups go, but AL allows multiple archive dirs, and so allowing save backups in any or all of them sounded like a mess waiting to happen.
If you import saves from DarkLoader, AL will create a "DarkLoader" subdirectory in the backup directory where it will copy DL's saves. That's so if you uninstall the copy of Thief where DarkLoader put its "allsaves" directory, AL will still be able to use your DL saves. Putting that in one of the FM archive dirs also sounded like a mess waiting to happen.

You're right that AL does in fact automatically use your old save backups if no newer ones exist, in order to provide an "it just works" experience to the user coming from another loader. But the assumption there is that there will only ever be one archive folder per game if you're coming from one of the other NewDark-compatible loaders (because they all require that), so we can be virtually certain we're using the right backup file (because there should only ever be one). But if we allow backup files in the archive dirs, now we have to decide which one to put them in, and we have the potential for there to be multiple backup files for the same FM. I'm a little uneasy about that. I like the "liberal in what you accept, conservative in what you send" approach where we leave things cleaner than they were before. I guess I could say "you have to have only one FM archive dir defined" but that sounds like a crappy hack. I'm not sure.

The reason I brought this up is because this reminded me of RetroArch, where you have the ability to specify a path for the save files or let them be created next to the ROM file currently loaded. In this case, I don’t have an “archive path” set for where the ROMs are; RA checks only the path of the ROM file in question (as far as I know). So, the potential issue with multiple backup files in AL could be solved if it checks only a single archive file, maybe?
Is there any difference between the format/structure between fmsel’s and AL’s backups? If they are different, it makes sense not to overwrite the ones coming from fmsel, indeed. (When I originally checked the size of the two versions, they seemed identical in the file browser I’m using (e.g. 11M), but looking inside those zip files now, I can see that some of them contain startmis.sav when backed up from AL, but not from fmsel. For other FMs, there’s no startmis.sav in neither cases.)
Anyway, even if there has to be a separate folder for the backups, it’s not a big deal. I still like AngelLoader a lot (running on Manjaro Linux through Wine) and I appreciate your work. :)

Whenever AL needs to find an archive file, it just searches through all the archive folders until it finds one whose name matches and then just uses that. It's possible - though probably unlikely in practice? - for there to be duplicate FMs archives with the same name if there are multiple archive folders. AL has no way to know one from another if that's the case, it just uses the first one it finds. But yeah, I guess it could just do the archive lookup and use the folder of the first one it finds and be right 99% of the time.
AL uses the same backup format as FMSel. The presence of startmis.sav in AL's backups is an oversight, I didn't realize FMSel excluded that one. I can't find any information about that file at all on TTLG - only two mentions and neither sheds any light on it. But from the name I would assume it's a "start-of-mission" save, except it doesn't seem to show up anywhere in-game and doesn't seem to be used(?). I believe it gets created when you start playing an FM. FMSel is made by the same people who made NewDark so they must know what the file does, and if they've chosen to exclude it from backups then that must mean it's unimportant and not required in any way. They probably excluded it to keep the backup files tidy. I'll do the same.
Also, you're running AngelLoader on Linux? I'm amazed it works! We tried that during beta testing and it wouldn't even show the window properly. Wine .NET support must have improved since a year ago?

Also, you're running AngelLoader on Linux? I'm amazed it works! We tried that during beta testing and it wouldn't even show the window properly. Wine .NET support must have improved since a year ago?

Yes. :) I’ve been playing the first three Thief games for 7 years exclusively under Linux. .NET support has been a hit and miss from my experience as well, which is the main reason I’ve been sticking to using FmSel. (I heard about another FM loader also based on .NET a while ago, but I don’t remember what it was.)
Anyway, there are two ways of running .NET applications through Wine:

Through Mono, the open source implementation of the .NET framework for Linux.
With the official libraries from Microsoft (installed through winetricks, I assume the package dotnet472 is what’s needed here).

I’ve only tried AL with Mono so far, with Thief Gold and Thief 2. There are minor visual glitches with the tooltips and, in certain scenarios, the program even crashes (like selecting text in the FM README and right clicking on it), but other than that, it’s very usable.
Recently, I realised that I can install .NET through winetricks as well (which I couldn’t do in the past), and I believe it’s entirely possible that the glitches mentioned above will go away this way. (At least this is what I had to do to make Open Rails, a free .NET-based game, fully playable.)

Oh wow, I thought a program had to be compiled specifically for Mono. I had no idea you could just run it like that!
On that topic, I could make AL properly cross-platform by using .NET Core, except for two showstopping issues: Windows Forms (the UI it uses) doesn't exist on Linux, and the Microsoft RichEdit control (used for displaying readmes, which includes .rtf files) doesn't exist on Linux. For the first issue, Avalonia looks promising (but it's still in beta) and for the second... well, that's tougher. I might have to implement my own .rtf parser, and the fact that companies license those for hundreds of dollars should tell you something about that :) Still, I'd like to do it one day, challenging though it may be. It would really set AL free of Microsoft's tyranny.

I'm not knowledgable in .NET programming, but from my experience, you can run .NET applications through Mono with and without Wine. Without Wine—running mono AngelLoader.exe—immediately throws me an unhandled exception and that’s it. So, I guess something else needs to be done for that to work.
I know Jazz 2 Resurrection has two .exe binaries, each of which can be run in both Windows and Linux Mono natively. I don’t know how it works, but in case you’re interested, feel free to take a look at that.
I don’t know how much work it takes, but if you can make any Linux-specific adjustments (now matter how small they are) to make it run better for penguin gamers, like me, I’m sure it it will be very appreciated.

I'm wanting to set up Linux and just do a bit of testing to see if I can smooth things out. Would you mind telling me about your setup? What distro, wine and mono version and how exactly you installed them? I'm afraid I constantly run into a brickwall trying to install things (wine and .net at least) in Linux. Always with the "unmet dependency" this and the "incomprehensible error screw you" that :( :( and the site just says "install the unmet dependencies then bro, unless you can't in which case install some other thing unless you can't, and then oh well I guess you're stuck bro" :(
Just want to get it set up so I can be of assistance...

Would you mind telling me about your setup? What distro, wine and mono version and how exactly you installed them?

Sure. I’m running Manjaro Linux (64 bit edition). Originally, I installed the KDE Plasma edition, which I still have and use it daily (although it’s heavily customised). I recommend either that or the XFCE edition (somewhat more lightweight but still very usable), both of which can be downloaded from here.
As for Wine and Mono, I have the packages wine and wine-mono installed. You can get them in the graphical application for managing packages (Octopi or Pamac), or in the terminal running the following:
sudo pacman wine wine-mono

Once it’s all installed, navigate to AL’s directory and run wine AngelLoader.exe in the terminal.

Always with the "unmet dependency" this and the "incomprehensible error screw you" that :( :( and the site just says "install the unmet dependencies then bro, unless you can't in which case install some other thing unless you can't, and then oh well I guess you're stuck bro" :(

Do you mean the website or GitHub page of Lutris, by chance? If you mean this page specifically, first of all, you can skip all of that if you use one of the methods I described above, because that automatically grabs all the required dependencies. You don’t even need Lutris, only if you want some convenience features not provided by Wine (like per game configuration, keeping multiple Wine versions with some hacks etc.), but even then, if you have wine and wine-mono installed  through the package manager, Wine versions installed through Lutris should work as well.
I hope that helps.

Thanks for the detailed answer. I'll get that setup going and see how I get on.

I'm getting a glitched and hardlocked main window when I start AngelLoader. The Initial Settings window works fine, but the main one is half-drawn and doesn't respond to closing.  It's running through Wine and I installed wine-mono too. I'm running in a VirtualBox VM. I dunno?

I also have various minor glitches (like tooltips or the context menu disappearing), but I’ve never had hardlocked or unresponsive windows in AL; only crashes when I try to highlight something in the FM readme, or sometimes when fiddling about in the right sidebar. Other than that, AL 1.4 and 1.4.1 are usable here.
I’m not sure if running it in VirtualBox is the cause, but it’s not impossible either. If you have a spare USB drive, you could try turning it into a LiveUSB, and see if it makes a difference. You can even install wine inside it for testing until you reboot. (I don't know how much RAM this needs though.)
If you do get better results in a live session, then it might be worth considering having a dualboot system, where you install Linux on a separate partition while keeping your existing Windows setup on another. I know this is not something everyone would be willing to do, but when a VM is not enough and you’re seriously thinking about working with Linux, this is the way to go.
There’s yet another option I can think of—which you may not like—which is porting AL to Qt/C++ or PyQt. The advantages include identical behaviour across all platforms whenever possible, great visual integration (so it actually looks and feels like a native app), and great performance. The disadvantage, of course, is that you need to become familiar with another programming language and rewrite the program from scratch. Again, I understand if you find that it’s too much work and you don’t want to do this—at least not alone—although if you want to prioritise cross-platform support, this is most likely the best move.

Actually I've been thinking about a native-code rewrite for some time now. Not only for cross-platform support, but also because I don't like where .NET is going - .NET Core 3 (and soon, .NET 5) is the future, but it's between 2x to 10x slower all-around (the main window init takes ~450ms on Core 3 vs. ~45ms on Framework 4.7.2, for example! Find-new-FMs takes twice as long, etc. See #43 ) and although .NET Framework 4.8 is "still supported", it's maintenance-only and I'm definitely on a dead-end track with it. I need to learn a new language, and I've been contemplating C/C++ or Rust. The former being more directly compatible with libraries (UI etc.), the latter probably being nicer/saner to use even with the borrow checker friction.
I actually do like the idea of a rewrite, it's just that I've never dealt with "unsafe" memory before. No experience with managing allocation/deallocation/pointers etc. manually. I'm scared of it really, is the thing. People say that memory bugs are rampant and hard to find etc. Don't know how true that really is. There are people like Casey Muratori who will tell you it's actually not very hard, but he's making games where all data is known and controlled and he can grab one huge block of memory at startup and never worry about it again. AngelLoader, being more or less a "productivity app" if you will, is the polar opposite - it needs to deal with tons of different formats of other peoples' data that it has little to no idea about, and it practically does nothing BUT string processing, which in terms of memory is about as dynamic as you can get.
It's true AngelLoader_Stub is written in C++ and the world didn't end, so that's a start. But that file is really really small and even if there are memory leaks it doesn't matter because it runs for like 10 milliseconds and then exits. Anyway, I'm actually making some moves to get away from .NET and Windows, starting with writing an RTF-to-plaintext converter so I can remove the RichEdit dependency in FMScanner. After that, I can maybe start rewriting small portions of AngelLoader to get comfortable. I also just want to learn how to write the things I currently use other peoples' libraries for - RTF parsing, zip file structure reading, etc. I just like to really learn and know and be able to write things myself even if I "don't have to". First because it's fun and empowering, and also because you never know when relying on somebody else's code will leave you in a lurch all of a sudden (like .NET Core being disastrously slow).

I actually do like the idea of a rewrite, it's just that I've never dealt with "unsafe" memory before. No experience with managing allocation/deallocation/pointers etc. manually. I'm scared of it really, is the thing. People say that memory bugs are rampant and hard to find etc.

I’m not sure if it’s related (because I have only basic experience with C++), but I can tell you that Qt takes care of garbage collection automatically, so you don’t need to worry about memory not freed up once a task is done.

Closing this for now as it kind of wandered off and I guess the original question has been answered.


fix: parameters nuget icon

Please provide the issue number

Issue number: #270
Summary
Changes

Please provide a summary of what's being changed

This PR adds AWS Icon to the Parameters NuGet Package
User experience

Please share what the user experience looks like before and after this change

Checklist
Please leave checklist items unchecked if they do not apply to your change.

[x] Meets tenets criteria
[x] I have performed a self-review of this change
[x] Changes have been tested
[x] Changes are documented
[x] PR title follows conventional commit semantics

Is this a breaking change?
RFC issue number:
Checklist:

[ ] Migration process documented
[ ] Implement warnings (if it can live side by side)

Acknowledgment
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.

Codecov Report
Patch and project coverage have no change.

Comparison is base (598729c) 62.58% compared to head (0cb63ea) 62.58%.

Additional details and impacted files
@@           Coverage Diff            @@
##           develop     #271   +/-   ##
========================================
  Coverage    62.58%   62.58%
========================================
  Files           61       61
  Lines         2627     2627
========================================
  Hits          1644     1644
  Misses         983      983

Flag
Coverage Δ

unittests
62.58% <ø> (ø)

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


npm i<EMAIL_ADDRESS>fails: "can't cd to rust/benchpress-rs"

Hello,
It appears I'm unable to install benchpressjs.  I first encountered this issue when attempting to upgrade my NodeBB installation, but I've since found that the issue exists even in a brand-new, stand-alone project.
Steps to reproduce:

mkdir bptest && cd bptest
npm init -y
npm i<EMAIL_ADDRESS>(I've also tested npm i benchpressjs, which produces the same error)

This results in the following error:
><EMAIL_ADDRESS>install /root/bptest/node_modules/benchpressjs
> cd rust/benchpress-rs && npm install

sh: 1: cd: can't cd to rust/benchpress-rs
npm WARN<EMAIL_ADDRESS>No description
npm WARN<EMAIL_ADDRESS>No repository field.

npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR<EMAIL_ADDRESS>install: `cd rust/benchpress-rs && npm install`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2018-11-26T01_06_51_092Z-debug.log

Here are the contents of 2018-11-26T01_06_51_092Z-debug.log.

System information:

Ubuntu 18.04 LTS 4.15.0-39-generic
Node v10.13.0
NPM 6.4.1

I've also tested the command npm i benchpressjs.  Same error.

I do see several folders when following your instructions:
rust:
benchpress-rs

rust/benchpress-rs:
appveyor.yml  benchpress_sys  lib  LICENSE  native  package.json  pre-built  README.md  scripts

rust/benchpress-rs/benchpress_sys:
Cargo.lock  Cargo.toml  src

rust/benchpress-rs/benchpress_sys/src:
bin  generator.rs  instruction.rs  lexer.rs  lib.rs  parser.rs  paths.rs  pre_fixer.rs  templates.rs  token.rs

rust/benchpress-rs/benchpress_sys/src/bin:
bpc.rs

rust/benchpress-rs/lib:
index.js

rust/benchpress-rs/native:
build.rs  Cargo.lock  Cargo.toml  src

rust/benchpress-rs/native/src:
lib.rs

rust/benchpress-rs/pre-built:
do_not_delete  linux_48.node  linux_57.node  linux_59.node  linux_64.node  win32_48.node  win32_57.node  win32_59.node  win32_64.node

rust/benchpress-rs/scripts:
base.appveyor.yml  base.travis.yml  build-configs.js  ci  copy-binary.js  release.js

rust/benchpress-rs/scripts/ci:
add-binary.ps1  add-binary.sh  before.bat  before.sh  push-binaries.ps1  push-binaries.sh

I'm not sure what would be causing the "can't cd" error.

I tried running the installation commands as my normal user account (no sudo and not as root), and it works.  I'm not sure what the issue is but it may be something to do with npm rather than bpjs.  I'm still not sure why it wouldn't work as root.

Do you have your $CDPATH env var set? According to this answer on SO it can cause issues.

$CDPATH appears to be unset both for my user and root accounts.  As either user, echo $CDPATH doesn't print anything to the console.

What's the output of this command? npm config ls -l | grep shell

As ralph and root the output is the same:
script-shell = null
shell = "/usr/bin/zsh"

Hmmm. zsh. It should work fine, but can you try npm config set script-shell bash and trying again?
To undo that command use npm config delete script-shell

Something must be horribly wrong as root on my machine because after updating the npm config, I get the error
/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:205
  if (npm.config.get('json')) {
                 ^

TypeError: Cannot read property 'get' of undefined

I'll have a look at what might be causing the issues between my node installation and root.

Ok thanks for trying. I'm gonna close this issue.


refactor language_level_df

Remove the hardcoded table from glottolog. We should decouple this because glottolog evolves, and we don't want to be updating this every single time glottolog releases a new version. The package here has a function to easily load_glottolog() so we can make users use that e.g.

Okay, I see.
Before we move on, do you want language_level_df() to continue living here in rgrambank or move over to rcldf? The function is written so that if there's a ValueTable and a LanguageTable with the ID and Language_ID/Language_level_ID() it'll work, regardless if it's grambank or some other cldf-dataset with ValueTable.

AFAIKT, the function also relies on Language_ID in ValueTable being Glottocodes. This is an assumption that's not generally true for CLDF datasets, so I'd say the function cannot move to rcldf.

AFAIKT, the function also relies on Language_ID in ValueTable being Glottocodes. This is an assumption that's not generally true for CLDF datasets, so I'd say the function cannot move to rcldf.

Currently, it assumes that Language_ID in ValueTable matches Glottocode in LanguageTable. This would not be true for other cldf-datasets. If @SimonGreenhill would be happy to support moving language_level_df() to rcldf, I'll rejig that. i'll probably rejig that anyway, but it'd be good to know if it'd stay here or move.

@HedvigS the other reason why this function shouldn't move to rcldf is that there is no notion of "Language_level_ID" in CLDF. rcldf should be concerned only with columns that are specified in https://cldf.clld.org/v1.0/terms.html
(And while Language_level_ID can be considered a "languageReference" property, the semantics of this relation are not fixed in CLDF if the reference appears in a non-standard place. So a "languageReference" column in ValueTable relates the value to a language it applies to, but a "languagereference" in LanguageTable may be different things, the direct parent, or the top-level family, ...)

@HedvigS the other reason why this function shouldn't move to rcldf is that there is no notion of "Language_level_ID" in CLDF. rcldf should be concerned only with columns that are specified in https://cldf.clld.org/v1.0/terms.html (And while Language_level_ID can be considered a "languageReference" property, the semantics of this relation are not fixed in CLDF if the reference appears in a non-standard place. So a "languageReference" column in ValueTable relates the value to a language it applies to, but a "languagereference" in LanguageTable may be different things, the direct parent, or the top-level family, ...)

Yes, you're right. I was thinking a bit about this last night. I was thinking that the function could be modified so if the LanguageTable of a given CLDF-dataset doesn't contain a Language_level_ID type column, it could first match ID to Glottocode in that LanguageTable and then use another reference table to get Language_level_ID for each Glottocode, for example just glottolog-cldf. That's something I think would improve the function, whether it lives in rgrambank or rcldf. Regardless of where it lives, I know that I in future would appreciate such a function. If @SimonGreenhill decides that it continues to live in rgrambank, that's okay I guess I'll just use rgrambank functions on non-grambank cldf-data. I use functions from psychology and biology on linguistics data already, so even if it's a bit funny it'll be okay :)

done in #22


Error building

go get github.com/kamilchm/go2nix gives:
$GOPATH/src/github.com/kamilchm/go2nix/nix.go:109: undefined: Asset
edit: seems to build fine with nix though. as in I add pkgs.go2nix to environment.systemPackages

Unfortunately programs that use go-bindata to embed assets can't be build with go get :/
What you can do is:
$ go get -d github.com/kamilchm/go2nix
$ pushd $GOPATH/src/github.com/kamilchm/go2nix
$ go generate
$ go build
$ cp $GOPATH/src/github.com/kamilchm/go2nix/go2nix $GOPATH/bin
$ popd

This should work the same as go get for regular packages.

After some thoughts, I think I can check in generated assets.go to make installation easier.


ORC-865: Bump opencsv from 3.9 to 5.5.1

What changes were proposed in this pull request?
This PR aims to bump opencsv from 3.9 to 5.5.1.
Why are the changes needed?
To bring the latest improvements and bug fixes:

http://opencsv.sourceforge.net/project-info.html

How was this patch tested?
Pass the CIs with the existing TestCsvReader suite.
Closes #771

All test passed. Could you review this, please, @wgtmac , @pgaref , @williamhyun ?

Thank you, @pgaref !


python3Packages.latex2mathml: 3.75.5 -> 3.76.0

Description of changes
https://github.com/roniemartinez/latex2mathml/compare/3.75.5...3.76.0
Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

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

12 packages built:

latex2mathml (python310Packages.latex2mathml)
latex2mathml.dist (python310Packages.latex2mathml.dist)
python310Packages.schemdraw
python310Packages.schemdraw.dist
python310Packages.ziamath
python310Packages.ziamath.dist
python311Packages.latex2mathml
python311Packages.latex2mathml.dist
python311Packages.schemdraw
python311Packages.schemdraw.dist
python311Packages.ziamath
python311Packages.ziamath.dist

setuptools is no longer required at runtime.

Ah yes, thanks.


New package: goreleaser.goreleaser-pro 1.19.0-pro

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.4 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Automated with GoReleaser
Microsoft Reviewers: codeflow:open?pullrequest=https://github.com/microsoft/winget-pkgs/pull/110873&drop=dogfoodAlpha

superseeded by #110900


Change docs outdated dependencies from 0.5 to the latest

I faced some troubles like in #431 and #446 while using With React Three Fiber guide because versions in docs are outdated.

Please change them to the latest.

Already PR'ed here https://github.com/theatre-js/website/pull/19


Fix DefaultMutableAttributeContainer behavior when updating attributes using both eager and lazy values

The DefaultMutableAttributeContainer class doesn't handle adding lazy and eager values for the same Attribute well.  The desired behavior should be "last update wins" regardless of which update used lazy vs. eager values.
The toString call which modifies the container class makes debugging particularly difficult.

This was spawned as a result of investigation into #19606.


Additional instances do not work?

Hi!
I've tried adding an additional gitlab instance, https://git.lysator.liu.se, that is not in the default list. No icon is showing on that website though.

You need to add one domain name per line, with no prefix or suffix (e.g.: write “git.lysator.liu.se”, not “https://git.lysator.liu.se/”, see the documentation.


Only copy result set to S3

Currently we are copying the whole working directory - including all intermediate data - to S3. This results in increased storage costs, and is unnecessary. We should only copy the final output to S3, ie. the contents of  $builddir/$format/$mode.

$format and $mode can come from the submit_datagen_job. This requires us to promote this parameters from passthrough args to args of the Python script itself.


What is the difference between the load and sync commands?

At the moment, it is unclear what is the exact difference between both commands. From a quick peek at the code it seems like load is more of a "only uploaded if the rule group does not exist under that namespace" while sync is more of a replace everything but tell me about it.
I'd be good to make clear how do we support each of the following use cases:

Create or update a namespace/group/rule only if it doesn't exist
Create or update a namespace/group/rule (regardless of its status)
Find the difference (at each of namespace/group/rules) between the input file and what already exists on the server. Then delete or create whatever is missing.

Load is meant to create the rules provided if they don’t exist. Sync takes a set of rules files and ensures that the state of what is running in the ruler matches those files exactly

This needs to be documented. Neither rules sync nor rules diff is mentioned in README.md


WiFiManager parameters can be wrapped up

InjectManagerParameters method can be less dependent directly on WiFiManager.
First of all parameters can be changed to be stored as shared pointers.
Second - WiFiManagerParameter can be constructed via factorization or internally managed and created by method like addParameter.

Already covered by
https://github.com/cziter15/ksIotFrameworkLib/issues/11


Feature request : Update Firware

Hey @tomasf,
Thanks for the amazing software.
When I start Microprint it tells me that my Firmware is untested (probably because I have an old firmware and haven't been able to launch the M3D software in weeks).
How hard would it be for you to implement an update firmware feature?
Thanks

I should specify that so far I didn't have any problems printing. But I would rather use the latest firmware.

Firmware updating is definitely on the roadmap. It's sort of the last remaining thing you need M3D's software for. I haven't attempted it yet, mostly because it's a somewhat convoluted process of dropping back into bootloader mode for a while. There's also the question of how to obtain the actual firmware data. It's embedded in the M3D program as an MSIL manifest resource. Extracting it programmatically from the M3D software is certainly possible, but a bit tricky, and would require that you at least download M3D's software first. Embedding it into MicroPrint would be easier, but that's a bit of a violation of their copyright. The most awesome way for users would be if MicroPrint downloaded M3D's software itself and did all the extraction work, but that's a big thing to implement, obviously. :-)

Yeah I figured getting the Firmware would actually be the hard part. I think the M3D has a good community (and not thanks to M3D) and while I understand it's borderline "illegal" to extract the Firmware from their app if you give us a way to import it in the M3D I'm sure someone will extract it and make it available to the community.


[WFLY-7442] Expose UndertowListener via the capability

@stuartwdouglas if this looks good to you then i'll jump through the JBEAP hoops.

This doesn't expose UndertowService via capability but adds alias Listener to service.
I don't see what good is this for?

@ctomc Oops! The commit message/ PR title were wrong; since fixed.
In his WFLY-7442 work Stuart changed the value type provided by ListenerService from itself to the new UndertowListener class. But he didn't update the RuntimeCapability to reflect that. That's the main point of this PR. Plus the service was never being exposed using the ServiceName the capability indicates.

Windows Build 5843 outcome was FAILURE using a merge of c18cce5c15ab91333ca3defbbf6d945c97d0baa3
Summary: Tests failed: 1 (1 new), passed: 3551, ignored: 172 Build time: 01:25:51
Failed tests
org.jboss.as.test.integration.domain.management.cli.DomainDeploymentOverlayTestCase.testMultipleLinks: org.jboss.as.cli.CommandLineException: The controller is not available at [::1]:9999
	at org.jboss.as.protocol.ProtocolConnectionUtils.connectSync(ProtocolConnectionUtils.java:131)
	at org.jboss.as.protocol.ProtocolConnectionManager$EstablishingConnection.connect(ProtocolConnectionManager.java:259)
	at org.jboss.as.protocol.ProtocolConnectionManager.connect(ProtocolConnectionManager.java:70)
	at org.jboss.as.protocol.mgmt.ManagementClientChannelStrategy$Establishing.getChannel(ManagementClientChannelStrategy.java:162)
	at org.jboss.as.cli.impl.CLIModelControllerClient.getOrCreateChannel(CLIModelControllerClient.java:180)
	at org.jboss.as.cli.impl.CLIModelControllerClient$3.getChannel(CLIModelControllerClient.java:132)
	at org.jboss.as.protocol.mgmt.ManagementChannelHandler.executeRequest(ManagementChannelHandler.java:135)
	at org.jboss.as.protocol.mgmt.ManagementChannelHandler.executeRequest(ManagementChannelHandler.java:110)
	at org.jboss.as.controller.client.impl.AbstractModelControllerClient.executeRequest(AbstractModelControllerClient.java:263)
	at org.jboss.as.controller.client.impl.AbstractModelControllerClient.execute(AbstractModelControllerClient.java:168)
	at org.jboss.as.controller.client.impl.AbstractModelControllerClient.executeForResult(AbstractModelControllerClient.java:147)
	at org.jboss.as.controller.client.impl.AbstractModelControllerClient.execute(AbstractModelControllerClient.java:75)
	at org.jboss.as.cli.impl.CommandContextImpl.tryConnection(CommandContextImpl.java:1296)
	at org.jboss.as.cli.impl.CommandContextImpl.connectController(CommandContextImpl.java:1142)
	at org.jboss.as.cli.impl.CommandContextImpl.connectController(CommandContextImpl.java:1181)
	at org.jboss.as.test.integration.domain.management.cli.DomainDeploymentOverlayTestCase.setUp(DomainDeploymentOverlayTestCase.java:147)
------- Stdout: -------
The command is not available in the current context (e.g. required subsystems or connection to the controller might be unavailable).
The command is not available in the current context (e.g. required subsystems or connection to the controller might be unavailable).
The command is not available in the current context (e.g. required subsystems or connection to the controller might be unavailable).
The command is not available in the current context (e.g. required subsystems or connection to the controller might be unavailable).

retest this please


Fixed transformation of svg pane

There is an offset of 200 (pixels?) on svg pane, when visualizing more complex things. I have removed subtraction of magic constant and it seems it is working properly.
@brian-brazil please have a look at it. You can test it with these data:
  route:
    group_by: ['env', 'alertname']
    group_wait: 30s
    group_interval: 1m
    repeat_interval: 2h
    receiver: prometheus-alerts
    routes:
    - match_re:
        alertname: ^notifyd
      receiver: perl-E-alerts-prod
    - match_re:
        env: ".*-E"
      receiver: perl-E-alerts-prod
    - match_re:
        instance: ^rcentrala
      receiver: perl-E-alerts-prod
    - match_re:
        job: ^(kafka|zookeeper)$
      receiver: frontend-alerts
      continue: true #also continue matching after this match
    - match_re:
        alertname: ^NoBet2Hours$
      receiver: perl-E-alerts
      continue: true
    - match:
        job: projection
        env: prod
        alertname: ErrorLogged
      receiver: projection-errors
      continue: true
    - match:
        env: prod
      receiver: prometheus-alerts

Test can be done online at https://prometheus.io/webtools/alerting/routing-tree-editor/

What resolution are you doing this at? Can you provide a screenshot of what you're seeing? The current site appears fine to me, but i use a relatively large monitor, and I can't seem to compile and run the project locally.

I have "normal" resolution (fullhd). Have a look a these screen-shots.
Basic page view on fullscreen (firefox 52.8):

Just hitting F12 and selecting svg, transform part. You can see that given pane is behind other parts of page, like footer and so on:

I have manually edited second parameter as it would be generated after my pullrequest and you can see that there are now visible two parts which was hidden before.

Signed. Thx for simple command.


allowJs breaks the shebang

TypeScript Version:  2.1.6
Code
#!/usr/bin/env gjs
class Doo {}
class Scooby extends Doo {}

Expected behavior:
it should keep the shebang on the first line, and it does. Until I add javascript files, set allowJs, and target ES5. Then, it inserts the extends polyfill before the shebang line. If I change the filetype of my *.js to *.ts, it works correctly again.
Actual behavior:
var __extends = (this && this.__extends) || function (d, b) {
    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
    function __() { this.constructor = d; }
    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
#!/usr/bin/env gjs
var Frodo = (function () {
    function Frodo() {
    }
    return Frodo;
}());
var Bilbo = (function (_super) {
    __extends(Bilbo, _super);
    function Bilbo() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    return Bilbo;
}(Frodo));

Can you check whether you're experiencing the same problem with typescript@next? npm install -g typescript@next to install it.

@darkoverlordofdata I can't repo the issue. I am trying to repo using setup below and typescript@next
With following javascript
#!/usr/bin/env gjs
class Doo {}
class Scooby extends Doo {}

and tsconfig.json
{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es5",
        "noImplicitAny": false,
        "sourceMap": false,
        "allowJs": true,
        "outDir": "wwwroot"
    }
}

the output is as expected
#!/usr/bin/env gjs
var __extends = (this && this.__extends) || (function () {
    var extendStatics = Object.setPrototypeOf ||
        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
var Doo = (function () {
    function Doo() {
    }
    return Doo;
}());
var Scooby = (function (_super) {
    __extends(Scooby, _super);
    function Scooby() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    return Scooby;
}(Doo));

Could you give typescript@next a try? I will close this issue for now. Please feel free to reopen if it is persist.

Have you tried with --outfile

@mhegazy not yet....hmmm this may change the behavior

After investigate this issue, I can't still not repo using just allowJS option.
However, one thing, as pointed out by @mhegazy, using outFile trigger this problem. I am sure if this is what the original problem is @darkoverlordofdata let me know you also use outFile option or not.
Problem
Using outFile causes shebang and prologue directives to be emitted after helper
#!/usr/bin/env gjs
"use strict"
class Doo {}
class Scooby extends Doo {}

var __extends = (this && this.__extends) || (function () {
    var extendStatics = Object.setPrototypeOf ||
        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
#!/usr/bin/env gjs                   -> // ERROR
"use strict";                             -> // ERROR
var Doo = (function () {
    function Doo() {
    }
    return Doo;
}());
var Scooby = (function (_super) {
    __extends(Scooby, _super);
    function Scooby() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    return Scooby;
}(Doo));
var x = 2000;
function foo() { }

Solution
We have to move how we emit both shebang and prologue directives to be before emit helper

Shebang
Emit the first shebang we encounter. To be clear If there are different shebang in the file, emitter will still just emit the first shebang.

Prologue directives
Emit "use strict" follow by other prologue directive. We will check if we have emit this string literal prologue directives before and will omit if that is the case. This is not applicable with custom prologue directive (such as "this" capturing)

Since upgrading to version 2.2.1, I'm no longer having an issue with this!


Feature Request: braces around selection

Another interesting feature would be to surround  a selection with {}, () or [] accordingly with the character pressed. So, when there is a selection, and {,( or [ is pressed, instead of replacing the selection by the char, enclose the selection in {},() or [] respectively.
Best,

Hi. Currently i am working on 2.0(consulo 2.0) branch and can't time for this issue. I will back to this isse, when i open 2.0 beta download
Thanks

Sure. Let me know if you need beta testers, btw. I am loving to use Consulo!

Same here. I have a full team working with it :)

Btw, this feature already exists. I found it later in the settings, so closing the issue :)


add Features in Tupleable: Two Records in one relation

Hi @agentm ,
I would like to ask your opinion about a feature I want to add.
I want to turn a haskell record type into a Relation while adding an record for Uniqueness Constraint. But I don't want to add the field in Haskell type. It will force me to hide some fields when using yesod-form.
What if I add a Generic Tupleable case that is ( RecordTypeA, RecordTypeB ) and turn it into one Relation with {fieldA1,FieldA2...,FieldB1, FieldB2,...)?
In that way, I can turn a tuple back into a value (RecordTypeA, RecordTypeB).
And get crud operation easily since fields in RecordTypeA can be set as Uniqueness Constraint.
Does that make sense for you?
About details:
(RecordType,RecordType) = Attributes are both type's fields combined.
( _ , _ ) = Two attributes. RecordType in a tuple will be turned into a ConstructedAtom type.

Oops. I guess I think too much.
A Custom Tupleable will suffice.
class A a where
  funA :: a -> Bool

instance A Int where
  funA = const True

instance (A a, A b) => A (a,b) where
  funA = const True

I think that this should be completely doable with a custom Tupleable instance.
This use-case reminds me of views. If you could point the yesod model to a projection view of the full relation, then you wouldn't need to go through these hoops.

 That's a more essential aspect: a projection view.
How about view update in project-m36? I've read about #233

Both view updates and isomorphic schemas are examples of bidirectional transformations.

So is it better that there is a bidirectional transformation of UpdateExpr and DeleteExpr between a projected view and the full relation?

I guess I need to re-read Isomorphic Schemas first.

So is my case related to the implementation of project/extend isomorphisms?

The potential for isomorphic schemas to solve your problem is there, but isomorphic schemas in Project:M36 do not (yet?) support projection slices because certain uniqueness constraints are required to be in place for the isomorphism to hold and I didn't implement the detection for the constraints.
I regard isomorphic schemas as an experimental feature because I haven't figured out precisely which use-cases they can best serve, but they make more mathematical sense than views.
Sorry- it looks like a custom Tupleable instance is your best option. Alternatively, you could consider adding a feature to the Tupleable typeclass which adds a projection (and sets some defaults for new tuples).

I am always attracted by that mathematical sense and so get distracted.  I can't help but thinking a type-level RelationType operation check.
I think, to hold a uniqueness constraint in a projected view, one have to provide extra fields that fits the original relvar's constraint when insert and update, and when delete make sure the user agree on dropping the fields that are not in the view.
Thanks for explanation and advice!

Yes, I get stuck on the math as well. I remind myself, however, that there are plenty of databases that have run off into the weeds based on some perceived premature optimization. Project:M36 strives to be different, even if that means some commonly expected functionality can never be implemented due to logical conflicts.


bump express version to address CVE-2024-29041

This PR is primarily to address a high severity vulnerability:

CVE-2024-29041 - Express.js Open Redirect in malformed URLs

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

Project coverage is 94.43%.  Consider uploading reports for the commit 38e4d6f to get more accurate results

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #122   +/-   ##
=======================================
  Coverage   94.43%   94.43%
=======================================
  Files          25       25
  Lines        2247     2247
  Branches      299      299
=======================================
  Hits         2122     2122
  Misses        124      124
  Partials        1        1

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


ISPN-15069 More flexbile SNI from the client

https://issues.redhat.com/browse/ISPN-15069
This also enables TLS hostname validation by default according to RFC 2818, which also allows us to test it.

@tristantarrant I think it needs to be rebased on top of main. The native tests are failing.

Good afternoon.  I know you are all busy, but just want to check if there is any plan to continue moving forward with this pull request.  Thanks.

@tbmoomau yes, after the holiday season.

Added @domiborges change and rebased. This is now ready

Failures are unrelated

Thanks @tristantarrant


Snapshot Creation Failed

Name:         snapcontent-b990f54d-704a-48f5-be9c-3bc52bc13683
Namespace:
Labels:       <none>
Annotations:  <none>
API Version:  snapshot.storage.k8s.io/v1
Kind:         VolumeSnapshotContent
Metadata:
  Creation Timestamp:  2024-04-01T01:33:27Z
  Finalizers:
    snapshot.storage.kubernetes.io/volumesnapshotcontent-bound-protection
  Generation:  1
  Managed Fields:
    API Version:  snapshot.storage.k8s.io/v1
    Fields Type:  FieldsV1
    fieldsV1:
      f:metadata:
        f:finalizers:
          .:
          v:"snapshot.storage.kubernetes.io/volumesnapshotcontent-bound-protection":
      f:spec:
        .:
        f:deletionPolicy:
        f:driver:
        f:source:
          .:
          f:volumeHandle:
        f:sourceVolumeMode:
        f:volumeSnapshotClassName:
        f:volumeSnapshotRef:
    Manager:         snapshot-controller
    Operation:       Update
    Time:            2024-04-01T01:33:27Z
  Resource Version:  312270323
  UID:               06712699-ddf2-4a67-b4de-9dfdde5714e0
Spec:
  Deletion Policy:  Delete
  Driver:           csi.san.synology.com
  Source:
    Volume Handle:             1007046f-c89d-45e6-9c4b-7d0baec58c25
  Source Volume Mode:          Filesystem
  Volume Snapshot Class Name:  synology-csi-delete
  Volume Snapshot Ref:
    API Version:       snapshot.storage.k8s.io/v1
    Kind:              VolumeSnapshot
    Name:              test
    Namespace:         kube-system
    Resource Version:  312270319
    UID:               b990f54d-704a-48f5-be9c-3bc52bc13683
Events:
  Type     Reason                  Age               From                                  Message
  ----     ------                  ----              ----                                  -------
  Warning  SnapshotCreationFailed  8s (x5 over 21s)  csi-snapshotter csi.san.synology.com  Failed to create snapshot: failed to add VolumeSnapshotBeingCreated annotation on the content snapcontent-b990f54d-704a-48f5-be9c-3bc52bc13683: "snapshot controller failed to update snapcontent-b990f54d-704a-48f5-be9c-3bc52bc13683 on API server: volumesnapshotcontents.snapshot.storage.k8s.io \"snapcontent-b990f54d-704a-48f5-be9c-3bc52bc13683\" is forbidden: User \"system:serviceaccount:system:synology-csi-snapshotter\" cannot patch resource \"volumesnapshotcontents\" in API group \"snapshot.storage.k8s.io\" at the cluster scope"

ClusterRole synology-csi-snapshotter need resources volumesnapshotcontents verbs: patch

The CSI snapshotter is installed separately from the synology-csi. In the README it says:

Prerequisites

...
Optional: CSI Snapshotter installed in the cluster.

So you'll need to update the rbac of the csi snapshotter to allow synology-csi to access it, it's not an issue with this project.
If you've installed the kubernetes-csi/external-snapshotter as I did then you'll need to update the ClusterRole and ClusterRoleBinding like this:
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  # rename if there are conflicts
  name: snapshot-controller-runner
rules:
  - apiGroups: [""]
    resources: ["persistentvolumes"]
    verbs: ["get", "list", "watch"]
  - apiGroups: [""]
    resources: ["persistentvolumeclaims"]
    verbs: ["get", "list", "watch", "update"]
  - apiGroups: ["storage.k8s.io"]
    resources: ["storageclasses"]
    verbs: ["get", "list", "watch"]
  - apiGroups: [""]
    resources: ["events"]
    verbs: ["list", "watch", "create", "update", "patch"]
  - apiGroups: ["snapshot.storage.k8s.io"]
    resources: ["volumesnapshotclasses"]
    verbs: ["get", "list", "watch"]
  - apiGroups: ["snapshot.storage.k8s.io"]
    resources: ["volumesnapshotcontents"]
    verbs: ["create", "get", "list", "watch", "update", "delete", "patch"]
  - apiGroups: ["snapshot.storage.k8s.io"]
    resources: ["volumesnapshotcontents/status"]
    verbs: ["update", "patch"]
  - apiGroups: ["snapshot.storage.k8s.io"]
    resources: ["volumesnapshots"]
    verbs: ["get", "list", "watch", "update"]
  - apiGroups: ["snapshot.storage.k8s.io"]
    resources: ["volumesnapshots/status"]
    verbs: ["update"]

---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: snapshot-controller-role
subjects:
  - kind: ServiceAccount
    name: snapshot-controller
    namespace: kube-system    # TODO: replace with the namespace you want for your controller, e.g. kube-system
  - kind: ServiceAccount
    name: synology-csi-snapshotter
    namespace: synology-csi
roleRef:
  kind: ClusterRole
  # change the name also here if the ClusterRole gets renamed
  name: snapshot-controller-runner
  apiGroup: rbac.authorization.k8s.io

I've been running into the same problem; #19 provides a fix.

Merged - thanks for the fix!


Update zendesk_ticket to latest SDK version - looking for custom_status_id column

Describe the solution you'd like
I am looking for custom_status_id column in the zendesk_ticket table.
Reference at: https://developer.zendesk.com/api-reference/ticketing/tickets/tickets/#show-ticket
Not sure if this will also require a new table "zendesk_ticket_statuses" (https://developer.zendesk.com/api-reference/ticketing/tickets/custom_ticket_statuses/) or just a hydrated column but I am looking for the "custom_status" of a given ticket. Thank you!
Using: zendesk@latest   - 0.8.0
$ steampipe -v
Steampipe v0.22.0

We're utilizing the github.com/nukosuke/go-zendesk Go package for data population across tables. However, this package currently lacks support for Custom Ticket Statuses.
I've submitted a pull request to include the necessary APIs for this feature.
You can find the PR here: https://github.com/nukosuke/go-zendesk/pull/310
Thank you!


WIP: Add support for database schema in PostgreSQL

Fixes #5152
Currently Gitea does not support using a database schema different from the default "public". With this PR, a schema different from the default can be specified in app.ini and during install.

Codecov Report

Merging #8819 into master will decrease coverage by 0.01%.
The diff coverage is 40%.

@@            Coverage Diff             @@
##           master    #8819      +/-   ##
==========================================
- Coverage   41.25%   41.23%   -0.02%
==========================================
  Files         543      543
  Lines       69766    69775       +9
==========================================
- Hits        28782    28775       -7
- Misses      37298    37310      +12
- Partials     3686     3690       +4

Impacted Files
Coverage Δ

modules/auth/user_form.go
42.85% <ø> (ø)
:arrow_up:

routers/install.go
0% <0%> (ø)
:arrow_up:

modules/setting/database.go
57.28% <100%> (+0.41%)
:arrow_up:

models/models.go
61.25% <50%> (-0.69%)
:arrow_down:

models/repo_indexer.go
66.54% <0%> (-3.64%)
:arrow_down:

modules/log/event.go
64.61% <0%> (-1.03%)
:arrow_down:

models/unit.go
67.56% <0%> (+5.4%)
:arrow_up:

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 a966a02...d07281d. Read the comment docs.

Does this also update x.Exec queries?

Does this also update x.Exec queries?

I've installed Gitea from scratch in a database with no permissions on public for the gitea user and no query failed on me -and there's plenty of those-, but I'll check tonight and document a few cases here.

I'm sorry, it turns out that certain operations are problematic. Specifically, those escaping the user table get badly escaped:
2019/11/04 18:49:28 .../xorm/session_raw.go:81:queryRows() [I] [SQL] SELECT * FROM "schema5152".""user"" INNER JOIN schema5152.issue_assignees ON assigne
e_id = "user".id WHERE (issue_assignees.issue_id = $1) []interface {}{1} - took: 375.802µs
2019/11/04 18:49:28 ...outers/repo/issue.go:581:NewIssuePost() [E] NewIssue: newIssue: pq: zero-length delimited identifier at or near """"

Other Exec() can be sorted out by running an ALTER USER SET search_path = schema_name, but this particular case is apparently not escaped correctly in xorm.
I should have tested thoroughly. 😞
I'm marking this as WIP.

Depends on xorm/xorm#1476

imho setting ALTER USER SET search_path defeats purpose of this as primary usecase for this is to be able to use same db for multiple instances/software.

imho setting ALTER USER SET search_path defeats purpose of this as primary usecase for this is to be able to use same db for multiple instances/software.

@lafriks Mmmm..... I hadn't considered the scenario of many consumers using the the same login. I think Gitea should have its own login (user) and it can share the database with many other logins (users), but with its own schema. Other consumers should have their own logins and credentials.
The bug reported in #5152 talks about the bad practice of having a user's tables in the public schema, and I think that's when a single database is shared among different users. This PR should at least take care of that, and only the gitea user needs the ALTER USER statement.
Anyway, I feel that it should be xorm's job to append the schema name to all tables if so configured, even for Exec() statements. It doesn't, and that's the current limitation we have. As soon as xorm supports that properly, the ALTER USER statement is no longer required as the rest of the job is done.

imho setting ALTER USER SET search_path defeats purpose of this as primary usecase for this is to be able to use same db for multiple instances/software.

Expanding on this concept, the configuration I think should be used in those cases is:

A single database (e.g. development) for all projects.
Three Gitea instances (for whatever reason):

Gitea1 with Linux user gitea1, dbuser gitea1, schema giteaschema1.
Gitea2 with Linux user gitea2, dbuser gitea2, schema giteaschema2.
Gitea3 with Linux user gitea3, dbuser gitea3, schema giteaschema3.

One Bugzilla instance; Linux user apache, dbuser bugzilla, schema bugzilla.
Other software, you get the idea.

The advantage of this is having all databases backed up at the same point in time, plus better resource sharing. There are disadvantages too, but they don't really matter for this discussion.

xorm/xorm#1476 has been merged. However, until a new version of xorm (and its companion library lafriks/xormstore) are released, this PR will have to wait. :sleeping:

A new release of XORM was made (and our go.mod was updated), now just need for update to xormstore.

A new release of XORM was made (and our go.mod was updated), now just need for update to xormstore.

Thank you. This PR is not in fact affected by xormstore, so I'm removing the WIP flag.
PR ready for review.

@guillep2k How about add a test for different schema from public on integration test?

@guillep2k How about add a test for different schema from public on integration test?

@lunny Sorry, I'd rather skip that. If that's important, it will have to wait at least a couple of weeks. I only have a few free minutes a day lately.

I still think we need some tests.

In that case I’ve moved this to 1.12

I still think we need some tests.

OK, I'll try when I have some time. But for the test to be meaningful we should run the entire integration tests through a different schema (to account for future bugs). So, the options are:

Change the schema Gitea uses for the PostgreSQL tests (and never use public for that).
Make two different tests: public and alternative, and run them both.

I think (1) is preferable, because it will run only once and we can consider it to be thorough. If any bug slips through (e.g. some case was not accounted for), the public schema will simply not be available and the test will fail. (2) means adding more load to our test servers and I don't see a real advantage to it.

@guillep2k I'm OK to just use 1) and set SCHEMA as a non-public one.

It turns out that supporting the migration process requires additional changes in xorm. Currently the tests passes if the database is created from scratch, but on migration the Sync2() function does some weird juggling with the table names to build the names for the indexes (it's sometimes including the schema name in the index name).
To solve this I've written two more PRs for xorm: xorm/xorm#1505 and xorm/core#65.
We need to wait until those are approved or another solution comes up. 😅


building extension in correct path

Signed-off-by: Alexander Diemand<EMAIL_ADDRESS>minor fix of correct path.

/azp run


Add driver for snowflake

Feature discussion / request
Explain your use case
Using knex with SnowflakeDB.
Explain what kind of feature would support this
Supporting the snowflake-sdk library as a new knex client driver.
Give some API proposal, how the feature should work
Knex configuration options would allow client to be snowflake, as well as providing other options required for the snowflake-sdk library.

Check contributing.md how to create plugin implementation as a separate package.

@elhigu I'd be willing to contribute to a Snowflake plugin. However, the CONTRIBUTING.md docs for how to add a dialect are practically nonexistent:

So if you like to write your own dialect, you can just inherit own dialect from knex base classes and use it by passing dialect to knex in knex configuration.

For developers to add new dialects, I believe there needs to be richer documentation than just the above sentence. Could creating documentation for dialect development be made a priority for this project?

It is the same process than writing any other dialect. One just has to look how knex's internal dialects has been implemented and override the same methods for external plugin and implement it by trial and error.
If someone likes to take the task it can be priority. It is up to contributors. For me personally I have lots of higher priorities than that.

@htunnicliff are you still pursuing a Snowflake dialect? I'm happy to help.

@jdanielmyers This is what I have so far, but it's barely a first draft: https://gist.github.com/htunnicliff/a7b90348b4d15634b0bf84ecae7bfeae

Just to follow up here, it looks like the above gist turned into a full project: https://github.com/htunnicliff/knex-snowflake-dialect


[SPARK-12480][follow-up] use a single column vararg for hash

address comments in #10435
This makes the API easier to use if user programmatically generate the call to hash, and they will get analysis exception if the arguments of hash is empty.

cc @rxin

Can you update the error message to say "hash requires at least one argument"?

Test build #48736 has started for PR 10588 at commit ba303fd.

Test build #48741 has started for PR 10588 at commit b652b45.

LGTM

Oh - we need to add a version for python too...

Test build #48743 has started for PR 10588 at commit 9c72e01.

Test build #48743 has finished for PR 10588 at commit 9c72e01.

This patch fails Python style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

Test build #48736 has finished for PR 10588 at commit ba303fd.

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

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

Merged build finished. Test PASSed.

Test build #48741 has finished for PR 10588 at commit b652b45.

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

Merged build finished. Test PASSed.

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

Test build #48750 has started for PR 10588 at commit f3a557b.

Test build #48750 has finished for PR 10588 at commit f3a557b.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

Test build #48758 has started for PR 10588 at commit 9e05b1e.

Test build #48758 has finished for PR 10588 at commit 9e05b1e.

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

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

Merged build finished. Test PASSed.

Thanks - I've merged this.