Maven Deploy Issue - Unique Constraint Error

Description
We believe that we've found a concurrency bug when doing maven deploys. Depending on network latency or some other factors, mvn deploy may succeed or fail (500 internal server error, see log below). Our project consists of three files:

module-our-project.jar
module-our-project-sources.jar
module-our-project.pom

It seems to us that these files are uploaded in parallel which causes a unique constraint violation in our Postgres database when working with the package_versions table. We couldn't find any maven configuration where we could manipulate maven's upload/deploy behavior, so we currently are in a position where we can't circumvent the problem. We also tried to change Postgres' default isolation level from read_commited to serializable, but doing so causes a different 500 internal server error.
journalctl:

Mar 29 07:25:35 repo-debug gitea[175]: 2024/03/29 07:25:35 ...eb/routing/logger.go:102:func1() [I] router: completed PUT /api/packages/OurCompany/maven/io/our-company/our-project/module/module-our-project/1.3.0/module-our-project-1.3.0.jar for <IP_ADDRESS>:40002, 201 Created in 9.9ms @ maven/maven.go:230(maven.UploadPackageFile)
Mar 29 07:25:35 repo-debug gitea[175]: 2024/03/29 07:25:35 ...packages/packages.go:170:createPackageAndVersion() [E] Error inserting package: pq: duplicate key value violates unique constraint "UQE_package_version_s"
Mar 29 07:25:35 repo-debug gitea[175]: 2024/03/29 07:25:35 ...kages/maven/maven.go:51:apiError() [E] pq: duplicate key value violates unique constraint "UQE_package_version_s"
Mar 29 07:25:35 repo-debug gitea[175]: 2024/03/29 07:25:35 ...kages/maven/maven.go:54:func17() [E] pq: duplicate key value violates unique constraint "UQE_package_version_s"

After the failed upload, opening the artifact page throws another 500 which is caused by a nil pointer error (see screenshot).
Gitea Version
1.21.10
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots

Git Version
No response
Operating System
Debian GNU/Linux 12 (bookworm)
How are you running Gitea?
We are using the official binary (manually downloaded) on a self hosted Debian server using systemd
Database
PostgreSQL

I can reproduce a different unique constraint error (UQE_package_s) by running:
make test-pgsql\#TestPackageMavenConcurrent

with this test file:
package integration

import (
	"fmt"
	"net/http"
	"strconv"
	"strings"
	"testing"

	"code.gitea.io/gitea/models/unittest"
	user_model "code.gitea.io/gitea/models/user"
	"code.gitea.io/gitea/tests"
)

func TestPackageMavenConcurrent(t *testing.T) {
	defer tests.PrepareTestEnv(t)()

	user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})

	groupID := "com.gitea"
	artifactID := "test-project"
	packageVersion := "1.0.1"

	root := fmt.Sprintf("/api/packages/%s/maven/%s/%s", user.Name, strings.ReplaceAll(groupID, ".", "/"), artifactID)

	putFile := func(t *testing.T, path, content string, expectedStatus int) {
		req := NewRequestWithBody(t, "PUT", root+path, strings.NewReader(content)).
			AddBasicAuth(user.Name)
		MakeRequest(t, req, expectedStatus)
	}

	t.Run("Concurrent Upload", func(t *testing.T) {
		defer tests.PrintCurrentTest(t)()

		for i := 0; i < 10; i++ {
			go putFile(t, fmt.Sprintf("/%s/%s.jar", packageVersion, strconv.Itoa(i)), "test", http.StatusCreated)
		}
	})
}

The test is based on tests/integration/api_packages_maven_test.go but only uploads a few files at the same time. My local postgres database was created based on the database preparation documentation.

=== TestPackageMavenConcurrent/Concurrent_Upload (tests/integration/api_packages_fw_test.go:33)
--- FAIL: TestPackageMavenConcurrent (7.14s)
testlogger.go:60: 2024/04/02 13:25:11 ...xer/stats/indexer.go:87:populateRepoIndexer() [I] Done (re)populating the repo stats indexer with existing repositories
testlogger.go:60: 2024/04/02 13:25:12 ...exer/code/indexer.go:312:populateRepoIndexer() [I] Done (re)populating the repo indexer with existing repositories
testlogger.go:60: 2024/04/02 13:25:12 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /Users/fwinkelbauer/Projects/gitea/tests/gitea-lfs-meta
--- FAIL: TestPackageMavenConcurrent/Concurrent_Upload (0.04s)
testlogger.go:60: 2024/04/02 13:25:12 ...packages/packages.go:138:createPackageAndVersion() [E] Error inserting package: pq: duplicate key value violates unique constraint "UQE_package_s"
testlogger.go:60: 2024/04/02 13:25:12 ...kages/maven/maven.go:50:apiError() [E] pq: duplicate key value violates unique constraint "UQE_package_s"
testlogger.go:60: 2024/04/02 13:25:12 ...kages/maven/maven.go:53:func17() [E]
testlogger.go:60: 2024/04/02 13:25:12 ...eb/routing/logger.go:102:func1() [I] router: completed PUT /api/packages/user2/maven/com/gitea/test-project/1.0.1/2.jar for test-mock:12345, 500 Internal Server Error in 7.0ms @ maven/maven.go:229(maven.UploadPackageFile)
api_packages_fw_test.go:29:
Error Trace:	/Users/fwinkelbauer/Projects/gitea/tests/integration/integration_test.go:402
/Users/fwinkelbauer/Projects/gitea/tests/integration/api_packages_fw_test.go:29
/usr/local/Cellar/go/1.22.1/libexec/src/runtime/asm_amd64.s:1695
Error:      	Not equal:
expected: 201
actual  : 500
Test:       	TestPackageMavenConcurrent/Concurrent_Upload
Messages:   	Request: PUT /api/packages/user2/maven/com/gitea/test-project/1.0.1/2.jar
testlogger.go:60: 2024/04/02 13:25:12 ...eb/routing/logger.go:102:func1() [I] router: completed PUT /api/packages/user2/maven/com/gitea/test-project/1.0.1/5.jar for test-mock:12345, 201 Created in 13.3ms @ maven/maven.go:229(maven.UploadPackageFile)
testlogger.go:60: 2024/04/02 13:25:12 ...eb/routing/logger.go:102:func1() [I] router: completed PUT /api/packages/user2/maven/com/gitea/test-project/1.0.1/1.jar for test-mock:12345, 201 Created in 13.5ms @ maven/maven.go:229(maven.UploadPackageFile)
testlogger.go:60: 2024/04/02 13:25:12 ...eb/routing/logger.go:102:func1() [I] router: completed PUT /api/packages/user2/maven/com/gitea/test-project/1.0.1/8.jar for test-mock:12345, 201 Created in 16.5ms @ maven/maven.go:229(maven.UploadPackageFile)
testlogger.go:60: 2024/04/02 13:25:12 ...eb/routing/logger.go:102:func1() [I] router: completed PUT /api/packages/user2/maven/com/gitea/test-project/1.0.1/4.jar for test-mock:12345, 201 Created in 16.6ms @ maven/maven.go:229(maven.UploadPackageFile)
testlogger.go:60: 2024/04/02 13:25:12 ...eb/routing/logger.go:102:func1() [I] router: completed PUT /api/packages/user2/maven/com/gitea/test-project/1.0.1/7.jar for test-mock:12345, 201 Created in 18.1ms @ maven/maven.go:229(maven.UploadPackageFile)
testlogger.go:60: 2024/04/02 13:25:12 ...eb/routing/logger.go:102:func1() [I] router: completed PUT /api/packages/user2/maven/com/gitea/test-project/1.0.1/0.jar for test-mock:12345, 201 Created in 18.3ms @ maven/maven.go:229(maven.UploadPackageFile)
testlogger.go:60: 2024/04/02 13:25:12 ...eb/routing/logger.go:102:func1() [I] router: completed PUT /api/packages/user2/maven/com/gitea/test-project/1.0.1/3.jar for test-mock:12345, 201 Created in 18.3ms @ maven/maven.go:229(maven.UploadPackageFile)
testlogger.go:60: 2024/04/02 13:25:12 ...eb/routing/logger.go:102:func1() [I] router: completed PUT /api/packages/user2/maven/com/gitea/test-project/1.0.1/6.jar for test-mock:12345, 201 Created in 18.3ms @ maven/maven.go:229(maven.UploadPackageFile)
testlogger.go:60: 2024/04/02 13:25:12 ...eb/routing/logger.go:102:func1() [I] router: completed PUT /api/packages/user2/maven/com/gitea/test-project/1.0.1/9.jar for test-mock:12345, 201 Created in 18.9ms @ maven/maven.go:229(maven.UploadPackageFile)
FAIL
make: *** [test-pgsql#TestPackageMavenConcurrent] Error 1

Hope this helps!

Created a PR #30335 and put your tests there.

We observed the same or similar bug when migrating several TB of Maven artifacts to a Gitea Maven repository. We now have many packages that cannot be deleted, because the corresponding (S3?) BLOB cannot be found.
So our question is: Even if this bug is hopefully fixed very soon, how can damaged packages be removed best from an existing repository?

I've created the new issue https://github.com/go-gitea/gitea/issues/30446 for what @FFock has mentioned above.

Hello!
I created a Hotfix example which only allows to upload one package per type like maven at a time.
This fix needs to be adapted, when using an other version than 1.21.10.
I hope this helps someone:
https://github.com/tlusser/gitea/commit/02999c36180993de822250280413c4a96fe1c583
BR,
Thorsten
PS: I also had to fix the test since it could have uploaded the same package twice, but it expected it to upload only once. (go routine variable capture issue)

@lunny : Do you think you code works with the updated test?

My code doesn't work for now because I think the table package_property needs some changes.

@tlusser your proposed hotfix helped, but I found out another problem that was not yet solved when pushing a high amount of submodules with a single mvn deploy.
Maven does uploads in parallel. When a POM and a JAR are uploaded for the same new version at the same point in time, it can happen that the package_version contains the string 'null' in metadata_json. This makes the package_version unusable and returns error 500 for queries of the API or UI.
gitea=# select * from package_version where id=343;
 id  | package_id | creator_id |       version       |    lower_version    | created_unix | is_internal | metadata_json | download_count
-----+------------+------------+---------------------+---------------------+--------------+-------------+---------------+----------------
 343 |        121 |         84 | 23.07.1234-SNAPSHOT | 23.07.1234-snapshot |<PHONE_NUMBER> | f           | null          |              0
(1 row)

gitea=# select * from package_file where version_id=343;
  id  | version_id | blob_id |                            name                             |                         lower_name                          | composite_key | is_lead | created_unix
------+------------+---------+-------------------------------------------------------------+-------------------------------------------------------------+---------------+---------+--------------
 2518 |        343 |    1770 | pwc-commons-kernel-23.07.1234-20240418.151520-1.jar         | pwc-commons-kernel-23.07.1234-20240418.151520-1.jar         |               | f       |<PHONE_NUMBER>
 2521 |        343 |    1773 | pwc-commons-kernel-23.07.1234-20240418.151520-1.pom         | pwc-commons-kernel-23.07.1234-20240418.151520-1.pom         |               | t       |<PHONE_NUMBER>
 2522 |        343 |    1774 | pwc-commons-kernel-23.07.1234-20240418.151520-1-sources.jar | pwc-commons-kernel-23.07.1234-20240418.151520-1-sources.jar |               | f       |<PHONE_NUMBER>
(3 rows)

As you can see, created_unix is the same.
I could identify the problem and extend your hotfix to cover it.
There's a race condition in UploadPackageFile. The assumption of the original author is that mavendata_json is set during a POM file upload for an existing version  or if the POM file is the first upload to the new version at createPackageAndVersion.
But if the POM and JAR are uploaded simultaneously, both can enter CreatePackageOrAddFileToExisting . At the end, the metadata from the pom is lost, because the JAR file is a nano second ahead.
I could fix it by pulling up your mutex and place before https://github.com/go-gitea/gitea/blob/main/routers/api/packages/maven/maven.go#L266, so basically before any calls to GetVersionByNameAndVersion.
This fixed the issue for us.

I think that just a global mutex on maven package upload function solves this issue.  It would only allow one upload at a time (slower uploads), but ensure that packages are uploaded without race conditions. @proxity , @lunny : What do you think about?

I think that just a global mutex on maven package upload function solves this issue. It would only allow one upload at a time (slower uploads), but ensure that packages are uploaded without race conditions. @proxity , @lunny : What do you think about?

As a quick temporary fix, I think it's OK.

For everybody who needs this quick fix please see https://github.com/tlusser/gitea/commit/fb925d159c5c25396311643341e610df0dc100fc

So we don't have a fix included in 1.22.1? My fix could be improved to base the mutex on the package version that is going to be created in the db. That would not slow down other maven uploads which are creating different package versions.

I think we can send a PR to have a lock based on StatusTable lock so that it will only lock the same package. But this should be a short-term resolution.

Thank you for providing a fix in next bugfix release. Do you also include  checks in doctor command to clean invalid data out of the database?

Thank you for providing a fix in next bugfix release. Will you also include checks in doctor command to clean invalid data out of the database?

As I know, only the table package_property may have dirty data because it has no unique index. For other package related tables, duplicated data should not be inserted because of unique index. Do you find any other invalid data?

Hello,
AFAIK there was also tables with missing references to other tables - but it is hard to remember, because i fixed it once in out postgres database and build my own version with a lock which was described in above comment. Afterwards everything seemed to be ok.
Are you sure, that there can not be any issues?

Fixed by #31954


W2field float silent param on max value

I’m prototyping an offline form plugged on an Access MDB with (Accessdb library http://accessdb.sourceforge.net/).
I’m looking for an event to control max values.
At this time, I’ve tested successfully your demo for Inline editing (http://w2ui.com/web/demos/#!grid/grid-21)
I want to understand how to manage alerts / event when the max value is reached. At this time, my goal is to raise an alert, no to set the value to the max value.
I’ve tried  silent setting to false with no success? Any ideas? Is there an issue?
here html:

Latitude:

Here JS:
var_lat =$('#latitude').w2field('float', { groupSymbol: ' ', precision: 6 ,min: 0, max: 90, silent:false});
Pierre

Don't define min/max at all, but attach your own events on the control after it is initialized, here is an example
$('id').w2gird({
   name: 'grid',
   ...
   onFieldEdit: function (event) {
      event.done(function () {
         $(event.input).on('keydown', function () { ... } )
      });
   }
});

Close the issue if it works.


compton: try not to conflict wintypes

A fix for https://github.com/NixOS/nixpkgs/pull/61681#issuecomment-496679155. Tested by systemctl --user restart compton.

Motivation for this change
Things done

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

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

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

Seems reasonable, tested locally in a VM :+1:

@eadwu thanks!


change R.assocPath and R.dissocPath to take a list of strings

Closes #637
This pull request introduces four new internal functions: _assoc, _assocPath, _dissoc, and _dissocPath. These are defined with as few dependencies as possible. _assoc, for example, has no dependencies whereas the existing assoc implementation depends on _extend, _map, createMapEntry, fromPairs, and keysIn!
Most significantly, this pull request changes the type of the path parameter from (dot-separated) String to [String], and updates the test suite accordingly.

we should also update path* to have the same api

Is this the first internal recursion in Ramda?  We've been pretty gun-shy about it after Eweda's stack problems.  I don't mind here.  The paths should never be long enough to worry us, but we need to note it and be wary.
This should close another issue that's been open for a while, but I'm too tired to try to find it.

we should also update path* to have the same api

Good catch.
R.pathOn doesn't make sense now that we're specifying path as a list. Shall we remove it?

R.pathOn doesn't make sense now that we're specifying path as a list. Shall we remove it?

yes. do we need to deprecate first?

do we need to deprecate first?

I don't think so. We're making breaking changes to R.path, R.pathEq, R.assocPath, and R.dissocPath. I don't see much value in preserving the old behaviour of R.pathOn for one release. Furthermore I'm against having the old R.pathOn function in a release alongside the new path functions.

agreed. this change has been in the air for a while anyways

Just curious, why is this preferred?

Just curious, why is this preferred?

e.g. imagine you are modeling a filesystem as an object, you could have keys with '.' in them.

:cow2:

@buzzdecafe

e.g. imagine you are modeling a filesystem as an object, you could have keys with '.' in them.

good point

This pull request is ready for a final review.

:cow2:

It's too bad you did not let users using a path as a string to maintain backward compatibility and for simplicity (Ramda could internally split it on "dot" if an argumet was a string).
Sometimes it's so much easier and shorter to be able to specify "a.b.c.d" instead of awkward array notation (which is in itself useful some other times).

It's actually for reasons of simplicity (as opposed to those of ease) that we choose for our API not to do such different things on different input types.
But I'm with you on how nice the string-based API was compared to the array-based one.  But I couldn't argue against the additional flexibility of the current approach.  Luckily, it should be easy to write your own version on top of the existing one.

I wish I had convinced you to make an exception, for the sake of "a practical" adjective describing the library at the front page :)
Thanks for the Simple Made Easy link.

I wish I had convinced you to make an exception, for the sake of "a practical" adjective describing the library at the front page

I discuss the notion of what we mean by "practical" in The Philosophy of Ramda and further in https://github.com/ramda/ramda/issues/1002#issuecomment-89614280 .  I think there's a good reason not to do what you're suggesting, even though I initially argued for it as well, and even though we did it that way at first.
A number of our functions are dynamically dispatched, and we internally supply the version that works for lists or for plain objects.  And we offer tranduced versions of many of our functions.  But other than that,  we don't vary our behavior based on argument type.  I think that's a pretty clean line to draw.  But creating a version that works the way you want should be as simple as:
var path = R.useWith(R.path, R.split('.'), R.identity);
path('a.b.c', {a: {b: {c: 'foo', d: 'bar'}}}); //=> 'foo'


MongoKitten and Swift Playground

Hi,
I'm trying to use MongoKitten in a Swift Playground for Data Science purposes. Unfortunately, I cannot get it to work, because it will not find the CNIOOpenSSL module.
Does anyone know a solution to this problem?
Best,
Keyan

Hello 👋 This could happen because your version of macOS doesn't have the openSSL or libreSSL headers installed by default. If that's not the case it might be that your Xcodeproject was created without pkg-config installed, it will likely not find the C library (libssl) without it.

Just so I can help better; what steps did you use to create the playground?

Thank you very much for the fast reply. Here are my steps:

I used Carthage to download and install MongoKitten
Called GenerateXcodeproj.rb in ~/Carthage/Checkouts/MongoKitten to create project file
Created a new workspace
Added a playground file to my new workspace (code below)
Added MongoKitten.xcodeproj to my workspace
Compiled MongoKitten-Package for "My Mac"

My Swift Playground is:
import Cocoa
import MongoKitten
var str = "Hello, playground"
And I receive the following error message
error: missing required module 'CNIOOpenSSL'
I have attached a screenshot below.
The failed compile meassage for MongoKitten contains 999+ compile errors. I have screenshotted a few of them in the second screenshot below. I had installed sourcery via homebrew.
Thanks,
Keyan

The 120 characters error is not an error in our project or tooling. I'm suspecting your xcworkspace is running some script over the code for linting with a configuration we do not support. How did you link the playground against MongoKitten?

I am new to swift and playground. Basically, I followed the instructions I found in a WWDC talk. I opened a new workspace and included the MongoKitten.xcodeproj using the "Add file to " option. This works fine with other 3rd party libraries, such as Yams (yaml parser).

I don't recall installing swiftlint via brew, but somehow, it was installed. Uninstalling it removed all the compile errors for MongoKitten, but the include problem remains. Trying the run the three lines of code shown above still results in:
error: missing required module 'CNIOOpenSSL'
Recompiling CNIOOpenSSL did not resolve the issue.

try using https://github.com/JohnSundell/TestDrive

I didn't try the above, but I'm not sure how to get it working otherwise. If you clone MongoKitten itself using git or by copying the zip from the releases tab here on github. You can run swift build. Does this work?
Does it work if you create the xcodeproject then with swift package generate-xcodeproj?

try using https://github.com/JohnSundell/TestDrive

Thanks for the tip. Unfortunately, it does not work for MongoKitten:

testdrive https://github.com/OpenKitten/MongoKitten.git
📦  Cloning https://github.com/OpenKitten/MongoKitten.git...
🚢  Resolving latest version...
📋  Checking out 5.1.1...

💥  Xcode project missing at 'https://github.com/OpenKitten/MongoKitten.git'

Hmm... 🙁 None of those tools all support SPM it seems. You can try to create a small package (without Playground) for now.
mkdir NotAPlayground
cd NotAPlayground
swift package init --type=exeuctable
open Package.swift

Update the Package.swift
swift package generate-xcodeproj
open NotAPlayground.xcodeproj

That works fine but causes other problems. One that is related to MongoKitten is the question of how to wait for the find expression to complete before moving on in the code.

SwiftNIO provides the wait() API on all promises. Don't use it within an eventloop. So you'll want to use Database.synchronousConnect(...) and then wait() for all operations.

Thanks. That worked. Now I need to find out, how the second library that I rely on works in an executable setting :)
It would still be great to see MongoKitten work in a playground setting. I am trying to move from Python to Swift for my data science stuff and ML stuff.

@kzahedi if you're interested, we're working on MongoKitten mobile which supports Cocoapods as well as MongoDB's embedded database and NIOTransportServices for macOS and iOS.
I'm closing this since it's solved, but feel free to ask me other things here or in slack 👍


split navigation from jaeger

plugin side for this issue
https://github.com/digma-ai/jaeger-ui/issues/10

opened by mistake in jaeger-ui project


Adding cuda kernels

I was able to create a plugin and this repo really helped with the boiler plate code.
One addition that I want to make in my enqueue function is that I want to call my cuda binding.
How can I make the cuda code and header come in scope of the project created by
trtpg generate --yaml plugin.yml --output ./plugin_codes

Sorry I miss this :-) You can include a kernel head files, just like you do in your development.


Pip install command

We'd suggest
sudo python3 -m pip install Mopidy-Bandcamp

in the install instructions. I know pip for python2 was recently deprecated but it's going to be hang around for a long time and people copy and pasting the command will find it doesn't work.

Also, you don't need to add enable = true to your config as that is the default value.

I know pip for python2 was recently deprecated but it's going to be hang around for a long time and people copy and pasting the command will find it doesn't work.

Yeah,  I think I even use a pip3 alias for this.  BTW - these instructions were there from when I just lazily copy/pasted from:
https://docs.mopidy.com/en/latest/extensiondev/

Also, you don't need to add enable = true to your config as that is the default value.

 It's even mentioned multiple times in the Mopidy documentation, but for some reason I convinced myself that this wasn't the case.
Thanks for pointing these out!

Ah thanks, looks like we didn't update that example there. The cookie cutter project should be updated to reflect our current best practices.
Cheers for this extension. I wish bandcamp would provide an API with support for playing my purchased songs, it's by far my preferred way to buy music these days. Every so often I take a look and there's still no sign. Shame.


Additional Schedule Popup Fields

Hello, I need to display additional data apart from the default one onto my schedule popup, however I still haven't found the way. Here's what I've done so far:
I've created my schedules as you can see below, and I'm trying to add and display new schedule properties, such as attendee and more. Whenever I try to add new elements to the default popup via modifying the handlebars template file, nothing happens.
Could you help me out? I've submitted my schedule creation code below, customPropIneedToDisplay is an example name for my custom properties I need to add and display.
`
`

@rosendyakov
https://nhn.github.io/tui.calendar/latest/Schedule
You can use raw  field.
cal.createSchedules([
        {
            id: '30',
            calendarId: '2',
            title: 'name12',
            category: 'time',
            start: '2021-02-08 06:00:00',
            end: '2021-02-08 06:39:59',
            raw: {
              customPropIneedToDisplay: ' '
            }
        },


Chrome find bar undesirable behavior

When you use browser find bar (ctrl+f) on chrome to search something which is hidden by horizontal scroll you end up with badly scrolled containing row.
Anyone have an idea how to avoid this undesirable behavior?

Hi! This is a known bug (see #149). I'm going to close this issue in favor of the previous - but unfortunately, we cannot currently prevent this behavior because of the way we manage scrolling.


resolved: use resolved's static resolv.conf

because it is upstream's recommended mode of operation:
https://www.freedesktop.org/software/systemd/man/systemd-resolved.html#/etc/resolv.conf
Motivation for this change
This allows systemd-resolved to intercept programs that don't use /etc/nsswitch.conf but /etc/resolv.conf directly, to inject records like the virtual gateway host or hostnames from LLMNR / MulticastDNS.
Things done

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

[X] NixOS
[ ] macOS
[ ] Linux

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

@0xABAB comment added, thank you. 👍

@florianjacob Thanks.
It's unfortunate that @Mic92 has several concerns, which might be legitimate. I suppose you could write some tests for the setups described by @Mic92 and then show that it still works. AFAIK, these tests run before a release.
Alternatively, @Mic92 could give a specific set of requirements to get this in.
If @Mic92 can't give more specific requirements, try the mailinglist.
If the properties on which the networking configurations described by @Mic92 do not follow from NixOS  documentation, I am in favor of breaking them, because this provides incentives for stakeholders to write documentation and tests.

@Mic92 @0xABAB thanks! 😃


checkbox a11y issue: Partially done task is getting read out as 'Checkbox not checked'.

Bug, feature request, or proposal:
Bug
What is the expected behavior?
Partially done task should read out as 'indeterminate'.
What is the current behavior?
Partially done task is getting read out as 'Checkbox not checked'. It might cause confusion to end user.
What are the steps to reproduce?

Click on Checkbox.2. Navigate over nested checklist.

What is the use-case or motivation for changing an existing behavior?
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Chromevox Chrome OS Version 61.0.3163.100 (Official Build) (64-bit) , Voiceover (mac OS version: 10.12.6)
Is there anything else we should know?

It's the same behavior as native checkbox.
We could change it by aria-checked but I think we should make it align with native checkbox.


Merging HistoryData and HistoryEvent.

I was pondering on this a bit, and it seemed like a good idea to do. A logical follow-up would be to also include the source attribute, and infer the scope from the event object. WDYT?

I'm starting to think we should avoid inheritance completely.

I'm not sure what you suggest here. What kind of inheritance would you like to remove?


Gulp serve can only watch a hardcoded list of fileextensions

Category

[ ] Question
[ ] Typo
[x] Bug
[ ] Additional article idea

Expected or Desired Behavior
It should be possible to configure the gulp serve task to watch other files than just ts, tsx, scss, resx, js, json, html. to allow us to ex. use Vue single file components, which has the extension .vue
Observed Behavior
The list of file extensions are hardcoded in the sp-build-web package (SPWebBuildRig.js), which makes it impossible to watch for other filetypes like .vue
Steps to Reproduce

Create a spfx project using the yeoman generator
Add a file with the extension .vue
Run gulp serve
Add/change the content of the .vue file and save it

The gulp tasks does not pick up the change
Our workaround
We're creating alot of spfx webparts in vue, and at the moment we manually change the SPWebBuildRig.js file to also include the .vue extension

Thanks for the feedback.  There is a workaround here that the pnp spfx generator project uses - https://pnp.github.io/generator-spfx/
We have this on the list of things to consider for future tooling.


Added calls to igBeginGroup

and EndGroup of course.

Fixes #13

Thank you :) I unfortunately don't have as much time as planned to maintain this project, so your contribution is very welcome.


Fix verb menu not working for clientside entities

Fixes #1370

The server shouldn't even be asked for client side entities like this. This should be handled on the client.


Miscomputation of width

Hi,
When using your library with following options, I got a miscomputation of the width:
font: 'Helvetica';
fontSize: '14px';
fontWeight: '400'
For example, Lalande de Pomerol and Bordeaux Supérieur get the same width (125px), while they shouldn't have.
The fix could be to use getBoundingClientRect().width instead of offsetWidth() in the computation (same for height).

@klouzoun Using the getBoundingClientRect().width the result is always a float value. The offsetWidth seems to be returning the rounded version of that.
What about a "strict mode" as an option, where I can get the float (real) result? 🤔


Feature/maps

Generic Maps widget supporting various map providers

Codecov Report

Merging #29 into master will decrease coverage by 0.34%.
The diff coverage is 82.46%.

@@            Coverage Diff             @@
##           master      #29      +/-   ##
==========================================
- Coverage    82.5%   82.15%   -0.35%
==========================================
  Files           3        8       +5
  Lines         160      465     +305
  Branches       42      131      +89
==========================================
+ Hits          132      382     +250
- Misses         28       83      +55

Impacted Files
Coverage Δ

src/GoogleMaps/components/Marker.ts
100% <ø> (ø)

src/GoogleMaps/components/Map.ts
80.55% <100%> (ø)

src/components/Alert.ts
100% <100%> (ø)
:arrow_up:

src/Maps/components/LeafletMap.ts
77.89% <77.89%> (ø)

src/Maps/components/GoogleMap.ts
79.77% <79.77%> (ø)

src/Maps/components/GoogleApi.ts
80% <80%> (ø)

src/Maps/utils/Validations.ts
91.11% <91.11%> (ø)

src/Maps/utils/Utils.ts
95% <95%> (ø)

... and 5 more

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 b485fb2...447c926. Read the comment docs.


Swift 3 Enhancements

Alamofire has gone to swift 3 on master branch as of https://github.com/Alamofire/Alamofire/commit/ee4d6ce6b4297c8554d441be3d7f53054e89fd7b

update to xcode 8 gm
carthage point to Alamofire#master
silence warning about unused result by adding @discardableResult

Thanks!


Plan wizard copy options step: Add warning when checking verify copy box for the first time

Closes #817.
In the plan wizard, the first time a user clicks one of the "verify copy" checkboxes on the copy options step, this warning will appear:

It will only appear the first time one of those checkboxes is clicked per mount of the copy options step (if you go back a step and forward again, or close the wizard and reopen it, this state will be lost and the warning will appear again).

LGTM.


Curly braces are not recognized by react-latex

Inside of a React component, React treats curly braces as per normal.

How do I achieve a grouped super/sub script? e.g. R_{u,i}

Can confirm this bug, any work arounds ?

Hi, this might be because in our projects and for legacy purposes, we use the curly brackets to separate normal text and latex.
I'll try to move this functionality out of the module so expressions like R_{u,i}can work as expected

Quick update and the current version works fine. Are you wrapping your LaTeX syntax around dollar signs, like this: $R_{u,i}$

@cavaunpeu @martijnvandijke react-katex has a way to solve this problem, you can check it here: https://github.com/talyssonoc/react-katex/issues/6
It happens because React interpret content between curly braces as JavaScript values.

This problem is still not solved. React component does not recognize BlockMath. Can someone look into the issue? Ex. $P_{'{data}'}$ is not working, even though the curly braces are escaped. Thank you!

@vic317yeh can you show me the full code you're trying to render with BlockMath?

@talyssonoc is this BlockMath available in react-latex or react-katex only? When importing I have been doing this: import Latex from 'react-latex'; but when trying block math getting issues. Can you share example of the import?

Seems like the  issue is related to our good neighbour "react-katex", closing this issue


Improve/fix documentation of Modelica.Electrical.Spice3

Reported by dietmarw on 18 Feb 2010 16:06 UTC
See attached [raw-attachment:Modelica.Electrical.Spice3_StyleCheckLog.html StyleCheckLog.html] for indicators what needs to be improved/fixed.

Migrated-From: https://trac.modelica.org/Modelica/ticket/295

Comment by christiankral on 23 Mar 2010 08:33 UTC
The functions of the SPICE3 library are widely missing a proper variable description, e.g., Modelica.Electrical.Spice3.Repository.Equation. Additionally, the SI units of the input and output quantities are missing. Even if most of these functions are only used internally, they should fulfill the Modelica Standard for documentation and instantiation. Consequently, these issues shall be improved before the MSL 3.2 is released.

Comment by anonymous on 24 Mar 2010 13:35 UTC
Additionally, according to the minutes of the 66th Design meeting, the following class names shall be changed:

Spice3.Repository -> Spice3.Internal
Spice3.Repository.Equations -> Spice3.Internal.Functions

Comment by Kristin Majetta on 30 Mar 2010 10:37 UTC
Done.
Replying to [comment:2 anonymous]:

Additionally, according to the minutes of the 66th Design meeting, the following class names shall be changed:
* Spice3.Repository -> Spice3.Internal
* Spice3.Repository.Equations -> Spice3.Internal.Functions

Comment by clauss on 6 May 2010 08:04 UTC
We finished to improv the description of variables, e.g. the SI units are added to most of the variables, input, and output variables of functions.

Comment by otter on 22 Jul 2010 17:05 UTC
"Style check" with Dymolas style checker gives a correct "check"
(only some "bad class names" are reported, because some names have an "_" in the name, which is o.k. for the SPICE3 library)


vite使用antd-vue的时候意味遇到bug

Do NOT ignore this template or your issue will have a very high chance to be closed without comment.

Describe the bug
A clear and concise description of what the bug is.
Reproduction
Please provide a link to a repo that can reproduce the problem you ran into.
A reproduction is required unless you are absolutely sure that the the problem is obvious and the information you provided is enough for us to understand what the problem is. If a report has only vague description (e.g. just a generic error message) and has no reproduction, it will be closed immediately.
System Info

required vite version:
required Operating System:
required Node version:
Optional:

npm/yarn version
Installed vue version (from yarn.lock or package-lock.json)
Installed @vue/compiler-sfc version

Logs (Optional if provided reproduction)

Run vite or vite build with the --debug flag.
Provide the error log here.

v-model={[modelRef.loginEmail, 'value']}意外的被渲染到html上面，导致验证失败

For some jsx synax with vue, it not supported in vite, please track here https://github.com/vitejs/vite/issues/727


Bug: Grid view doesn't have pin to blog options

After pinning post it won't pin visually: something happens with sorting, but pinned post is previous not current. It will fix after page reloading
I also noticed sometimes if I change page to another user's account I briefly see pinned post by previous account's page
Grid view has too much space around images for some reason

#932 fixed this


feat : Add custom fields for Job Applicant Doctype.(TASK-2024-00948)

Is this a Feature, Chore or Bug?

Feature

Clearly and concisely describe the feature, chore or bug.

Add custom fields and sections to the Job Applicant.
Add Child Table

Solution description

Added fields :

Father's Name,
Marital Status,
Current Address, Mobile Number, Period of From(mm/yy) stay, Residence Number etc..

Added Sections:

Current Employer Details
More Details

Created Child Tables :
 1. Educational Qualification
 2. Professional Certification
 3. Previous Employment History

Output screenshots (optional)
Screencast from 10-21-2024 03:18:59 PM.webm
Areas affected and ensured

Job Applicant Doctype

Is there any existing behavior change of other features due to this code change?

No

Did you test with the following dataset?

Existing Data
New Data

Is patch required?

No

Why do we need these child tables?

To fetch the details from tables in html form. It's done to satisfy the requirements.

Why do we need these child tables?

@MhmdSinanKT To fetch the details from tables in html form. It's done to satisfy the requirements.

Okay, please mention it in the PR


Error - You need to add option values for Size"

Hello,
I'm trying to use the API in order to create new option on existing products but I receive the following error. @details={:base=>[{:error=>"You need to add option values for Size"}
Here is what I tried.
op = ShopifyAPI::Option.new({ product_id: product.id, name: 'Size'})
product.options.push(op)
product.save

op = ShopifyAPI::Option.new({ product_id: product.id, name: 'Size'})
product.options.push(op)
last_variant = product.variants.last
last.variant.option2 = 4
product.save

new_variant = {
"option1": gr.option1_value,
"option2": gr.option2_value,
"price": gr.variant_price,
"compare_at_price": gr.variant_compare_at_price,
"fulfillment_service": gr.variant_fulfillment_service,
"inventory_management": gr.variant_inventory_tracker,
"inventory_policy": gr.variant_inventory_policy,
"inventory_quantity": gr.variant_inventory_qty,
"sku": gr.variant_sku,
"taxable": gr.variant_taxable,
"requires_shipping": gr.variant_requires_shipping,
"metafields": [
    {
	"key": "product_desc_1",
	"value": gr.variant_description,
	 "value_type": "string",
	 "namespace": "c_f"
   }
 ]
}

newVariant = ShopifyAPI::Variant.new(new_variant)
product.variants.push(newVariant)

op = ShopifyAPI::Option.new({ product_id: product.id, name: 'Size'})
product.options.push(op)

product.save

Each time I receive the same error. If I'm creating a new variant without option2 it works, but when I'm creating a variant with option2, I receive the error.
Can someone help me to solve this issue?
Thank you very much

All of your existing variants need to have values for the new options that
you are defining at the product level.
On Jun 22, 2017 16:55, "darkrubyist"<EMAIL_ADDRESS>wrote:

Hello,
I'm trying to use the API in order to create new option on existing
products but I receive the following error. @details={:base=>[{:error=>"You
need to add option values for Size"}
Here is what I tried.
op = ShopifyAPI::Option.new({ product_id: product.id, name: 'Size'})
product.options.push(op)
product.save
op = ShopifyAPI::Option.new({ product_id: product.id, name: 'Size'})
product.options.push(op)
last_variant = product.variants.last
last.variant.option2 = 4
product.save
new_variant = {
"option1": gr.option1_value,
"option2": gr.option2_value,
"price": gr.variant_price,
"compare_at_price": gr.variant_compare_at_price,
"fulfillment_service": gr.variant_fulfillment_service,
"inventory_management": gr.variant_inventory_tracker,
"inventory_policy": gr.variant_inventory_policy,
"inventory_quantity": gr.variant_inventory_qty,
"sku": gr.variant_sku,
"taxable": gr.variant_taxable,
"requires_shipping": gr.variant_requires_shipping,
"metafields": [
{
"key": "product_desc_1",
"value": gr.variant_description,
"value_type": "string",
"namespace": "c_f"
}
]
}
newVariant = ShopifyAPI::Variant.new(new_variant)
product.variants.push(newVariant)
op = ShopifyAPI::Option.new({ product_id: product.id, name: 'Size'})
product.options.push(op)
product.save
Each time I receive the same error. If I'm creating a new variant without
option2 it works, but when I'm creating a variant with option2, I receive
the error.
Can someone help me to solve this issue?
Thank you very much
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Shopify/shopify_api/issues/373, or mute the thread
https://github.com/notifications/unsubscribe-auth/APQ7PMaYBCP2Aqy6cWFRturdB1qDAO50ks5sGtTcgaJpZM4OC1e7
.

Thank you very much.
I will test this now.
Best regards

did you get a solution to this issue? I facing the same problem


Skip tests which are flaky on CI

This introduces a new XCTSkipIfCI and uses it in two tests which are flaky on CI.
rdar://96517321
rdar://96290746

Doesn't look like skipped tests are called out in any way in swift test output, so not sure how to ultimately verify that the skipped tests are being skipped. I guess I could introduce a deliberate failure?


[HUDI-6658] inject filters for incremental query

Change Logs
Add incremental filters to the query plan
Also fix some tests that use partition path as the precombine field
Impact
incremental queries will now work the new filegroup reader
Risk level (write none, low medium or high below)
low
Documentation Update
N/A
Contributor's checklist

[ ] Read through contributor's guide
[ ] Change Logs and Impact were stated clearly
[ ] Adequate tests were added if applicable
[ ] CI passed

@yihua all azure tests passing


fix: update to latest zig master(0.11.0-dev.3739)

Some builtin functions are renamed. See: https://github.com/ziglang/zig/pull/16046

Thanks!


reports for npm package CVEs

This is looking good. For the notes for type: pending-upstream-fix, it'd be great if we can explain why we're not fixing it ourselves and why upstream needs to be the ones to do it


Single searchcluster take 5

Reverts vespa-engine/vespa#30652

@hmusum @geirst PR
The last commit is the difference


Improved functionality for Oxford IIIT Pet data loader

🚀 The feature
Add the following functionality to the Oxford IIIT Pet data loader

Support binary classification of cat vs dog
With the segmentation target type, produce trimaps with class/background/don't care regions instead of target/background/don't care when the output is a tensor
Support detection as a target type

Motivation, pitch
The Oxford IIIT Pet dataset is a fun dataset for trying out new things and for new practitioners to use to learn. These capabilities allow users to more easily use this dataset with detection and segmentation target types and to use the existing annotation for animal species (rather than breed) as a simpler problem to get started. I have created these capabilities on my local copy of torchvision, and I'm up for creating a PR if the community likes the enhancements. The individual proposed enhancements can be found in the links:
Binary cat v dog
Class labeled segmentation
Detection target type
All 3 enhancements
Alternatives
I thought a lot about the ability to write transforms to use with a dataset loader to accomplish this, but it was unclear to me how I could access some of the class members of the dataset loaders that were necessary.
Additional context
Demonstration of the new features can be found in the following notebooks:
Class-labeled segmentation maps and binary species classification training Deeplab V3
Detection target type training resnet 50 faster RCNN

Thanks for the feedback @NicolasHug, I've put in a PR for 1.  I made some changes to my original code to support "binary-category" as a target type, as that seemed to make more sense from a useability perspective than my previous setup with a separate input for "binary". As a result, I'll probably wait for 1 to clear before doing 3 as it opens up the door for binary detection as well.
I've put it in as draft as I am having some trouble running the unit tests locally (partially initialized module likely due to circular import). It's happening on all unit tests not just mine, so something is whacky with my config maybe. I was going to see how it went with running the unit tests in github instead.
Regarding the segmentation modification, all of the trimap png files in this dataset contain only the values 1, 2, and 3. 1 is used for pixels on the the pet, 2 for background, and 3 for a boundary region that can be used with the "ignore_index" of a loss function to not use that region for training. These png files do not have any class specific information in them, and the existing data loader, these files are loaded up directly. This doesn't let us use the data loader as-is to train a segmentation model supporting class differentiation.
The modification that I made changes that, but because modifying PIL images based on masks is a pain, I had this modification run after the transforms convert it to tensor. I certainly 'can' have it run earlier so that it is not transform dependent. See below for a example outputs with the current data loader. The change results in the background (2) becoming 37, the boundary region (3) becoming 38, and the "foreground region" (1) becoming something on [0,36] corresponding to the class label.


Make passing options more convenient

Currently when one needs to pass options down to charred this can lead to combinatorial explosion.
(cond
  (and key-fn return-type) #(charred/read-json % :key-fn key-fn :value-fn return-type)
  key-fn #(charred/read-json % :key-fn key-fn)
  return-type #(charred/read-json % :value-fn return-type)
  :else charred/read-json)

Would you consider making this possible via a map which you are constructing here anyway: https://github.com/cnuernber/charred/blob/b081dc23ce9174dc53dcd983f98b7e4815de3344/src/charred/api.clj#L531
You could also pin to 1.11 which supports this out of the box https://clojure.org/news/2021/03/18/apis-serving-people-and-programs.

This has been an irritation of mine with clojure & options style functions for literally the last 12 years.
This is exactly why, when I am not trying to make a drop-in replacement for clojure.data.csv or data.json I use an explicit options map.
You can choose to use 1.11 - I don't see why I would pin to it.
Why not simply use the -supplier pathways yourself?

What I meant (using clojure 1.11):
(require '[clojure.data.json :as json])

(json/read-str "{\"a\":1,\"b\":2}" {:key-fn  keyword})
;; => {:a 1, :b 2}

(require '[charred.api :as charred])

(charred/read-json "{\"a\":1,\"b\":2}" {:key-fn  keyword})
;; => {"a" 1, "b" 2}

replacing read-json with
(defn read-json
  "Drop in replacement for clojure.data.json/read and clojure.data.json/read-str.  For options
  see [[read-json-supplier]]."
  [input & {:as args}]
  (with-open [json-fn (read-json-supplier input args)]
    (.get json-fn)))

results in
(charred/read-json "{\"a\":1,\"b\":2}" :key-fn  keyword)
;; => {:a 1, :b 2}

(charred/read-json "{\"a\":1,\"b\":2}" {:key-fn  keyword})
;; => {:a 1, :b 2}

so you don't break downstream and make it possible to have option maps with 1.11.

Yes this is totally reasonable.  Fixed 1.015 for all functions that had that style of options passing.


fix: Uploading a Empty JSON File Shows Loading Forever

check if files are empty on file drop
closes #253

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

Gonna assume this isn’t needed anymore. Will close not to clutter the PR list.


show email address for iam_id

based on user feedback to the blog post, implement something like

get list of users, https://cloud.ibm.com/apidocs/user-management#list-users
on pretty printing, match iam_id from history to user to easily identity contact

initial support in branch userinfo


feat: add NodeJS object detection example

Heyy,
This PR relates to the issue #26
Let me know if I did something wrong :)

Hey @christyjacob4
Sorry I couldn't work on this before but here it is, I corrected the problems you mentionned.
Regarding the screenshots, I'm not sure of what you are looking for so I'm giving you these for now :


TimestampSkew default vaue need to set 0 in identity.xml

Description:
When we generate access token first time it created with expiry time 3600 seconds as expected but when we invoke same command after few seconds expire time got increased to 3890 seconds which is not expected behavior.
Suggested Labels:

Suggested Assignees:

Affected Product Version:
OS, DB, other environment details and versions:
Steps to reproduce:
Related Issues:

TimestampSkew is set to 0 by default in latest APIM (validated in APIM 2.6.0)


Please delete  this question

Please delete  this question

It is better that you rested the content of the question, in this way other people can know what is the missing here.


Add ability to copy over a whole directory with random files

I am trying to copy a bunch of static files (can be any type including binaries, so not just js/css/html, but like .bin/.obj etc.) from the source folder to output directory. I cannot find a way to properly do this with the file loader, unsure if it is possible:
// src.js
import '/path/to/third-party/vendor/directory';

// webpack.config.js
{
    test: path.join(__dirname, '/path/to/third-party/vendor/directory'),
    loader: 'file-loader?name=[path][name].[ext]'
}

Is it possible with the file loader? I looked at https://github.com/webpack/webpack/issues/525 however the method in that doesn't seem to work unless I am doing something wrong.

Same issue here. For us Public is generated via Java Maven so it would be awesome if we can copy files over to public dir when we run webpack via pom. Can file-loader handle this via webpack-config? example will be very much appreciated.

Personally I gave up on using file loader for this use case and just using rsync now as follows by creating a mini webpack rsync plugin.
function RsyncPlugin(source, destination) {
    this.source = source;
    this.destination = destination;
}
RsyncPlugin.prototype.apply = function(compiler) {
    var self = this;
    compiler.plugin('done', function() {
        exec('rsync -avz --delete --exclude=".*" ' + self.source + ' ' + self.destination);
    });
};

and then in the plugins section I add an instance of that as follows
new RsyncPlugin('src/static', 'public')

Unless I'm misunderstanding, you can do something like the following in one of your JS files:
require.context('.', true, /\.png$/);

This above will require via webpack all png files in the same directory as the JS file. You then need to configure in the file loader in your webpack config file to do the actual copying:
...
module: {
      loaders:  [
        {
          test: /\.png$/,
          loader: "file-loader?name=[path][name].[ext]"
        }
      ]
    },
...

The signature of require.context is:
require.context(directory, useSubdirectories = false, regExp = /^\.\//)

See https://webpack.github.io/docs/context.html for more info.

Yeah what @skeary-immt said is the best way to fix this. Note that webpack isn't really intended to be used this way, hence the code is a bit ugly.


deployment with other software?

Hello,
we plan to distribute DelphiOTP with a server component for Zeos (zeoslib.sourceforge.io). Is that allowed and if so under which license? Or is DelphiOTP considered to be public domain? Or should we send users here to get DelphiOTP themselves if they want to use OTPs?
Best regards,
Jan

Hi Jan,
thanks for raising this issue. I thought, that I already added a Licence for this repository. Apparently I forgot to do that.
Going to fix that immediately.
I am going to add the MIT License to this code.

Fixed. Please let me know if there are any more issues.
By the way, thanks for using this project. I'm glad it helps people.


Cannot Edit Connection on a connection created via Command Line

Description
When I create a connection via cli like so:
open -a "DBeaver.app" --args -con "driver=postgres-jdbc|database=some_database|name=connection-name|host=some_host|openConsole=true|savePassword=true|showSystemObjects=true|showUtilityObjects=true|save=true|user=dev_portal|password=some_password"

It will create a new connection called connection-name. I am able to connect and use it, however, when I go to "Edit Connection" the OK button is greyed out and I am unable to save the changes. If I make changes to the connection, the OK button is still greyed out and I am unable to make the changes. When I look at other connections, the OK button is never greyed out and works as expected.
DBeaver Version
Community Edition <IP_ADDRESS>403241413
Operating System
macOS Sonoma 14.4.1
Database and driver
PostgreSQL
Steps to reproduce

I execute this command to create and open a connection

open -a "DBeaver.app" --args -con "driver=postgres-jdbc|database=some_database|name=connection-name|host=some_host|openConsole=true|savePassword=true|showSystemObjects=true|showUtilityObjects=true|save=true|user=dev_portal|password=some_password"

Right click the connection
Click Edit Connection
The OK button is greyed out and will not allow saving of any changes.

Additional context
No response

Sorry for the late response, and thanks for the bug report.
The issue is reproducible until the port isn't set


Create a new Package to support Chacha20/Poly1035 encryptions/authentication (in JWE format)

Standard JWE encryption/decryption operations does not support Chacha20 algorithm with Poly1035 authentication.
There are talks to update the JWE spec with this new addition. An IETF draft can be found here:
https://datatracker.ietf.org/doc/draft-amringer-jose-chacha/
The aim of this issue is to create a new package that will support this new JWE spec.
finally, for reference, Aries-rfc has an issue to update its spec using this new format:
https://github.com/hyperledger/aries-rfcs/issues/133
A PHP example is found here:
https://github.com/gamringer/php-authcrypt
the task here is to follow the same format in Go
Part of #36

How do we plan to incorporate the modifications of go-jose into this project? Is a fork required or are we able to wrap the go-jose library and contain the modifications into this repository?

How do we plan to incorporate the modifications of go-jose into this project? Is a fork required or are we able to wrap the go-jose library and contain the modifications into this repository?

The changes in Go-Jose are intertwined within the framework, changes are done on a fork (and we can potentially submit a PR to merge the change but we will need the IETF draft to be come part of the JWE standard to support the merge)

New update to this issue, forking Go-Jose is not suitable, we will instead build our own package that encrypts/decrypts JWE formatted messages using Chacha20/Poly1035 instead.


Allow only letter in the first character of the username

Fixed the behavior of validate_user function in validations.py
Closes: #1
Updated validations.py python script.
Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[ ] Tests pass
[ ] Appropriate changes to README are included in PR

@googlebot I signed it!


component clashes with existing resources during migration

I am exploring to adopt ods-pipeline in an existing project, so I'd like not to disturb the existing services.
An existing OpenShift resources of the service clashes with the components helm chart's service. While aiming to change the component name as used in the ods-pipeline to <original-name>-helm I ended up editing the component parameter in the TriggerBinding ods-pipeline, with a wild guess of setting it to value: $(body.extensions.repository)-helm
Perhaps there is an easy way to customize this which I haven't found yet. Perhaps this could be or should be declarable in ods.yaml.
An alternative could be to change the resources in the templates chart. However then the image streams could still interfere.

Did you try to set the release-name parameter in https://github.com/opendevstack/ods-pipeline/blob/master/docs/tasks/ods-deploy-helm.adoc#parameters? You'd also need to take care of the image stream, I think that can be done via https://github.com/opendevstack/ods-pipeline/blob/master/docs/tasks/ods-package-image.adoc#parameters ...

Does this work now? Do we need to document this better?

@michaelsauter I have not yet played with release names, but I tried some other strategies as follows.
For all of the following let's assume the bitbucket project is called hoho .
One thing that stopped me investigating the release (for no really good reason) was that:
  - name: deploy-helm
    taskRef:
      kind: ClusterTask
      name: ods-deploy-helm-v0-1-1
      release: hoho{{params.pr-key}}

did not work and I could not figure out quickly what syntax to use and what template capabilities are available in this context.
Instead I experimented with the following approaches to keep the helm managed resources separate.
Use a different name in Chart.yaml from what the component is associated with in ods Jenkins.
For repo hoho-auth I changed the chart name to dasher and adjusted the image-stream parameter as follows to make it work:
 - name: package-image
    taskRef:
      kind: ClusterTask
      name: ods-package-image-v0-1-1
    params:
      - name: image-stream
        value: auth-dasher

Use fullnameOverride
For repo hoho-admin I changed fullnameOverride to  admin-helm chart name to dasher and adjusted the image-stream parameter to:
 - name: package-image
...
    params:
      - name: image-stream
        value: admin-helm

Use nameOverride
For repo hoho-backend I changed nameOverride to  backend-helm. There was no need to adjust the image-stream parameter.

@henrjk Ah interesting!
Here's the syntax for params (see also https://tekton.dev/docs/pipelines/pipelines/#specifying-parameters):
- name: deploy-helm
  taskRef:
    kind: ClusterTask
    name: ods-deploy-helm-v0-1-1
  params:
    - name: release-name
      value: hoho$(params.pr-key)

I have been experimenting with the release-name parameter. The scenario I am after is less to avoid clashes with existing Jenkins/tailor managed resources, but to enable preview deployments.
The following kind of works but requires to also change the image-stream parameter like so:
...
  - name: package-image
    taskRef:
      kind: ClusterTask
      name: ods-package-image-v0-2-0
    params:
      - name: image-stream
        value: cool-admin-feature
    runAfter:
    - build-fe
    - build-be
    workspaces:
    - name: source
      workspace: shared-workspace
  - name: deploy-helm
    taskRef:
      kind: ClusterTask
      name: ods-deploy-helm-v0-2-0
    params:
      - name: release-name
        value: cool-admin-feature
    runAfter:
    - package-image
    workspaces:
    - name: source
      workspace: shared-workspace

In addition to such a preview deployment of an individual repo, there are other repos that I would like to be able to deploy together with an umbrella chart.
However  the release-name in the umbrella chart is also used in the sub-charts (as expected). However I am not sure how to adjust the image-stream of the subcharts in this scenario.
The reason the image-stream needs to be set in the first place is because the deployment references it as follows:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ include "chart.fullname" . }}
..
spec:
..
  template:
    spec:
      containers:
        - name: {{ .Chart.Name }}
          image: "image-registry.openshift-image-registry.svc:5000/{{ .Release.Namespace }}/{{ include "chart.fullname" . }}:{{ .Values.gitCommitSha | default .Chart.AppVersion }}"

And _helpers.tpl brings in the Release.Name for {{ include "chart.fullname" . }}.
One idea that emerged is that deploy-helm could copy the image streams to the destination namespace using a name which is compatible with the above. @michaelsauter what do you think?

One idea that emerged is that deploy-helm could copy the image streams to the destination namespace using a name which is compatible with the above.

I am not sure I am following. Let me expand a little.
Currently, deploy-helm uses existing image digest artifacts, written by package-image, to transport images to the target namespace. It is not consulting the component name or similar because it cannot be known how many images you build for one component.
I am not sure if you really need / want the image stream name to be based on the chart's full name in the first place. You could as well hardcode the name I believe since I do not think it is necessary to have separate image streams per preview. Every Git commit results in one image tag. As such, there is no need for isolation: if you reference the same Git commit, you want the same image tag.

hey! happy new year! :)
just came around and wanted to propose: shall we do a first meeting and define the use cases we are willing and what is already in place, what is possible, what to nice to have, etc? I think it would be nice to have this as an outcome documented somewhere in the users docs, what do you think? like a "projects structures: folders, architectures, ..."?

I am not sure if you really need / want the image stream name to be based on the chart's full name in the first place. You could as well hardcode the name I believe since I do not think it is necessary to have separate image streams per preview. Every Git commit results in one image tag. As such, there is no need for isolation: if you reference the same Git commit, you want the same image tag.

Since I posted the comment yesterday I was thinking a bit more about this. Now I am also leaning on not having different streams and simply differentiating by tag. However I still am concerned about the naming clash between an ods-pipeline and the Jenkins pipeline which by default use the same name (component name). So if you are migrating the Jenkins build and the ods-pipeline could potentially interfere with each other.
To keep thing separate the default image stream could perhaps be odp-<component-name>.
For example at https://github.com/opendevstack/ods-pipeline/blob/905d3e6952070a6077c72a55dbd5d343f1d0c3f7/cmd/build-push-image/main.go#L108 .

@gerardcl Happy New Year (again)!
By having conversations in GitHub issues and discussions questions can be captured and also giving some direction including for newbie questions. Also some missing features might be identified. At the same time this already is a kind of version 0 of documentation for other users following.
Nonetheless it likely makes sense to have a meeting like you suggested with early adopters.

Since I posted the comment yesterday I was thinking a bit more about this. Now I am also leaning on not having different streams and simply differentiating by tag.

Cool!

However I still am concerned about the naming clash between an ods-pipeline and the Jenkins pipeline which by default use the same name (component name). So if you are migrating the Jenkins build and the ods-pipeline could potentially interfere with each other.
To keep thing separate the default image stream could perhaps be odp-component-name.

I'm actually not in favour of this:

I would not want us to change the default just because of the migrating use case.
It is possible to override the image stream so that clashes do not happen.
Following the logic of "simply differentiating by tag", one might not need to separate image streams, even during migration?

@gerardcl Happy New Year to you as well! Yes we need to have a conversation around that, but I am not sure I want to open that can now. For the time being, I would approach it like this:

Everything that is documented is what is supported. Everything that is not documented should not be considered as supported. I strongly recommend reading the whole user guide referenced from https://github.com/opendevstack/ods-pipeline. It does contain a lot of information that will be helpful. I realise though that it is not organised all too well and not searchable. Suggestions for changes highly welcome!
I would encourage everyone to open an issue (or a discussion thread) if you have a certain use case for which you want to use ODS Pipeline but are unsure whether it is possible or how to do it

I believe it will be helpful for us to collect real use cases first before discussing possibilities. ODS Pipeline by design does not do a lot of things that were in discussion at some point in time and I want to be very very cautious before we implement new features.

@henrjk @gerardcl I am going to close this as I believe the original purpose of this issue is fulfilled. Fee free to open follow-up issues to improve docs, add more features, etc. as you see fit for your use case.


Dashed Lines and Outline Styling

This was originally raised in #38 but raising as a separate issue to more easily track it.
The purposed of this issue is to explore how viable it would be to support dash lines and outlines across mapping libraries. There is a somewhat philosophical question of if we we provide a fall back to a normal line if it is not supported and if we should have 'best effort' features in Terra Draw to allow support for more complex options.

I started looking into this - I got this working with Leaflet, OpenLayers and Mapbox, but for MapLibre it is only possible to hardcode the dash array styling as a literal value (i.e. it cannot be driven by data/properties).
See https://github.com/maplibre/maplibre-gl-js/issues/1235 for more details.
In theory we could push this forward without MapLibre support, but it feels weird to have one piece of styling functionality which does not work for one adapter. The other option is we do support MapLibre for dash lines but the value would be hardcoded to say [1, 1] and changing the styling property would not change it.
If people have thoughts on this I would be open to hearing them about what might be there preference?

It looks like https://github.com/maplibre/maplibre-gl-js/issues/1235 has been picked up under it's bounty programme. Hoping we might be able to achieve this at some point next year!

Still no movement on this since it was picked up on the bounty programme. I will continue to keep an eye open!


Bullet list in text on slate blue background isn't automatically white

The "normal" text in a text component with slate blue background on a topic page is automatically white, while the bullet list isn't. Bullet list should behave the same way.

LGTM

Great! Thanks for fixing @millianapia :smile:


code folding using language-blade

I can't seem to "fold" code blocks while using "language-blade" package.
It only seem to happen when I enable language-blade, and only if the blocks has comments.

Thanks for contributing!
It appears that this is being caused by the language-blade package, not Atom itself. It may be that there is still a bug in Atom. If so, we'll need the maintainer of the package that is causing the problem to help track that down. You should file this issue on their repository so they can either fix the problem or tell us where the problem is coming from. The Atom FAQ has information on how to contact the maintainers of any Atom community package or theme.


(rebase) Support embedded go_proto_library

This is just a rebase and cleanup of this PR from @tingilee : https://github.com/bazelbuild/intellij/pull/5567. The feature work is entirely theirs.
fixes #5538

@mai93 @tpasternak could I have a review on this? I'll give co-author credit to @tingilee  on the merge commit, but they don't have their branch open to pushes.

I'll solve the WORKSPACE conflicts, it just never ends so I'll wait for a review before solving them again.

The only concern is about the new dependencies we add (in WORKSPACE.bzlmod). @mai93 can you please confirm they're ok?

I think since bazel-gazelle is part of bazelbuild it should be fine.

google.golang.org/grpc

I'm not sure why it should be concerning? cc @blorente if you have more details about it

I've addressed the comments (and added a comment on why we import grpc). @mai93 @tpasternak , could you please take a look now?


different ways to detour 'sudo' authorisation problem

Hi there,
I have some questions as well as need some suggestions on how to achieve fuss-free ble communication for my desktop app built by Electron.
I know there has been quite a bit of issues around this.
noble warning: adapter state unauthorized, please run as root or with sudo
               or see README for information on running without root/sudo:
               https://github.com/sandeepmistry/noble#running-on-linux

Such as this or this.
However I wonder if there is newly found methods to pass through this issue of linux requiring sudo privilege.
For instance, currently I am trying to create an desktop app using Electron + noble. And as suggested in some of the issue page, after sudo setcap cap_net_raw+eip node_modules/electron/dist/electron you don't see any authorisation related issue; instead you cannot build the electron any longer.
I have tried to substitute noble part which is needed for the system to control ble with https://www.espruino.com/Web+Bluetooth+On+Linux  and successfully build on my raspberry pi. Though it works, two step authorisation needed by javascript user input is quite tedious in terms of user experience.
So now I am considering to use this python-shell to directly manipulate bluez so that my electron app doesn't ask for sudo.
Has anyone have any suggestions on how can I successfully build electron+noble or any substitute ideas on how to create same user experience in my node js app?
Thank you very much in advance.

Okay as of now there seems to have no answer yet so I decided to proceed with web bluetooth; compromising a bit of user experience. Reference


change form link in purchase page

update form link in purchase page to match ongoing things

current form is now closed as pre order closed

cannot link form as it makes uses of files upload but page is now set to be redirected to the form


Update 01-intro.Rmd

Don't know if this is actually useful or not ! Added 'echo = FALSE' to the three GIFs to hide what could be confusing code lines from the students (i.e. they might try and run these lines themselves and encounter errors).

Yes that's super thank you!