Base58 tests

@NicolasDorier,
Look, the tests look very good. The new tests are much more clear.
This is just to know if you like this style.

well, if there is not lots of data it makes sense to move the data in the tests.
I am not fan of TheoryAttribute, because I think we can do a dumb foreach ourselves, but don't oppose it.
But if we take this approach we should also take it for "Invalid" test, and not mix both, so can you remove the json file for invalid base58 like you was doing ?

As you can see in the first commit, there is a big chunck of data for "InvalidKey" and that didn't like me really, that's why I changed it in my second commit.
IMO, test using TheoryAttribute are much clearer that those that use a foreach because I don't have to iterate in my mind to understand them. Look:
	public static IEnumerable<object[]> InvalidKeys
	{
		get
		{
			var dataset = TestCase.read_json("data/base58_keys_invalid.json");
			return dataset.Select(x => x.ToArray());
		}
	}

	[Theory, PropertyData("InvalidKeys")]
	public void base58_keys_invalid(string data)
	{
		// must be invalid as public and as private key
		Assert.Throws<FormatException>(() => Network.Main.CreateBitcoinAddress(data));
		Assert.Throws<FormatException>(() => Network.Main.CreateBitcoinSecret(data));
	}

And now, take a look at the previous one:
	[Fact]
	[Trait("Core", "Core")]
	public void base58_keys_invalid()
	{

		var tests = TestCase.read_json("data/base58_keys_invalid.json"); // Negative testcases

		foreach(var test in tests)
		{
			string strTest = tests.ToString();
			if(test.Count < 1) // Allow for extra stuff (useful for comments)
			{
				Assert.False(true, "Bad test: " + strTest);
				continue;
			}
			string exp_base58string = (string)test[0];

			// must be invalid as public and as private key
			Assert.Throws<FormatException>(() => Network.Main.CreateBitcoinAddress(exp_base58string));
			Assert.Throws<FormatException>(() => Network.Main.CreateBitcoinSecret(exp_base58string));
		}
	}

I know there are more important things in what someone can contribute but anyway, tests are the first place where devs go in order to understand how something work and that's why I think that clearer tests worth the effort.


Add transfer ownership to HMT token

Is your feature request related to a problem? Please describe.
Whenever someone from the community deploys HMT contract for some development they cannot transfer the ownership of this contract to Human Protocol Foundation
Describe the solution you'd like
Add a function to the contract to transfer ownership

I'm on it !


TGSA

SOP:

[x] Create improve branch in model repo
[x] Switch to improve branch in image build
[x] Test container build
[x] Test train with container
[ ] Test HPO
[ ] Tag improve branch with v0.6.0

HPO failed:
time supervisor conda GA tests/TGSA/cfg-nightly.sh | tee TGSA.log
...
Running GA workflow with model /software/improve/images//TGSA.sif and model type SINGULARITY
2023-09-25 14:21:47 EXPERIMENT OUTPUT DIRECTORY: /software/improve/data_dir//TGSA/output/TGSA/EXP000
2023-09-25 14:21:47 source_site(): sourcing /home/wilke/IMPROVE/Supervisor/workflows/common/sh/env-conda.sh
2023-09-25 14:21:47 source_site(): sourcing /home/wilke/IMPROVE/Supervisor/workflows/common/sh/sched-conda.sh
mkdir: created directory '/software/improve/data_dir//TGSA/output/TGSA/EXP000/run'
mkdir: created directory '/software/improve/data_dir//TGSA/output/TGSA/EXP000/out'
/homes/wilke/miniconda3/envs/IMPROVE/bin/python
/homes/wilke/miniconda3/envs/IMPROVE/bin/swift-t
WARN  /tmp/swift-t-workflow.NOs.swift:93:8: Variable usage warning. Variable v might be read and not written, possibly leading to deadlock
WARN  model_container.swift:15:23: variable called model_name already defined at swift-t-workflow.NOs.swift:145
WARN  model_container.swift:41:14: variable called model_name already defined at swift-t-workflow.NOs.swift:145
WARN  /home/wilke/IMPROVE/Supervisor/workflows/common/ext/EQ-Py/EQPy.swift:26: Variable usage warning. Variable loc is not used
application called MPI_Abort(MPI_COMM_WORLD, 1) - process 1

real    316m54.929s
user    0m4.675s
sys     0m0.691s

Seems a problem in test config or supervisor:
mkdir: created directory '/software/improve/data_dir//TGSA/TGSA/Output/EXP000/run_01_001_0001'
redirecting to: LOG_FILE=/software/improve/data_dir//TGSA/TGSA/Output/EXP000/run_01_001_0001/model.log
candle_model_train_container(): result(run_01_001_0001): ''
EQPy aborted...

Swift: user work error:
Assertion failed!: EQPY aborted!

Swift: Aborting MPI job...
2023-09-25 14:21:49 DEAP INFO  OPTIMIZATION START
2023-09-25 14:21:49 DEAP INFO  HPO PARAMS START
2023-09-25 14:21:49 DEAP INFO  num_iter:    3
2023-09-25 14:21:49 DEAP INFO  num_pop:     2
2023-09-25 14:21:49 DEAP INFO  seed:     704772
2023-09-25 14:21:49 DEAP INFO  HPO PARAMS STOP
2023-09-25 14:21:49 DEAP INFO  params_file: /homes/wilke/IMPROVE/HPO/tests/TGSA/cfg-hpo-parameter-space.json
2023-09-25 14:21:49 DEAP INFO  GENERATION: 1 START: pop: 2
2023-09-25 19:38:35 DEAP INFO  GENERATION: 1 STOP.  duration: 19006.098
2023-09-25 19:38:35 DEAP INFO  ERROR: received: 0-length token at: 0
2023-09-25 19:38:35 DEAP INFO         tokens: ['', '']

Closing - release past. Recreating for next release phase.


Laravel query builder left join alias issue, alias will be wrap with tablePrefix

Laravel Version: 5.4.23
PHP Version: 7.1.4
Database Driver & Version: 5.7.16

Description:
When I used laravel query builder with leftJoin, the table alias will be prefixed with $tablePrefix automatically, It is so inconvenient bcs I need to write more code, especially I must specify the tablePrefix  DB::getTablePrefix() like below.
$d1s = DB::table('area as a')
	->select('a.*', DB::raw(' count(' . DB::getTablePrefix() . 'b.d1) as num '))
	->leftJoin('article as b', 'a.id', '=', 'b.d1')
	->where(['a.level' => 1])
	->groupBy('a.id')
	->orderBy('a.level', 'ASC')
	->orderBy('a.sortid', 'ASC')
	->get();

Why dont Laravel allow like this?
$d1s = DB::table('area as a')
	->select('a.*', DB::raw(' count(b.d1) as num '))
	->leftJoin('article as b', 'a.id', '=', 'b.d1')
	->where(['a.level' => 1])
	->groupBy('a.id')
	->orderBy('a.level', 'ASC')
	->orderBy('a.sortid', 'ASC')
	->get();

Steps To Reproduce:

Because you're building the query yourself, Laravel can't decide how to append the table prefix in such query on its own.


Convert to still fails on galaxy ultra s24

Describe the bug
Convert to still image fails on s24 ultra
To Reproduce
Steps to reproduce the behavior:

Select the motion photo collection
Select any image(s)
Convert to still fails

System information and logs:
aves-logs-20241226_143855.txt
Package: deckers.thibault.aves
Installer: com.android.vending
Aves version: 1.12.0-play, build 140
Flutter: stable 3.27.1
Android version: 14, API 34
Android build: UP1A.231005.007.S928BXXS4AXKA
Device: samsung SM-S928B
Support: dynamic colors=true, geocoder=true, HDR=true
Mobile services: ready
Connectivity: wifi, vpn
System locales: en_GB
Storage volumes: /storage/emulated/0/
Storage grants: /storage/emulated/0/Movies/, /storage/emulated/0/DCIM/, /storage/emulated/0/Download/Archive/
Error reporting: true

Can you provide a sample motion photo for which it fails?

And I just noticed that edit doesn't work either on .heic

Right, metadata editing is not supported for heic at the moment:
https://github.com/deckerst/aves/wiki/Support:-Metadata-editing
I'll close this one as it is not a bug per se, but feel free to upvote/subscribe to this one:

#145


Unlocking Deadlock

-Unlock the deadlock in SerialExecutionContext.
-Rewritten runNow in SerialExecutionContext as tail recursion function.

Closing as the changes are already pulled into 3.0.x.


pull request for e2e test at 01/12/2017 05:26:09

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Converted all icons to webp and added migration step

Leaving as draft until I've tested more, but I'm pretty confident this works as designed.

I've tested this a half dozen times, and @ThroughlyDruxy has independently confirmed on his side.

Converting back to draft, as I'd like to re-convert some icons to be higher quality.

Re-encoded webp files at 90% quality without any downscaling.

Fixed merge conflicts.

As much as I want to include this one in the next release, I think it's best we wait. I want the next release to be as stable as possible, since it'll be the last update for Foundry v0.7.x. Once we've gotten past the v0.8.x update, then we'll revisit this.

Another task lingering in Pull Request limbo, one that needs a bit of gentle re-loving I think?

Updated the branch on my side, will merge it Soon™.


Provide Multi select filters for events page

eta: 2023-03

Feature was implemented , Test execution completed as as part of Sprint 2 and the same was launched successfully on 6th Mar,2023


Django wraper

I created a simple Django wraper for this library, if anyone is interested.
https://github.com/iwalucas/django-driverjs

We just released v1.0 of driver.js which has been rewritten from the ground up. You should probably upgrade driver.js as it has a different API. Please have a look at the docs and do let me know if you face any issues.


feat: add color prop, don't add bg for non-raised button

You can still add custom background color for non-raised buttons withstyle prop.

Looking good @satya164 will review once I get home

We will still need prop fullWidth I think

We will still need prop fullWidth I think

If your parent view is flexDirection: 'column' and has alignItems: 'stretch' it will become full width (which is default). It's not full width in example because I'm using flexDirection: 'row'. Parent can use the style alignItems: 'space-around' or anything other than stretch to not have full-width buttons.

@satya164 I know that you didn't configure it and left it to the layout to be used, but I've seen this prop in different libraries makes it easier for beginners I guess

@ahmedlhanafy I think it's better for people to get familiar with flexbox rather than learning different props for each component. We can document this, but I'm against adding a prop.

ping @ahmedlhanafy

I will be on my computer on a while

@satya164 Great


check recalled settings for reasonableness before using

in case EEPROM goes bad

I think this is more difficult than adding code to verify that the data is valid since every setting needs custom subjectively chosen limits. Maybe by combining a couple ways to ensure the data is correct I don't have to do this.

since I did error correction and checksum, I'm not going to do this


prevent the containers from being draggable

Is there a way to prevent the containers from being draggable?

Of course, elements are only draggable if they have the  dnd-draggable attribute :)


(Fun Fact) On average, my commits are # lines long.

On average, my commits are [count of lines] lines long.

Statistics are already collected in the app. We need to update our fun facts assigning to finish this fun fact.


ValueError: The two structures don't have the same sequence length. Input structure has length 0, while shallow structure has length 9.

Any idea how to fix this?

Hi, could you resolve this issue?

Hi, could you resolve this issue?


2 create playground plug in

@peterjah Just noticed that we don't have a build for MacOS arm64 and Windows. I noticed that you removed Windows build in this commit. Why ?
About MacOS arm64, I think it's nice to support it now since Apple Silicon powered Macs are now the only option for Mac users and most Apple users in the team own Apple Silicon Macs and so, won't be able to test the plugin if we don't create a binary for it (or will need to clone the project and build by hand the plugin).
Thyra is compiled for Windows, Linux, MacOS x86 and MacOS arm64. So you can take example on it to make those binaries.

Amd64 binaries has been released! we are using the now


examples/Models /using_openvino_models.py -> "Directory missing" error

To replicate the error:

On windows (10 or 11): Delete "c:\users<user>\llmware_data\model_repo" directory
Run the openvino example "examples/Models /using_openvino_models.py"
Notice how the example doesn't run: The user gets an error (saying that something is missing: this directory).

The user needs to then first manually create the directory. Then the example runs fine.
A quick fix is either

Check for the directory and create it, if it doesn't exist (would probably be nice to do it in the library)
or catching and interpreting the error in the example and programmatically create the directory if needed

@andytolle - great catch - and yes, this is a bug - missing defensive code in a path specific to loading the external tokenizer used with OpenVINO models (if this is first use of llmware).    Will be fixed later today.   Appreciate you sharing this.... keep the feedback coming!  :).  kind regards - Darren


Hungarian translation

Hi Nicky!
This is the Hungarian translation of your awesome webcomic. :)
Btw, it turns out that TinyCards is not available anymore... Do you intend to update the comic to reflect that?
Thanks!

Hi @czondi ! Thank you so much for taking the effort to make this available to more people –– and so so sorry it took me forever to get around to this; it's been a very stressful last couple months.  Thank you again for your patience! 🎉

No worries @ncase ! Thank you as well for your awesome work! 😊


Ran 2to3.

I ran 2to3 on workerpool. It works well in my case. Maybe you can give an overhaul.

@oubiwann also has a Python 3 compatibility changes in his fork. Would be nice to get Python 3 support in.

Agreed. If anyone wants to do a clean PR with Python 3 compatibility, I'd be happy to merge and push out a new release.

Cool -- just submitted a PR. I needed this for a project under a deadline -- let me know if there are any changes you'd like to see with it.


Constructor tear off and function literal of same class has different runtime type.

The runtime types returned by these two:

() => HomePage()
HomePage.new

is completely different.
Outputs:
Function Literal: () => HomePage
Constructor Tear-Off: ({Key? key, _Location? $creationLocationd_0dea112b090073317d4}) => HomePage
The runtime type string generated by the tear off doesn't seem to be the right one. Please let me know if this is intended.
Dart SDK Version:
Dart SDK version: 2.16.1 (stable) (Tue Feb 8 12:02:33 2022 +0100) on "windows_x64"
Platform:
I have tested this on macOS & Windows

It only has the key parameter.
This is in flutter.
HomePage({Key? key}) : super(key: key);

I'm guessing the extra parameter was somehow injected by Flutter for use with the widget inspector, and that's now visible since the constructor can be inspected as an object.

That might be the cause in it.
But my original question highlight a different case.
Aren't these two the same ?

() => HomePage()
HomePage.new

If they are the same, why is the runtimeType different ?
different as in, We get different strings when printing them. Shouldn't they both print the same ?
Please correct me if I am mistaken,

No, those two are not the same.
The function () => HomePage() takes zero parameters and calls the HomePage constructor with zero arguments.
It's a function literal expression, like every other function expression. This one happens to call the constructor in a specific way. The compiler considers it completely unrelated to the constructor.
You decide, entirely, the signature of the function by how you write the parameter list, the body only supplies the return type.
The HomePage.new function takes as many arguments as a he constructor allows, which in this case is two optional arguments. It's a function value which does not correspond to a function expression.
If the class had been generic, the tear-off would be a generic function (unless immediately instantiated), and the function literal above would not.
The signature of the function is decided by the constructor's signature.


Changes to README

Moved sections; standardised syntax; clarified some areas for newbies

I did the following:
Fixed all the formatting of the parameters. Seems to work OK.
Explained that the parameters listed are only the basic ones, and more detail is in the config file.
Moved (and tweaked) the --support_email stuff from the dev section to the "Testing" section (where it's needed first) and then referred back to it in the dev section.
Gave a full command example for testing scenario --- I'll be needing it this week! :-)
Clarified need to create the folder for the ACME verification files in some Node.js/Python scenarios, based on your explanations.
Added link for YAML format.

Thanks!


Something went wrong

To whom it may concern,
I tried training but couldn't export.

Converts your model to a keras.h5 model. Note the conversion happens in the cloud, but your training data is not being uploaded, only your trained model.

Because of the message above, I also tried steps below but no luck yet.

started a new project
record for classes
trained and downloaded the project (which comes with the images)
started a new project
uploaded the images
trained and tried exporting

Just in case I also attached the message of browser,

The error message says:

POST https://converter-release-2-1-2-bqjfnlxgwq-uc.a.run.app/convert/image/keras net::ERR_QUIC_PROTOCOL_ERROR.QUIC_NETWORK_IDLE_TIMEOUT

My working environment is:

Ubuntu 19.10 on x86_64
Chrome Version 80.0.3987.132 (Official Build) (64-bit)

Hope this helps somehow.
(if there is a known solution, please let me know...)

I just found out that using the service with wireless tethering is fine.
Let me close this ticket.


⚠ Samsung has degraded performance

In 191a5d1, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2424 ms

Resolved: Samsung performance has improved in 00a4f7f.


JWT.decode always raises JWT::ExpiredSignature for tokens created with Time objects passed as the exp parameter

require "jwt"

secret = SecureRandom.hex(64)
exp_time = Time.now + 3600 # one hour from now
payload = {data: "test", exp: exp_time}
token = JWT.encode(payload, secret, "HS256")
JWT.decode(token, secret, true, { algorithm: "HS256" }) # => JWT::ExpiredSignature: Signature has expired

If I paste the generated token into jwt.io, this is the payload that JWT.encode generated:
{
  "data": "test",
  "exp": "2016-04-30 13:57:44 -0500"
}

If I instead change the code to do exp_time = (Time.now + 3600).to_i (i.e. cast to Unix epoch), it works correctly and doesn't raise a JWT::ExpiredSignature. The payload generated by that code is obviously different:
{
  "data": "test",
  "exp":<PHONE_NUMBER>
}

So I'm guessing that the decoding is not converting time values like 2016-04-30 13:57:44 -0500 back into Time objects correctly.
Although the examples in the README explicitly do .to_i, it would be nice to either handle other time values or raise an exception if they are not supported at the encoding step.

Hi @abevoelker,
thanks for the detailed report.
As written in the RFC specs (https://tools.ietf.org/html/rfc7519#section-4.1.4):

Its value MUST be a number containing a NumericDate value.  Use of this claim is OPTIONAL.

That's why we only allow Unix timestamps as valid values.
For the 1.x versions I will improve the exception that will be raised if the format for the exp claim does not fit the requirements.

Makes sense. Thank you for the quick response and the excellent gem! I'm new to JWT and the gem has made things very easy for me. :heart:

@abevoelker I improved the error message. :)

@excpt You rock!


Not downloading.

.81 (0.95.2)
Windows 10 Pro x64
I added a magnet link to stream.
To see network activity.
Nothing.
Please see attached screenshots.
Imgur
Imgur

Same issue on windows, but I have somewhat shoddy internet.

My connection's not the fastest, but it does tend to be pretty doggone stable.

If this happens again you may try View -> Developer -> Show WebTorrent Process and post any errors from the console.

If there's a limit on how many active torrents there may be, than its possible that newer torrents don't get activated as old ones are "active" as if they weren't finished.
C:\Users\ALERATOR\AppData\Local\WebTorrent\app-0.9.0\resources\app.asar\renderer\lib\telemetry.js:119 uncaught error webtorrent Objectmessage: "Array buffer allocation failed"stack: "RangeError: Array buffer allocation failed↵    at new Uint8Array (native)↵    at createBuffer (buffer.js:68:17)↵    at allocate (buffer.js:216:12)↵    at Function.Buffer.allocUnsafe (buffer.js:176:10)↵    at Buffer (buffer.js:110:19)↵    at RandomAccessFile.read (C:\Users\ALERATOR\AppData\Local\WebTorrent\app-0.9.0\resources\app.asar\node_modules\random-access-file\index.js:70:13)↵    at C:\Users\ALERATOR\AppData\Local\WebTorrent\app-0.9.0\resources\app.asar\node_modules\fs-chunk-store\index.js:193:16↵    at apply (C:\Users\ALERATOR\AppData\Local\WebTorrent\app-0.9.0\resources\app.asar\node_modules\thunky\index.js:16:28)↵    at Object.open (C:\Users\ALERATOR\AppData\Local\WebTorrent\app-0.9.0\resources\app.asar\node_modules\thunky\index.js:27:3)↵    at C:\Users\ALERATOR\AppData\Local\WebTorrent\app-0.9.0\resources\app.asar\node_modules\fs-chunk-store\index.js:191:21"proto: ObjectlogUncaughtError @ C:\Users\ALERATOR\AppData\Local\WebTorrent\app-0.9.0\resources\app.asar\renderer\lib\telemetry.js:119
main.js:268 webtorrent: got wt-uncaught-error
C:\Users\ALERATOR\AppData\Local\WebTorrent\app-0.9.0\resources\app.asar\renderer\lib\telemetry.js:119 uncaught error webtorrent Objectmessage: "Array buffer allocation failed"stack: "RangeError: Array buffer allocation failed↵    at new Uint8Array (native)↵    at createBuffer (buffer.js:68:17)↵    at allocate (buffer.js:216:12)↵    at Function.Buffer.allocUnsafe (buffer.js:176:10)↵    at Buffer (buffer.js:110:19)↵    at RandomAccessFile.read (C:\Users\ALERATOR\AppData\Local\WebTorrent\app-0.9.0\resources\app.asar\node_modules\random-access-file\index.js:70:13)↵    at C:\Users\ALERATOR\AppData\Local\WebTorrent\app-0.9.0\resources\app.asar\node_modules\fs-chunk-store\index.js:193:16↵    at apply (C:\Users\ALERATOR\AppData\Local\WebTorrent\app-0.9.0\resources\app.asar\node_modules\thunky\index.js:16:28)↵    at Object.open (C:\Users\ALERATOR\AppData\Local\WebTorrent\app-0.9.0\resources\app.asar\node_modules\thunky\index.js:27:3)↵    at C:\Users\ALERATOR\AppData\Local\WebTorrent\app-0.9.0\resources\app.asar\node_modules\fs-chunk-store\index.js:191:21"proto: ObjectlogUncaughtError @ C:\Users\ALERATOR\AppData\Local\WebTorrent\app-0.9.0\resources\app.asar\renderer\lib\telemetry.js:119
main.js:268 webtorrent: got wt-uncaught-error

We've def seen these in telemetry as well. Adding some newlines:
C:\Users\ALERATOR\AppData\Local\WebTorrent\app-0.9.0\resources\app.asar\renderer\lib\telemetry.js:119 uncaught error webtorrent Objectmessage: "Array buffer allocation failed"stack: "RangeError: Array buffer allocation failed
at new Uint8Array (native)
at createBuffer (buffer.js:68:17)
at allocate (buffer.js:216:12)
at Function.Buffer.allocUnsafe (buffer.js:176:10)
at Buffer (buffer.js:110:19)
at RandomAccessFile.read (C:\Users\ALERATOR\AppData\Local\WebTorrent\app-0.9.0\resources\app.asar\node_modules\random-access-file\index.js:70:13)
at C:\Users\ALERATOR\AppData\Local\WebTorrent\app-0.9.0\resources\app.asar\node_modules\fs-chunk-store\index.js:193:16
at apply (C:\Users\ALERATOR\AppData\Local\WebTorrent\app-0.9.0\resources\app.asar\node_modules\thunky\index.js:16:28)
at Object.open (C:\Users\ALERATOR\AppData\Local\WebTorrent\app-0.9.0\resources\app.asar\node_modules\thunky\index.js:27:3)
at C:\Users\ALERATOR\AppData\Local\WebTorrent\app-0.9.0\resources\app.asar\node_modules\fs-chunk-store\index.js:191:21"proto: ObjectlogUncaughtError @ C:\Users\ALERATOR\AppData\Local\WebTorrent\app-0.9.0\resources\app.asar\renderer\lib\telemetry.js:119

@feross and I just investigated and we think we know why this might be happening.
random-access-file is probably trying to create a huge Buffer: https://github.com/mafintosh/random-access-file/blob/master/index.js#L70

@Samizdata curious, how big is the torrent you're downloading?

@Samizdata also, how much RAM do you have? Are you often out of RAM or closet to that?

I got 16GB, but a bunch of files may be considered to be not downloading although they have been. The size of 1GB won't download.

@janat08 Can email your .torrent file to the email (listed on my github profile) so we can take a closer look. I suspect that it has something to do with the specific file.

I would actually mostly use magnet links. This magnet for example would download, than tell me that it can't play although I was watching it, and now it's stuck.
magnet:?xt=urn:btih:a2139c74cedebaca76681a6dcaa441ee4891561c&dn=Stranger.Things.S01E01.WEBRip.x264-TURBO%5Bettv%5D&tr=udp%3A%2F%2Fexodus.desync.com%3A6969&tr=udp%3A%2F%2Fopen.demonii.com%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Fzer0day.ch%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&tr=wss%3A%2F%2Ftracker.webtorrent.io

Do not use WebTorrent for copyright infringement. We cannot assist you.


Keyboard Crashing - Desktop, Linux

Typing a single character(s) into a TextFormField causes the application to close. From channel master.

Hi @therenca
Can you please provide your flutter doctor -v, your flutter run --verbose and a minimal complete reproducible code sample?
Thank you

Typing a single character(s) into a TextFormField causes the application to close. From channel master.

Yes I'm facing the same issue. It doesn't return any errors in the stacktrace.

@pedromassangocode
flutter doctor -v

[✓] Flutter (Channel dev, 1.22.0-1.0.pre, on Linux, locale en_IN)
    • Flutter version 1.22.0-1.0.pre at /home/tirth/flutter
    • Framework revision ce40de69b7 (8 days ago), 2020-08-20 07:31:50 -0700
    • Engine revision 81027ab0cc
    • Dart version 2.10.0 (build 2.10.0-45.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /home/tirth/Android/Sdk
    • Platform android-29, build-tools 29.0.2
    • Java binary at: /home/tirth/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
    • cmake version 3.10.2
    • ninja version 1.8.2
    • pkg-config version 0.29.1

[✓] Android Studio (version 4.0)
    • Android Studio at /home/tirth/android-studio
    • Flutter plugin version 48.1.2
    • Dart plugin version 193.7547
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] IntelliJ IDEA Ultimate Edition (version 2019.3)
    • IntelliJ at /home/tirth/idea-IU-193.6015.39
    • Flutter plugin version 45.1.2
    • Dart plugin version 193.6015.53

[✓] VS Code (version 1.48.2)
    • VS Code at /usr/share/code
    • Flutter extension version 3.13.2

[✓] Connected device (3 available)
    • Linux (desktop)  • linux      • linux-x64      • Linux
    • Web Server (web) • web-server • web-javascript • Flutter Tools
    • Chrome (web)     • chrome     • web-javascript • Google Chrome 85.0.4183.83

• No issues found!

Example

import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp(
      home: Scaffold(
        body: Center(
          child: TextFormField(),
        ),
      ),
    ),
  );
}

// Just use TextFormField. Try focusing or typing on it and it'll crash.

Can anyone please help here?

Hi @piedcipher
I cannot reproduce this issue on latest master channel.
Can you upgrade to master and try again
flutter channel master
flutter upgrade --force
flutter doctor -v

@pedromassangocode I tried that. I'm still facing the same issue.
This issue only occurs in desktop.

Can someone experiencing this run under gdb or lldb and get a stack trace for the crash?
Also it would be useful to know if anyone seeing this has previously had working text input (i.e., is this a regression for you, or had you not previously used text input?)

Can someone experiencing this run under gdb or lldb and get a stack trace for the crash?

How can I do it?

Also it would be useful to know if anyone seeing this has previously had working text input (i.e., is this a regression for you, or had you not previously used text input?)

I've never used a text input widget in a desktop app before this.

@stuartmorgan
So tried lldb in dev channel, app is launched but engine fails to start with:
Process 33963 launched: '/home/taha/AndroidStudioProjects/myapp/build/linux/release/myapp' (x86_64)
embedder.cc (598): 'FlutterEngineCreateAOTData' returned 'kInvalidArguments'. Invalid ELF path specified.

** (myapp:33963): WARNING **: 13:42:04.774: Failed to start Flutter engine: Failed to create AOT data

Normal run on dev channel has no issue when typing a character on TextFormField. When launched Linux with lldb, window opens but not render anything since engine failed to start.

myapp/build/linux/release/myapp

You can't run that copy of the binary; see https://github.com/flutter/flutter/issues/64963

Normal run on dev channel has no issue when typing a character on TextFormField.

If you can't reproduce the issue, I'm not sure why you are trying to run it under a debugger.

Can someone experiencing this run under gdb or lldb and get a stack trace for the crash?

How can I do it?

For gdb, it should be:
$ gdb build/linux/debug/bundle/your_app_name_here
> run
> bt

That should print the backtrace for the crash. We'll have to see how useful it is without a symbolicated engine build, but it should be a start.

Can someone experiencing this run under gdb or lldb and get a stack trace for the crash?

How can I do it?

For gdb, it should be:
$ gdb build/linux/debug/bundle/your_app_name_here
> run
> bt

That should print the backtrace for the crash. We'll have to see how useful it is without a symbolicated engine build, but it should be a start.

tirth@piedcipher:~/AndroidStudioProjects/textfield$ gdb build/linux/debug/bundle/textfield
GNU gdb (Ubuntu 8.1-0ubuntu3.2) <IP_ADDRESS>80409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
---Type <return> to continue, or q <return> to quit---
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from build/linux/debug/bundle/textfield...done.
(gdb) run
Starting program: /home/tirth/AndroidStudioProjects/textfield/build/linux/debug/bundle/textfield
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffea26c700 (LWP 15375)]
[New Thread 0x7fffe9a6b700 (LWP 15376)]
[New Thread 0x7fffe905d700 (LWP 15377)]
[New Thread 0x7fffdbfff700 (LWP 15378)]
[New Thread 0x7fffd8c13700 (LWP 15380)]
[New Thread 0x7fffd155b700 (LWP 15381)]
[New Thread 0x7fffd0d5a700 (LWP 15382)]
[New Thread 0x7fffc2151700 (LWP 15383)]
[New Thread 0x7fffc1950700 (LWP 15384)]
[New Thread 0x7fffc114f700 (LWP 15385)]
[New Thread 0x7fffc094e700 (LWP 15386)]
[New Thread 0x7fffd8336700 (LWP 15387)]
[New Thread 0x7fffd0254700 (LWP 15388)]
[New Thread 0x7fffbbaff700 (LWP 15389)]
[New Thread 0x7fffbb9fe700 (LWP 15390)]
flutter: Observatory listening on http://<IP_ADDRESS>:42415/Y_Y6-CqYhrA=/
[New Thread 0x7fffaebff700 (LWP 15391)]

Thread 1 "textfield" received signal SIGSEGV, Segmentation fault.
0x00007ffff721e1f2 in ?? () from /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
(gdb) bt
#0  0x00007ffff721e1f2 in  () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#1  0x00007ffff725446e in gdk_x11_window_get_xid () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#2  0x00007fff91bfcf7b in  () at /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-xim.so
#3  0x00007ffff76de513 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#4  0x00007ffff5925e6c in fl_text_input_plugin_filter_keypress ()
    at /home/tirth/AndroidStudioProjects/textfield/build/linux/debug/bundle/lib/libflutter_linux_gtk.so
#5  0x00007ffff5929066 in fl_view_key_press_event(_GtkWidget*, _GdkEventKey*) ()
    at /home/tirth/AndroidStudioProjects/textfield/build/linux/debug/bundle/lib/libflutter_linux_gtk.so
#6  0x00007ffff76fe8f7 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#7  0x00007ffff4048250 in  () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#8  0x00007ffff40633cd in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#9  0x00007ffff406412f in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
---Type <return> to continue, or q <return> to quit---

From the pattern (libgtk->im-xim->libgdk in gdk_x11_window_get_xid->libgdk`) it looks like this could be https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1194; the stacks in the linked bugs look like that.
@robert-ancell Do we just need to tell people hitting this to remove xim and/or update GTK?

I don't know enough detail about XIM but if the GTK devs say it is broken then yeah, it's probably a bad idea to use it.
What distribution is this? Can we make flutter doctor show some information like that (pull some fields out of /etc/os-release?).

I'm using Ubuntu Mate.
tirth@piedcipher:~$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.5 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.5 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

Any updates on this?

cc @csells

@piedcipher Does typing in gtk-demo or another simple GTK app work for you, or does it crash in the same way?
Also, have you tried using IBus instead of XIM (per the earlier link)? If so, does that resolve the issue?

gtk-demo refers to Flutter Gallery app?

gtk-demo refers to Flutter Gallery app?

No, to the stock GTK demo application (unrelated to Flutter). Since you're on ubuntu I believe the package is to install it is gtk-3-examples.

I tried Search Entry example in gtk3-demo and I didn't face any issue.

/cc @cbracken

@therenca Does this issue still happen for you? We haven't been able to reproduce it.

no the issue was resolved......with the latest commit, keyboard is working well.


NETBEANS-59 - Document split actions

Cleaned up code as discussed here: #1
Everything fine now?

Did this need a second PR?  Could it not have been done in the first one?

Maybe not, but I reverted everything, cloned the repo new, pulled from the original master, created a new branch, copied over the files manually and change the line endings.

Of course, it's much easier to read since there are no more newline changes.
What this patch seems to do is add an @ActionReference so we can have shortcuts for those 3 actions.
So, as a fix I would have preferred 2 commits:

one fixing in-place the existing actions (in order to see the actual meat) and
another commit refactoring the classes.

I seems the existing static inner classes might have been sufficient: you could have just made them public. You could have introduced SplitDocumentHorizontallyAction which just extends SplitDocumentAction and calls super(tc, JSplitPane.HORIZONTAL_SPLIT). Same for SplitDocumentVerticallyAction.
I believe initTopComponent only exists so you can have a no-arg constructor which is odd because you are instantiating the actions manually (so it must have to do with the registrations). Also, you know that (tc instanceof Splitable && ((Splitable)tc).canSplit()) before it's called.
So, what I am curious to learn is how does the shortcut work for your manually created instance?

Can one of the admins verify this patch?

Smth missing here for the merge?

@Chris2011 I don't see any new commits based on my comment from Sep 23rd.

Most of the code, was only moved out to separated the code and created actions, I only created one base class by my self. You only mean that I should split it up to 2 commits?
The last sentence I don't understand in your comment:

So, what I am curious to learn is how does the shortcut work for your manually created instance?

I wrote a rather long message in September. Does nothing I said there make sense?
It hard to review a patch that has +320 line and −101 lines in a single commit.
From what I remember and what I deduced while trying to figure it out, you just added an @actionreference and some helper class then refactored.
Reviewing would be much simpler if refactoring would be a separate commit.

The last sentence I don't understand in your comment:

So, what I am curious to learn is how does the shortcut work for your manually created instance?

I was just curious how the solution even works considering the action is created manually and not by the Platform. How does the shortcut plumbing work? Because, maybe you don't even need an @actionreference?

It hard to review a patch that has +320 line and −101 lines in a single commit.
This is what I didn't get yet, I didn't get your point of this. Thx it is clearer.

Yes, I added 3 ActionReferences for 3 new actions "Split Action Horizontally", "Split Action Vertically" and "Clear Split" because those actions didn't exist. Now you can change the hotkeys for each of them, which was not possible before.
I only set such ActionReferences to have Actions, where I can add shortcuts to it. It is from the official Documentation I think, how we can create actions. I don't know an other way. Only the layer.xml but this is obsoleted I think(?)

But if you instantiate the action manually with new SplitDocumentVerticallyAction how is the shortcut set? Maybe I'm missing something really obvious.

The shortcut is set here: https://github.com/apache/incubator-netbeans/pull/1/commits/67bdd60109474c543c010d3f818cfb36abb9c0c9#r150193869
The functionality is still there, if you right click on an editor tab -> Split -> Vertically. So I decoupled the functionality from https://github.com/apache/incubator-netbeans/pull/3/commits/5dc272ebffd95dfd55720ebfdd697d8ff319c862#diff-c2b5538f4bdcf56983c605aebf73887a and created new classes for each action to set the ActionReference.
Now you can use the functionality like before via Right click on editor tab -> Split -> Vertically OR you can use the shortcut, which I set to Ctrl + Alt + Shift + V or you can set your own.

Please see my latest commits, I splitted my one commit into two as requested. Thx.

@sdedic markiewb and me had a coding session yesterday. Big thx to him. He helped me a lot with other stuff and with this PR. So in general we fixed everything what was requested (Refactoring, simplifications, etc.). Hope this is now enough to merge the request.
We tested all actions. View -> Split; Window -> Configure Window -> Split Document; Right Click on an editor tab -> Split; And my shortcuts.
@emilianbold Yes those are 2 instances. One for the menu actions and one for my shortcuts via the ActionReference. But both of us, don't see any problem with this. We added some comments too to describe the constructors a bit better.
Cheers
Chris

Great. So @Chris2011, from your and markiewb point of view, everything is now done and there's nothing at all that should block this one from being accepted?

@geertjanw right. We don't see any other problems with that stuff. Maybe an other can test it before, if someone wants it. But from our pov, everything should be fine.

Would be good for @sdedic and @emilianbold to take a quick look.

@emilianbold ok I understand your point. Maybe I not finished my thinking about the refactoring part. Anyway, I'm fine with merging your PR into my branch and will push it again. Thx for anything :)

So now I tested and merged the changes from @emilianbold PR to my PR. Hope now everything is fine.

So I will wait until next friday and will merge, if it is allowed(?) Please leave a last comment thx :)

Sure, happy to merge this, if @emilianbold gives his final OK, since he's worked with you a lot on this.

:+1:

Hm, maybe there was smth wrong with the merge :/. Sry about that. Will change and test it later. Thx @emilianbold

I fixed most of the requested changes now.

@emilianbold can you check it again please?

Take a look at this diff https://github.com/apache/incubator-netbeans/compare/master...emilianbold:feature/248233-doc-split-actions and compare with this PR's changes https://github.com/apache/incubator-netbeans/pull/3/files

@Chris2011 Maybe, Emi says it is better to add only the necessary changes. e.g. You added some new lines. BTW, you should use /* as the first line of license header instead of /**.

I thought I only added that, what emi suggested. So after this, the merge was kind of "broken" so I tried to fix it manually.

But in my opinion, this shouldn't be so bad to merge it now. It is as it is, but the concept was to make is simple and only do, what needed. And this was done now.

But in my opinion, this shouldn't be so bad to merge it now. It is as it is, but the concept was to make is simple and only do, what needed. And this was done now.

I personally prefer patches to be tight and not reformat code, or add random lines or whitespace, or fix unrelated bugs, etc.
The PR is not "so bad" to be un-mergeable right not but you are also 99% done and instead of posting that comment you could have amended the commit and be done with it.

@emilianbold thx for your opinion and I really know what I mean. I will be more strict in the next PRs and will keep your opinion in mind and everything, what you said. I really can understand what you mean. I will merge the PR now, if there are no other big problems from whoever. Thx for the great discussion.

I'm not sure why you don't change that...
NOTE: You should not merge this using "Merge pull request" button as it is. This PR includes many irrelevant commits.

I suppose you should fix the license header although it is a trivial thing.
@matthiasblaesing Could you help this? I think that Chris should rebase and squash this PR in Chris's local machine or someone should merge it using "Squash and merge" button.

@junichi11 Sry, I missed the point with the header. Will fix it. Thx. Yeah maybe I need some help with that, what is not working out. I rebased, and my stuff is on top of it.

I tried a classic git rebase - I'll make it short: I aborted it, as it ended with a lot of merge conflicts. The history of this PR is long and winding and this makes it hard.
In this case I would try the github "Squash and merge" variant. This should result in one commit in the history.
You could do it by hand:

checkout master into a working branch lets call it pr3-merged
make sure you have github PRs fetched (in my case the remote is called github) - if so there should be a branch github/pr/3 which holds the changes from this PR
merge github/pr/3 into pr3-merged
create a diff between master and pr3-merged: git diff master..pr3-merged > ../pr3.patch the output can be outputted into a file and that patch is the core of this PR
now you could switch your clone back to master
delete the feature/248233-doc-split-actions branch locally
checkout master as a new branch feature/248233-doc-split-actions
apply the patch created above via git apply ../pr3.patch
commit the changes
force push into the existing feature/248233-doc-split-actions in the repository Chris2011

If you have done it before, this can be done quickly, if not, I would not start in a big repository like netbeans :-)

@matthiasblaesing Thanks a lot for your help!

In this case I would try the github "Squash and merge" variant. This should result in one commit in the history.

:+1:
Could you merge this PR if it's OK with Chris?
BTW, diff of this PR is here: https://github.com/apache/incubator-netbeans/pull/3.diff
So, in this case, Chris might be able to use the following steps:

Download the diff file as a patch
Rename the branch: e.g. git branch -m feature/248233-doc-split-actions-old
Checkout master (see Matthias's comment)
Apply the patch (see Matthias's comment)
Force push (see Matthias's comment. Especially, please note "in the repository Chris2011".)

Chris is a committer, so he can commit himself. @Chris2011 if you need help, feel free to contact me.

Sure. Anyway, I wanted to avoid merging it as it is :)

Will try that. Thx.

So now, everyhing should be fine now. I renamed the old branch, made a clean one, updated all branches that is needed, applied the patch, changed the line endings from CRLF to Unix LF. 3 files are new, which are the 3 actions (ClearSplit, SplitDocumentVerticallyAction and SplitDocumentHorizontallyAction). The SplitAction.java file only removes some Bundle messages.
Atm, I don't know why is the SplitAction completely red and green again but finally, it shouldn't matter now. Everything was discussed earlier. Please merge now.

Please recheck SplitAction - it now has windows line endings (\r\n), which is also the reason, that it looks so red.

This is what I said, I already checked all files, expecially SplitAction. I change the line endings from CRLF to Unix LF before I applied the patch. I checked it doubled after I applied the patch and it was still LF.

Hm, I closed the file and reopened it, now it is CRLF, will fix it.

It doesn't make sense to change it now to LF and amend the commit, right? Do I have to do it again? I mean applying the patch and fix the line endings?

If you change line endings, do an amend commit and then force push that should do it.

Got it.

You now lost the commit message :-) - When you amend you need to keep in mind, that you replace the previous commit.

Hm, ok. I thoght they will merged together. The Message too. But this should Not be a Problem now. Now I know it and will make it better next time :).

Why wait? An amend commit is possible without any file changes, so you can still fix the commit message. Same procedure s before:  Start the amend commit, check/update the message, finish the commit, force push.
Am 15. September 2018 23:26:34 MESZ schrieb Chrizzly<EMAIL_ADDRESS>
Hm, ok. I thoght they will merged together. The Message too. But this
should Not be a Problem now. Now I know it and will make it better next
time :).

Done.

Looks better, though I would not choose this message. I would have worded it:
[NETBEANS-59] Separate actions for document splitting to enable shortcuts

<Context explaining why it was implemented the way it was>

It is a summary what was the desired outcome of this commit, which helps to understand the code changes. If an explanation is required why it was implemented the way it was or context should be provided, the further lines of the message can be used. The context is not always required, but helps to put the understand changes years later.
You can change the message or commit as is.


Type assertion on errors fails on wrapped error

https://github.com/ardanlabs/service/blob/master/foundation/validate/validate.go#L47
Convert to the following code:
	var verrors validator.ValidationErrors
		ok := errors.As(err, &verrors)
		if !ok {
			return err
		}
```

Yea, that is a good point. I guess the current code base doesn't not have this situation. Your PR does not have this change, so I can't accept that. I will make this change.


Issue #254, fixing infinite loop in AVL tree

This test reproduced the problem and verified that fixing the typo fixes the problem.

I've removed the codacy integration. It's just not working. We'll have to look at an alternative that works better for native code.

I've removed the codacy integration. It's just not working. We'll have to look at an alternative that works better for native code.

SonarQube looks promising https://github.com/UAVCAN/libuavcan/issues/190


add kafka-zookeeper-${TRAVIS_TAG}.yaml to release

Issue Ref: None
Description:
For unknown reason, the kafka-zookeeper manifest doesn't show up in the release package in previous PR #570. I guess I did something wrong with git squash and merge. This PR corrects it by adding proper kafka-zookeeper-${TRAVIS_TAG}.yaml file to the deploy job.
TODOs:

[x] Ready to review
[ ] Automated Tests
[ ] Docs

sorry for the late response. LGTM


[RFC] Pluggable API documentation generator

Now that the many of the lower-level functions for converting marshmallow Schema and webargs Args to swagger definitions, next step is to implement a system for generating API docs.
Ideas for initial iteration:

Based on Swagger 2.0 spec. This will allow us to leverage the latest Swagger-UI
Pluggable. The documentation generator will work with any web framework, with or without webargs, etc. etc. Plugins provide helpers for imputing metadata.
Easy way to serve swagger docs. Possibly part of the Flask extension.

Ideas for the future:

Generate swagger-based from docstrings.
Sphinx extension?

Proof of concept
I wrote up a simple proof-of-concept in this gist: https://gist.github.com/sloria/dc1b2d2e43fbcea866ae
Prior art

django-rest-swagger
flask-restful-swagger
flask-restplus
cornice (not swagger-based, but may provide ideas for sphinx extension)

I like the direction this is going in, integrating webargs / marshmallow to handle the minutiae around input and output.
Sometimes I think it would be less word to craft the swagger json schema by hand and then pass it into your framework's router and have it enforce, marshal, and pass parsed input directly into your view handler instead of adding decorators on top of decorators.
I guess what I really am getting at is that the current implementations I have seen are not written at a high enough level of abstraction to make them any more useful than implementing it by hand.

Thanks for your input @Trii. I agree with your point re: solutions that essentially require you to write your entire Swagger spec manually (in code).
The idea I'm proposing here is that plugins do the work of "writing" your Swagger spec.  The Flask plugin generates Swagger Paths so you don't have to. Use marshmallow? The marshmallow plugin generates Swagger Schema Object for you. And so on.

Maybe it is out of the scope of this project/thread but is smore intended to enforce the swagger spec inside around your api as well as generate the documentation for you?
It would be awesome if the plugins would also be able to address the task of extracting arguments from a request (via webargs), unmarshaling them into some application-level objects (via marshmallow), injecting the application level objects into the args for your "view function", then marshal your framework output into the output json format (again via marshmallow) as well.
That is the problem I am starting to solve now via the webapp2 parser I submitted to webargs. If that is on the roadmap for smore, I could take a stab at it here instead.

@Trii Sorry for the delayed response. I can't promise that this project will do complete validation against the Swagger spec the development stage. For example, if you pass incorrect arguments to one of the APISpec methods, it may not always raise an exception.
That said, the test suite does validate the output of APISpec--given valid arguments--using swagger-tools.
Re: request parsing and marshalling: webargs should provide all you need (now that it depends on marshmallow). The use_schema and annotations_example might be particularly useful to you.

Closing for now. Any other design feedback should be opened as new issues.


How to validate on update

I'd like to reuse validation functions which are run on document creation to also be used for updates but can't seem to find anything which will do this.
What I currently have is:
Model.updateOne(
  { _id: Types.ObjectId(id) },
  {
    name
  }
).then(data => {
   ...
}).catch(err => {
  // handle validation error
})

Is there a way to run an object through validation before updating? I can't seem to find a method using @pre("update")

since #353 you can use @pre(/^update.*/, () => {}) (RegExp)
so this could be closed
@Ben305


Remove HATEOAS

Remove HATEOAS support, since we don't really evaluate it anyways.

Do you only want to remove the hypermedia support of HATEOAS, or do you want to remove the whole library from the project? Removing the whole library would mean, that we have no paged-resources-information and no resource-support available anymore.

Merged, see #207. Further discussions about pagination in #214.


Keyboard layout wrong in console

I think there are so many layers (client OS / client browser / vnc proxy / VM OS / VM application) it will be simpler to use a standalone viewer.
It is possible to use ssh to create a tunnel for forwarding vnc. For instance :
ssh<EMAIL_ADDRESS>-L 1234:node3:5900 -N

and then connect the vnc client to localhost:1234, using that the keyboard layout works

an account on hades can be created for only ssh tunneling. (not using pim which is my personal account).
1234 is the local port, and can be choosen freely (must be >1024 and not in use).
node3 is the host machine, this can be found in the dashboard
5900 is the port on the host machine. This one is more complicated to get (command line in the host machine...).

For a better user experience:

modify nova-api get-vnc-console to support our console-type.
add a link in the dashboard for connecting to this ssh+vnc console
a custom url handler is relatively easy to implement, something like ssh+vnc://.

I tried the command ssh<EMAIL_ADDRESS>-L 1234:test:11012 -N
But it does not recognize my password whereas I succeeded to log using the web window.

Dear @decaixj,
The keyboard layout over the web based console will probably never work.
We are currently working on alternative solutions:

Without GUI.
Using a VNC server on the client (work in progress).
Using a remote X display (work in progress).

Best regards
Marc

@decaixj
There is now some new documentation for remote access here.

@decaixj  @RandomReaper
Web-based console is not usable without a proper US keyboard. This won't be fixed as alternatives exist (VNC, SSH etc...). See the documentation from the last comment.


⚠ Bofrost.lu has degraded performance

In e450bc6, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1500 ms

Resolved: Bofrost.lu performance has improved in 60f6678 after 6 minutes.


Fix nwc button

This PR fixes the NWC connection button logic to show home.connections_edit when profiles already exist and to show home.connection when no profiles exist

I wanted to rebase and make some changes but I can't push to your branch.
Basically: just create a signal hasPreConfiguredNWC and set it when we're fetching pending requests (it looks like you were doing this originally?).
In solidjs to use a signal you need to call it: {hasPreConfiguredNWC() ? i18n.t("home.connection_edit") : i18n.t("home.connection")}
That should be all that's necessary logic-wise, along with a rebase

closing in favor of #1141 and have you as a co-author there
thank you for this, and sorry for taking so long to get around to it!

Thanks Paul! and no worries at all


Type confusion with shared mutable variable

Bug Report
With the following program:
a = (12..14).to_a

while i = a.pop?
  puts "in while i is #{i}"
  spawn do
    sleep 1
    puts "i of type #{i.class} is #{i}"
  end
end

puts "i is now type #{i.class}"
sleep

It prints:
in while i is 14
in while i is 13
in while i is 12
i is now type Nil
i of type Int32 is 0
i of type Int32 is 0
i of type Int32 is 0

In the fiber, it is interpreting Nil as an Int32 with value 0. Running this in the interpreter crashes with Invalid memory access (signal 11) at address 0xf
Separate from that specific crash but related to the question of fibers and mutable loop variables, I recently had a bug in my first crystal program:
server = TCPServer.new(5839, reuse_port: true)
while client = server.accept?
  spawn do
    block.call(client)
    client.close
  end
end

The same client variable is being shared by each fiber. I fixed with:
loop do
  client = server.accept
  spawn do
    block.call(client)
    client.close
  end
end

the block of loop introduces a new lexical scope and each fiber has a unique client variable. Golang recently introduced a change to make loop variables unique per iteration rather than a shared variable for the whole loop, to avoid this common footgun. Maybe crystal could consider the same with while loop variables, or having to explicity pass a copy of whatever variables you want to spawn blocks rather than automatically closing over them? Or simpler would be to add a method to TCPServer, maybe named server.serve do |client| ... end, that implements that accept and spawn loop so people don't have to code it themselves and risk messing up.

I think the cause of this problem is that while i = a.pop? restricts the type of i to Int32. But the variable is actually declared and closured statically. So by the time the proc executes, its type is actually Nil.
I reckon the closured type does not properly take the actual type into account.
The following simplified version also throws an Invalid memory access error even in compiled mode:
a = [1, nil].each

proc = nil

while x = a.next
  proc = -> do
    puts "#{x} : #{x.class}"
  end
end

proc.not_nil!.call

@bo-tato Could you please create a separate issue for the second aspect of variable scoping? It's unrelated to this bug.

separated it into https://github.com/crystal-lang/crystal/issues/13752


in asp.net i created a button and give the css style as waves-effect waves-light btn not getting the style

in asp.net i created a button and give the css style as waves-effect waves-light btn ... but instead of getting the ripple effect i getting the dark gray shadow in the button text
<asp:Button ID="Button1" CssClass="waves-effect waves-light btn" runat="server" Text="gjramanaa" />

Use <a>  instead.


SQL section of toolbar assumes database supports explain

The SQL section of the toolbar assumes that the database supports explain (probably MySQL is being assumed) and attempts to run the SQL query with explain which results in a 500 error. The toolbar should check the driver before making any such assumptions.

Postgres also suppors EXPLAIN. Which database are you referring to?

SQL Server but I'm sure there are other examples. For instance Oracle might not have that capability and a lot more than MySQL and Postgres are supported by django through ODBC. In fact I'm using django_pyodbc to connect to SQL Server.

I'm testing django-debug-toolbar 2.0a1 and ran into this issue while using an Oracle backend
cx_Oracle.DatabaseError: ORA-01036: illegal variable name/number
djdt tries to run : QUERY = 'EXPLAIN SELECT....
while Oracle expects something like 'EXPLAIN PLAN FOR SELECT...' to get the execution plan
Note: I'm far from an oracle expert.

Django has some support for .explain() since 2017 (https://github.com/django/django/commit/c1c163b42717ed5e051098ebf0e2f5c77810f20e), maybe we could leverage this.
Or maybe insert an additional clause here: https://github.com/jazzband/django-debug-toolbar/blob/58f374a426a6b10dcf86554f6d9c71226b4b350f/debug_toolbar/panels/sql/views.py#L47-L55 -- that should work too and is probably a smaller change.

@matthiask Definitely, if Django does the abstraction for you, then that's the way to go.


Remove ArchiveDiffer from JHU indicator module

JHU runs the ArchiveDiffer internally as part of the module's run() procedure. In order to switch Automation to run JHU using the Indicator Runner, we need to remove this archiving code.
Once this fix goes in, we will need to carefully coordinate the release to prod with an update to the Automation Step definition.

Closed with #1181


GDExtension interface was reworked in Godot 4.1

As of godotengine/godot@9b9482d, the GDExtensionInterface struct was retired in favour of only passing a pointer to gdextension_get_proc_address. This makes the examples in 1.hello-c no longer applicable to the latest Godot version.

Oh, you're right, thanks for the report! I am aware of this change in 4.1, but this repo is a little bit left aside for now.
I'll likely fix it at some point, but I won't promise anything. If you'd like, you can open a PR fixing it (no pressure, do it only if you feel like it).
In the meantime, if you're trying to use GDExtension from C, you may try the GDExtension Lite project, which takes care of all the bindings boilerplate (it is Godot 4.1+ compatible).

It took a while for me to take some time to update the tutorial, but here it is, fixed!
Thanks again, cheers! \o/


Construction of LngString apparently did not work

https://github.com/iiif-prezi/iiif-prezi3/blob/2f38fc6c439264de8caa552f40c455596a97d8cd/iiif_prezi3/skeleton.py#L62-L63
Seems that the construction of the LngString class did not produce the expected output.
from iiif_prezi3 import Manifest
man = Manifest(id="https://test.com",type="Manifest",label={"en": [ "A test" ]})
man.json(exclude_unset=True)

I should have used this ticket but didn't see it so this is now a duplicate of: https://github.com/iiif-prezi/iiif-prezi3/issues/23


Add option to choose character when zero deps

Instead of printing zeroes everywhere in text format, user should be able to choose a space a or dash. It would make the output more readable.

Isn't this implemented (-z)?

Seems like it is, yes! Probably forgot to clean up the bugtracker.


Feature request: add command to quickly switch to previous session

Thank you for this wonderful plugin!
Sometimes I need to quickly switch between two projects (e.g. to reference something). Would it be possible to add a command to switch to the last session? Then a single keystroke key binding could be added to call this command.

Sounds like a good idea

@yvesjans Can you test it please and give feedback?
I pushed this feature to the branch load_recent.
So it will be available for you when you add a branch option to your plugin manager.
-- where you install neovim-project
branch = "load_recent",

:NeovimProjectLoadRecent
btw, you can add [count] prefix to command, like :2NeovimProjectLoadRecent to move up in history by this number

@coffebar that works perfectly, including the count prefix, thanks a lot!

merged into main


1.x: Preserve and format type aliases in extern blocks

This is a straightforward backport of #4164 to resolve rustfmt deleting important code when using the cxx crate; see https://github.com/dtolnay/cxx/issues/330#issuecomment-702233661.

This would be useful for me as well. Thanks for the backport.


Webparts failing to load when serving using multi-component bundles

Perhaps related to #111.
We've recently tried moving our individually bundled webparts/components into a multi-component bundle, as described here.
Going from something like:
"bundles": {
    "workspace-buttons-web-part": {
      "components": [
        {
          "entrypoint": "./lib/webparts/workspaceButtons/WorkspaceButtonsWebPart.js",
          "manifest": "./src/webparts/workspaceButtons/WorkspaceButtonsWebPart.manifest.json"
        }
      ]
    },
    "workspace-document-web-part": {
      "components": [
        {
          "entrypoint": "./lib/webparts/workspaceDocument/WorkspaceDocumentWebPart.js",
          "manifest": "./src/webparts/workspaceDocument/WorkspaceDocumentWebPart.manifest.json"
        }
      ]
    },
    "workspace-comments-web-part": {
      "components": [
        {
          "entrypoint": "./lib/webparts/workspaceComments/WorkspaceCommentsWebPart.js",
          "manifest": "./src/webparts/workspaceComments/WorkspaceCommentsWebPart.manifest.json"
        }
      ]
    }
...

To:
  "bundles": {
    "workspace": {
      "components": [
        {
          "entrypoint": "./lib/webparts/workspaceButtons/WorkspaceButtonsWebPart.js",
          "manifest": "./src/webparts/workspaceButtons/WorkspaceButtonsWebPart.manifest.json"
        },
        {
          "entrypoint": "./lib/webparts/workspaceDocument/WorkspaceDocumentWebPart.js",
          "manifest": "./src/webparts/workspaceDocument/WorkspaceDocumentWebPart.manifest.json"
        },
        {
          "entrypoint": "./lib/webparts/workspaceComments/WorkspaceCommentsWebPart.js",
          "manifest": "./src/webparts/workspaceComments/WorkspaceCommentsWebPart.manifest.json"
        }
      ]
    },
   ...

Now, the components wont load with the same [Object object] error as in the linked issue, and in the console we see errors like the following:

This only happens when serving the project, deploying it as an .sppkg works as expected!
We're using pretty standard fast-serve settings:
config.json
{
  "$schema": "https://raw.githubusercontent.com/s-KaiNet/spfx-fast-serve/master/schema/config.latest.schema.json",
  "cli": {
    "isLibraryComponent": false
  },
  "serve": {
    "open": false,
    "fullScreenErrors": true,
    "loggingLevel": "minimal",
    "hotRefresh": false,
    "eslint": false
  }
}

webpack.extend.js
/*
 * User webpack settings file. You can add your own settings here.
 * Changes from this file will be merged into the base webpack configuration file.
 * This file will not be overwritten by the subsequent spfx-fast-serve calls.
 */

// you can add your project related webpack configuration here, it will be merged using webpack-merge module
// i.e. plugins: [new webpack.Plugin()]
const path = require('path')
const webpackConfig = {
  resolve: {
    alias: {
      '@src': path.resolve(__dirname, '..', 'src'),
    },
  },
}

// for even more fine-grained control, you can apply custom webpack settings using below function
const transformConfig = function (initialWebpackConfig) {
  // transform the initial webpack config here, i.e.
  // initialWebpackConfig.plugins.push(new webpack.Plugin()); etc.
  for (const plugin of initialWebpackConfig.plugins) {
    if (plugin.constructor.name === 'ForkTsCheckerWebpackPlugin') {
      plugin.options.eslint = false
    }
  }

  return initialWebpackConfig
}

module.exports = {
  webpackConfig,
  transformConfig,
}

This is with SPFx 1.18, fast-serve 3.0.7 and fast-serve-helpers 1.18.1
Edit: to mention that there are some externals (officeJs) part of the project as well, dunno if that could affect things.

Finally, I was able to reproduce the issue. It fails for SPFx 1.18, but works for SPFx 1.17 (I don't know why in the previous issue the error was for 1.17 as well). Will take a look what could be done here.

Well, actually it's even more weird. If you add to a page the very first component from your "bundle" list, everything works just fine (in your sample, it's WorkspaceButtonsWebPart). If you add any other component - it fails.

Could you install npm i<EMAIL_ADDRESS>-DE and see if this beta version fixes your issue?

We also noticed the other weirdness when testing different workarounds.
Anyway, the new version seems to have solved it! We've been testing some this morning and everything loads while fast-serving, no errors!

JFYI<EMAIL_ADDRESS>was just published and you can switch to a "normal" version instead of beta.


Check if handle of inherited property in derived HLA class is same/different from handle of same property in base HLA class

A derived interaction/object class uses a different handle for parameters/attributes inherited from a parent class. So if InteractionA defines parameter 1, and InteractionB inherits parameter 1 from InteractionA, the parameter InteractionA.1 will have a different handle than InteractionB.1
The current code, both static and WebGME generated, does not handle this difference in the method setParameterAux / setAttributeAux. The implementation of both methods should be extended to check for all possible parameter handles - even those inherited from parent classes - before handing the call over to the super class implementation.

As the Java-code generator has been completely rewritten, this issue is obsolete.


Implement commitizen?

Since we use semantic-release now, it would make sense to make angularjs style git commits easier. We can have it: https://github.com/commitizen/cz-cli

Yay or nay?

Since it doesn't interfere with anything, I just added the config it to the package.json, you don't have to use it.

+1


TestFoundation: use Thread.sleep(forTimeInterval:) rather than sleep

sleep is not portable; use Thread.sleep(forTimeInterval:).

CC: @karthikkeyan

@swift-ci please test and merge

@compnerd thank you very much for fixing my mistake. Apologies for any inconvenience it may have caused.

@swift-ci please test Linux platform


allow listing for individual genomes

I want to do:
refgenie list -g hg38

but it shows everything.

refgenie list
refgenie 0.6.0
Traceback (most recent call last):
  File "/home/nsheff/.local/bin/refgenie", line 10, in <module>
    sys.exit(main())
  File "/home/nsheff/.local/lib/python3.7/site-packages/refgenie/refgenie.py", line 445, in main
    pfx, genomes, assets, recipes = _exec_list(rgc, args.command == LIST_REMOTE_CMD, args.genome)
  File "/home/nsheff/.local/lib/python3.7/site-packages/refgenie/refgenie.py", line 357, in _exec_list
    assemblies, assets = rgc.list_local(genome=genome)
TypeError: list_local() got an unexpected keyword argument 'genome'

refgenie list -g hg38
refgenie 0.6.0
Traceback (most recent call last):
  File "/home/nsheff/.local/bin/refgenie", line 10, in <module>
    sys.exit(main())
  File "/home/nsheff/.local/lib/python3.7/site-packages/refgenie/refgenie.py", line 445, in main
    pfx, genomes, assets, recipes = _exec_list(rgc, args.command == LIST_REMOTE_CMD, args.genome)
  File "/home/nsheff/.local/lib/python3.7/site-packages/refgenie/refgenie.py", line 357, in _exec_list
    assemblies, assets = rgc.list_local(genome=genome)
TypeError: list_local() got an unexpected keyword argument 'genome'

you just forgot to bump the minimim version of refgenconf required.


AttributeError: 'Array' object has no attribute 'shape'

Reporting a bug
I use @generated_jit(nopython=True)
@generated_jit(nopython=True)
def letterbox(img, new_shape=(640, 640), color=(114, 114, 114), auto=True, scaleFill=False, scaleup=True):
# Resize image to a 32-pixel-multiple rectangle https://github.com/ultralytics/yolov3/issues/232
shape = img.shape[:2]  # current shape [height, width]
if isinstance(new_shape, int):
new_shape = (new_shape, new_shape)
# Scale ratio (new / old)
r = min(new_shape[0] / shape[0], new_shape[1] / shape[1])
if not scaleup:  # only scale down, do not scale up (for better test mAP)
    r = min(r, 1.0)

# Compute padding
ratio = r, r  # width, height ratios
new_unpad = int(round(shape[1] * r)), int(round(shape[0] * r))
dw, dh = new_shape[1] - new_unpad[0], new_shape[0] - new_unpad[1]  # wh padding
if auto:  # minimum rectangle
    dw, dh = np.mod(dw, 64), np.mod(dh, 64)  # wh padding
elif scaleFill:  # stretch
    dw, dh = 0.0, 0.0
    new_unpad = (new_shape[1], new_shape[0])
    ratio = new_shape[1] / shape[1], new_shape[0] / shape[0]  # width, height ratios

dw /= 2  # divide padding into 2 sides
dh /= 2

if shape[::-1] != new_unpad:  # resize
    img = cv2.resize(img, new_unpad, interpolation=cv2.INTER_LINEAR)
top, bottom = int(round(dh - 0.1)), int(round(dh + 0.1))
left, right = int(round(dw - 0.1)), int(round(dw + 0.1))
img = cv2.copyMakeBorder(img, top, bottom, left, right, cv2.BORDER_CONSTANT, value=color)  # add border
return img, ratio, (dw, dh)

the error
img = letterbox(img0, new_shape=self.img_size)[0]
File "/home/delight-gpu/anaconda3/envs/hrnet3dpose/lib/python3.8/site-packages/numba/core/dispatcher.py", line 439, in _compile_for_args
raise e
File "/home/delight-gpu/anaconda3/envs/hrnet3dpose/lib/python3.8/site-packages/numba/core/dispatcher.py", line 372, in _compile_for_args
return_val = self.compile(tuple(argtypes))
File "/home/delight-gpu/anaconda3/envs/hrnet3dpose/lib/python3.8/site-packages/numba/core/dispatcher.py", line 909, in compile
cres = self._compiler.compile(args, return_type)
File "/home/delight-gpu/anaconda3/envs/hrnet3dpose/lib/python3.8/site-packages/numba/core/dispatcher.py", line 79, in compile
status, retval = self._compile_cached(args, return_type)
File "/home/delight-gpu/anaconda3/envs/hrnet3dpose/lib/python3.8/site-packages/numba/core/dispatcher.py", line 93, in _compile_cached
retval = self._compile_core(args, return_type)
File "/home/delight-gpu/anaconda3/envs/hrnet3dpose/lib/python3.8/site-packages/numba/core/dispatcher.py", line 105, in _compile_core
impl = self._get_implementation(args, {})
File "/home/delight-gpu/anaconda3/envs/hrnet3dpose/lib/python3.8/site-packages/numba/core/dispatcher.py", line 141, in _get_implementation
impl = self.py_func(*args, **kws)
File "/home/azuryl/project/3dpose/V5_dSort_Vibe/yolov5/utils/datasets.py", line 698, in letterbox
shape = img.shape[:2]  # current shape [height, width]
AttributeError: 'Array' object has no attribute 'shape'

[x] I have tried using the latest released version of Numba (most recent is
visible in the change log (https://github.com/numba/numba/blob/master/CHANGE_LOG).
[x] I have included a self contained code sample to reproduce the problem.
i.e. it's possible to run as 'python bug.py'.

@azuryl thank you for reporting this, it seems the text is malformatted, for future reference triple backticks are needed around a code block (with optional language syntax specified), for example: ```python <your code> ```. GitHub also has a basic guide to its markdown syntax available here. For now, I will modify the submission to fixup the syntax and formatting.

@azuryl I took a closer look at the issue you submitted. Unfortunately, the example is missing both the appropriate import statements and also the lines and data needed to execute the code. In order to take a closer look I would like to run the example  on my machine to reproduce the error. Would you be so kind as to update the example with appropriate imports and a line (or lines) that invoke the function in question, thank you!

@azuryl I took a closer look at the issue you submitted. Unfortunately, the example is missing both the appropriate import statements and also the lines and data needed to execute the code. In order to take a closer look I would like to run the example on my machine to reproduce the error. Would you be so kind as to update the example with appropriate imports and a line (or lines) that invoke the function in question, thank you!

Dear  esc
my code is from
https://github.com/ultralytics/yolov5/blob/master/utils/datasets.py#L821
`
import numba
from numba import jit,geneated_jit,types
@geneated_jit(nopython=True)
def letterbox(img, new_shape=(640, 640), color=(114, 114, 114), auto=True, scaleFill=False, scaleup=True, stride=32):
# Resize and pad image while meeting stride-multiple constraints
shape = img.shape[:2]  # current shape [height, width]
if isinstance(new_shape, types.int64):#I replaced int by  types.int64
new_shape = (new_shape, new_shape)
# Scale ratio (new / old)
r = min(new_shape[0] / shape[0], new_shape[1] / shape[1])
if not scaleup:  # only scale down, do not scale up (for better test mAP)
    r = min(r, 1.0)

# Compute padding
ratio = r, r  # width, height ratios
new_unpad = int(round(shape[1] * r)), int(round(shape[0] * r))
dw, dh = new_shape[1] - new_unpad[0], new_shape[0] - new_unpad[1]  # wh padding
if auto:  # minimum rectangle
    dw, dh = np.mod(dw, stride), np.mod(dh, stride)  # wh padding
elif scaleFill:  # stretch
    dw, dh = 0.0, 0.0
    new_unpad = (new_shape[1], new_shape[0])
    ratio = new_shape[1] / shape[1], new_shape[0] / shape[0]  # width, height ratios

dw /= 2  # divide padding into 2 sides
dh /= 2

if shape[::-1] != new_unpad:  # resize
    img = cv2.resize(img, new_unpad, interpolation=cv2.INTER_LINEAR)
top, bottom = int(round(dh - 0.1)), int(round(dh + 0.1))
left, right = int(round(dw - 0.1)), int(round(dw + 0.1))
img = cv2.copyMakeBorder(img, top, bottom, left, right, cv2.BORDER_CONSTANT, value=color)  # add border
return img, ratio, (dw, dh)`

@azuryl thank you for updating this. From what you wrote, I am assuming you would like to try to accelerate  letterbox with Numba? If yes, then using @generated_jit probably isn't the correct function to use, but instead try to use @njit. However, I also see that function includes cv library calls that Numba will not be able to handle, so @njit may not work either.
It might be worth reading the 5 min guide to Numba here https://numba.readthedocs.io/en/stable/user/5minguide.html -- to get a better picture of how to use Numba and what it can do for you.

Dear esc
even I am not use opencv lib and use @njit the AttributeError: 'Array' object has no attribute 'shape'  is also occured

Dear esc
even I am not use opencv lib and use @njit the AttributeError: 'Array' object has no attribute 'shape' is also occured

When using generated_jit (https://numba.pydata.org/numba-doc/dev/user/generated-jit.html) the structure of the function is:
@generated_jit
def fun(ham):
    # typing context, we here have the type object for ham
    def impl(ham):
        # implementation context, we here have the concrete instance of ham
        pass
    return  impl

So, what you are seeing in your code is that you try to call shape on the type object for the array, not the actual array instance. Type
This should not happen with @njit -- if it does, please do submit a code snippet to illustrate how and where this fails, thank you! (Please remember to include the import statements, the function being executed and some line or lines to call the function itself.)
Hope this helps.

Closing this as no further follow-up has been received. For further discussion / questions like this, the Discourse group is a good place to post: https://numba.discourse.group


Uploading files in the feature/fetch-and-display-mission

PR Description:
Created ./src/components/Missions.js
Created ./src/redux/missionsSlice.js
Created ./styles/Missions.css
Implement mission leaving - Actions
Implement mission joining - Actions
Fetch missions - Fetch data
Display missions - Lists render
The UI after npm start looked like the following:

Please give your review.
Thanks

Highlights

Code is working as expected
no linter errors


Exception in old OAV pin tip code causing detector to not get armed

We have seen a number of occurrences of the detector failing to get armed following an exception from trying to read the AreaDetector pin tip centring. See here
Note, to fix this it may just be easier to port the grid detection code over to use the newer pin tip detection, rather than work out why this is happening (https://github.com/DiamondLightSource/hyperion/issues/1068)

Deployed yesterday and saw no similar bugs overnight, I'm going to call this done


Pages update auto built from graphscope/web, commit a6c22e1

What do these changes do?

Related issue number

Fixes

 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.


Not able to include in visual studio code?

I'm currently having an issue to where visual studio code is not recognizing the include of the json.hpp file no matter what I do in the IDE, I don't admittedly know if the issue is being caused by the IDE, my own silly mistake, or by the way the json library is installed. I used linuxbrew on Ubuntu Server 16.04 LTS in order to install it, and I have the latest stable version. I'm using the g++ compiler (version 5.5 I believe)

I'm still new to this, so I included screenshots of the error it brings up along with how it is mentioned in the code in order to hopefully provide some insight as to what is going on. Feel free to ask if more information is needed. I'm using Ctrl+Shift+b in visual studio code to build it.
Edit: I also posted the question on stack overflow where I seem to be receiving some help too: https://stackoverflow.com/questions/51707031/nlohmann-json-c-include-issue/51707933?noredirect=1#comment90377076_51707933

Thanks for checking back!


How do you work around broken haskell packages?

Apologies if this doesn't belong here, I can post it somewhere else if needed.
My problem
In #83380 I ran into an issue trying to use beam-core with nixos. I know from experience that it's probably not building because nixpkgs has a newer hashable and/or vector-sized than the constraints of beam-core allow which looked to be resolved in the next beam release.
So the fix here that would have let me continue using nix instead of using stack would be to use the version of beam-core from github.
I understand plain nix can be used for this, but it's hard to recall. It's hard to recall because I have to keep reverting back to stack. This issue is a large part of the reason I can't just use nix by default.
My Attempt
Where I'm at
I started by just trying to use nix-shell -p '(haskellPackages.ghcWithPackages (p: [p.beam-core p.beam-sqlite p.text]))' mostly because I couldn't remember how to make a shell.nix. Stack for instance lets you just use either stack init or stack new for this case.
Saying that though, I remember I can generate a default.nix and shell.nix with cabal2nix.
Generating default.nix and shell.nix
$ cabal2nix . > default.nix  # remembering this is easy enough
$ cabal2nix --shell . > default.nix # I only remember I can use --shell here because of the amount of times i've tried to do this, I think many others would have given up

Maybe generating both default.nix and shell.nix when calling cabal2nix init would be a good idea?
The observant might notice I overwrote default.nix with the shell version. I make this mistake often, so one command to generate these common files to get started would be nice.
Quick pause
Now I've got the equivalent of my original nix-shell -p '(haskellPackages.ghcWithPackages (p: [p.beam-core p.beam-sqlite p.text]))' command (almost, I didn't have text in my cabal file).
I can just run nix-shell now, it will use shell.nix by default, and I'll get the same error.
Using latest beam-core from git
So by luck, I noticed when I accidentally executed cabal2nix with no parameters that it can do things like:
  Recognized URI schemes:

    cabal://pkgname-pkgversion     download the specified package from Hackage
    cabal://pkgname                download latest version of this package from Hackage
    file:///local/path             load the Cabal file from the local disk
    /local/path                    abbreviated version of file URI
    <git/svn/bzr/hg URL>           download the source from the specified repository

That means I can just call cabal2nix on the git clone url right?
[cody@nixos:~/code/beam-minimal-newtype-problem-repro]$ cabal2nix git@github.com:tathougies/beam.git > beam.nix
error: unable to download 'git@github.com:tathougies/beam.git': URL using bad/illegal format or missing URL (3)
Initialized empty Git repository in /tmp/git-checkout-tmp-ycaxCEHw/beam/.git/
remote: Enumerating objects: 274, done.
remote: Counting objects: 100% (274/274), done.
remote: Compressing objects: 100% (238/238), done.
remote: Total 274 (delta 20), reused 89 (delta 10), pack-reused 0
Receiving objects: 100% (274/274), 1.18 MiB | 1.21 MiB/s, done.
Resolving deltas: 100% (20/20), done.
From github.com:tathougies/beam
 * branch            HEAD       -> FETCH_HEAD
Switched to a new branch 'fetchgit'
removing `.git'...

git revision is ff6d16daa189355db4cf24e90d8173768c1418bb
path is /nix/store/grxnkp115a3i4cln9j08gpwf6ks677fl-beam
git human-readable version is -- none --
Commit date is 2020-03-05 21:34:59 -0500
hash is 11f1nrw3s7ihf3lyskjx1mdfi4s5d3rfn0fwwmcc8xl2dgjdlnk8
abort: repository git@github.com:tathougies/beam.git not found!
svn: E155007: '/home/cody/code/beam-minimal-newtype-problem-repro/git@github.com:tathougies/beam.git' is not a working copy
failed to open trace file: [Errno 2] No such file or directory: '/homeless-shelter/.bzr.log'
bzr: ERROR: Unsupported protocol for url "git@github.com:tathougies/beam.git"
cabal2nix: user error (Failed to fetch source. Does this source exist? Source {sourceUrl = "git@github.com:tathougies/beam.git", sourceRevision = "", sourceHash = UnknownHash, sourceCabalDir = ""})

Hmm, okay let's try the https url then (note though that by default most developers will probably have git:// urls selected by default):
[cody@nixos:~/code/beam-minimal-newtype-problem-repro]$ cabal2nix https://github.com/tathougies/beam.git > beam.nix
[0.1 MiB DL]
*** parsing cabal file: https://github.com/tathougies/beam.git: openBinaryFile: does not exist (No such file or directory)
Initialized empty Git repository in /tmp/git-checkout-tmp-OLvN5dsF/beam/.git/
remote: Enumerating objects: 274, done.
remote: Counting objects: 100% (274/274), done.
remote: Compressing objects: 100% (238/238), done.
remote: Total 274 (delta 20), reused 89 (delta 10), pack-reused 0
Receiving objects: 100% (274/274), 1.18 MiB | 1.51 MiB/s, done.
Resolving deltas: 100% (20/20), done.
From https://github.com/tathougies/beam
 * branch            HEAD       -> FETCH_HEAD
Switched to a new branch 'fetchgit'
removing `.git'...

git revision is ff6d16daa189355db4cf24e90d8173768c1418bb
path is /nix/store/grxnkp115a3i4cln9j08gpwf6ks677fl-beam
git human-readable version is -- none --
Commit date is 2020-03-05 21:34:59 -0500
hash is 11f1nrw3s7ihf3lyskjx1mdfi4s5d3rfn0fwwmcc8xl2dgjdlnk8
abort: 'https://github.com/tathougies/beam.git' does not appear to be an hg repository:
---%<--- (text/html; charset=utf-8)

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
  <link rel="dns-prefetch" href="https://github.githubassets.com">
  <link rel="dns-prefetch" href="https://avatars0.githubusercontent.com">
  <link rel="dns-prefetch" href="https://avatars1.githubusercontent.com">
  <link rel="dns-prefetch" href="https://avatars2.githubusercontent.com">
  <link rel="dns-prefetch" href="https://avatars3.githubusercontent.com">
  <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com">
  <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">

  <link crossorigin="anonymous" media="all" integrity="sha512-5Bs4ERl99/u2AUfpOZF2F0cdfNby7+Vd9teUshXUBPo5CjwECR7IAEf+weI/eCk5tF7K1h3O8hd8k0+P/HePeg==" rel="stylesheet" href="https://github.githubassets.com/assets/frameworks-e41b3811197df7fbb60147e939917617.css" />
  <link crossorigin="anonymous" media="all" integrity="sha512-iXrV/b4ypc1nr10b3Giikqff+qAx5osQ0yJRxHRDd8mKFefdMtEZ0Sxs1QysJxuJBayOKThjsuMjynwBJQq0aw==" rel="styleshee
---%<---
!

No luck there either it seems. Luckily since i've ran into this before, I know that beam is a repo with multiple cabal projects and cabal2nix might not handle those.
Let's go checkout the cabal2nix issues.
It looks like someone shares my issues in NixOS/cabal2nix#440
Support cabal.project files #286 is likely the one biting me now I think. I just verified beam does in fact have a cabal.project file.
"Until this ticket gets an implementation the solution is to use stack2nix?" - said one commenter
I suppose I could try using stack2nix, nix makes it easy to try those things out with nix-shell.
Trying stack.nix workaround since cabal2nix doesn't work with cabal.project
So now I'm at a new tool and learning how it works. I'll note that stack2nix has taken 3-4 minutes by now, I guess the reason may be that it uses a different GHC version than 8.8.3 I use?
Oh no :(
Setup: Encountered missing or private dependencies:
Cabal >=<IP_ADDRESS> && <2.5,
base >=4.9 && <4.13,
distribution-nixpkgs >=1.1 && <1.3,
optparse-applicative >=0.13.2 && <0.15,
regex-pcre >=0.94.4 && <0.95

builder for '/nix/store/hrz327wypldjrkbj2c3j3nsdhi7rfyd7-stack2nix-0.2.3.drv' failed with exit code 1
error: build of '/nix/store/hrz327wypldjrkbj2c3j3nsdhi7rfyd7-stack2nix-0.2.3.drv' failed

I guess I can't do that one.
I know about this niv dependency thing... maybe it can help
I learned about niv some time back and it seemed very nice. I had a hang-up I don't remember and couldn't put more time in at the moment.
Let's install it:
$ nix-env -iA niv -f https://github.com/nmattia/niv/tarball/master \
    --substituters https://niv.cachix.org \
    --trusted-public-keys niv.cachix.org-1:X32PCg2e/zAm3/uD1ScqW2z/K0LtDyNV7RdaxIuLgQM=
warning: ignoring untrusted substituter 'https://niv.cachix.org'
warning: ignoring the user-specified setting 'trusted-public-keys', because it is a restricted setting and you are not a trusted user
unpacking 'https://github.com/nmattia/niv/tarball/master'...
installing 'niv-0.2.13'
building '/nix/store/46caknkivrcpi3x2yj3dwymhq7kb8hjj-user-environment.drv'...
error: packages '/nix/store/na2q08zpv9l2kxm5xs7ajvykhpws6656-home-manager-path/bin/niv' and '/nix/store/1adlf6i681hki2mmn4glmdi3is796qhy-niv-0.2.13/bin/niv' have the same priority 5; use 'nix-env --set-flag priority NUMBER INSTALLED_PKGNAME' to change the priority of one of the conflicting packages (0 being the highest priority)
builder for '/nix/store/46caknkivrcpi3x2yj3dwymhq7kb8hjj-user-environment.drv' failed with exit code 1
error: build of '/nix/store/46caknkivrcpi3x2yj3dwymhq7kb8hjj-user-environment.drv' failed

Oh no! Wait... That's just an error because I've already installed it with home-manager. I had many battles with this priority issue before understanding I should just uninstall packages everywhere and try again. A better error message would go a long way here I think.
Okay, since I have niv... (Actually I'm out of time for now, will continue this at a later time)

@codygman
Sorry you're having problems with the Haskell infrastructure.
Would you be able to summarize your questions in one or two sentences?  It is slightly hard to follow exactly what you want help with.
Also, if you haven't seen it, you may find some help in the following two resources:

The Haskell section of the nixpkgs manual
https://discourse.nixos.org/t/nix-haskell-development-2020/6170

If you want more real-time help, maybe you could jump on to one of the chat channels listed at the end here: https://discourse.nixos.org/t/call-to-action-for-updating-haskell-packages-after-bump-to-lts-15/6071

You can use nixpkgs provided tools like haskell.lib.doJailbreak to make package ignore its bounds - for example:
nix-shell -p '(haskellPackages.ghcWithPackages (p: [(haskell.lib.doJailbreak p.beam-core)] ))'

although it's probably better to start a small overlay as in your case you might need to fix more than just a top-level package. In my case doJailbreak won't help with building beam-core with ghc883 due to MonadFail (easily fixable):
Database/Beam/Backend/SQL/Row.hs:70:3: error:
    ‘fail’ is not a (visible) method of class ‘Monad’
   |
70 |   fail = FromBackendRowM . liftF . FailParseWith .

What I do in such case is I fork the package from upstream, fix the bug, create a PR and for time being I use my fork instead via overlay.
Make sure to read  https://nixos.org/nixpkgs/manual/#haskell and https://github.com/Gabriel439/haskell-nix
Also don't waste time with stack, in Nix/OS context it's completely redundant concept.

Also don't waste time with stack, in Nix/OS context it's completely redundant concept.

This is incorrect.
stack makes it easy to use past LTS releases (along with old compilers).  It also makes it easy to override single packages.  There is no super-easy way to do this with nix/nixpkgs.
It does this in a way that is not specific to Nix/NixOS, so you can easily collaborate with people who are not using Nix.
There is also nix-specific support built into stack, which can be convenient.
That said, it is often more "nixy" to get everything building without relying on stack.  In my experience, it makes it much easier to get builds running on CI, etc.

Also don't waste time with stack, in Nix/OS context it's completely redundant concept.

This is incorrect.

Well, opinionated at least :) I'm talking about Nix/OS context and my experience.

stack makes it easy to use past LTS releases (along with old compilers). It also makes it easy to override single packages. There is no super-easy way to do this with nix/nixpkgs.

You can do the same with Nix and pinned nixpkgs.

It does this in a way that is not specific to Nix/NixOS, so you can easily collaborate with people who are not using Nix.

That's a valid point but you can easily install Nix in most environments and it can be as easily removed as everything is stored in /nix/store. It also depends on the complexity of the project - like if you manage to keep up with the ecosystem then there's no problem to build your package with either tool or even with plain cabal. Sure the situation is completely different when you have tons of dependencies which needs overrides / specific versions.

There is also nix-specific support built into stack, which can be convenient.

The problem I have with this is it actually makes it more complex than just using cabal2nix or callCabal2nix.

That said, it is often more "nixy" to get everything building without relying on stack. In my experience, it makes it much easier to get builds running on CI, etc.

Yes, also easier to maintain, deploy, reproduce.

Using everything I've learned about nix up to this point including looking at all resources everyone posted (thanks!) I ran into another wall detailed in discourse at Failing to override network dependency for bson.
I want to transition from using stack for most Haskell projects to nix and help others do the same if I gain the benefits I believe I will, but walls like this and lack of resources make me wonder if that's possible.
That's the reason for me posting this issue. Hopefully this concrete example will let us figure out where the gaps are and improve documentation for others trying to migrate to using Nix instead of Stack as well.
As a last note I want to say that I've looked at the manual and I even went into the nixpkgs source code to
try and figure things out. I suppose if I knew how to print out the derivations after a function like developPackage modifies them I could figure it all out even in the absence of better documentation for these specific cases.

(hopefully this is helpful...)
I'm currently writing a blog post on using hakyll with nix, and an issue with unavailable or broken dependencies came up. I found this blog post, https://turbomack.github.io/posts/2020-02-17-cabal-flags-and-nix.html, and it helped me reach this point for a release.nix file:
{ compiler ? "ghc883"
, sources ? import ./nix/sources.nix
}:

let
  overlay = _: pkgz: {
    niv = import sources.niv { };
  };

  pkgs = import sources.nixpkgs {
    config = {
      packageOverrides = pkgz: rec {
        haskellPackages = pkgz.haskellPackages.override {
          overrides = hpNew: hpOld: rec {
            hakyll = hpOld.hakyll.overrideAttrs(oldAttrs: {
              configureFlags = "-f watchServer -f previewServer";
              patches = [ ./hakyll.patch ];
            });
            project = hpNew.callCabal2nix "my-hakyll-project" ./. { };
          };
        };
      };
    };
    overlays = [ overlay ];
  };

  haskellPackages = pkgs.haskell.packages.${compiler};
in
  {
    project = pkgs.haskellPackages.project;

    shell = haskellPackages.shellFor {
      packages = p: with p; [
        pkgs.haskellPackages.project
      ];
      buildInputs = with haskellPackages; [
        ghcid
        hlint
        niv
        #ormolu
        pkgs.cacert
        pkgs.nix
      ];
      withHoogle = true;
    };
  }

And the hakyll.patch file is the result of

forking the original hakyll project
making the changes that fix the build in nix
$ git diff > hakyll.patch
including that file in my projectdiff --git a/hakyll.cabal b/hakyll.cabal
index fcded8d..9746f20 100644
--- a/hakyll.cabal
+++ b/hakyll.cabal
@@ -199,7 +199,7 @@ Library
   If flag(previewServer)
     Build-depends:
       wai             >= 3.2   && < 3.3,
-      warp            >= 3.2   && < 3.3,
+      warp,
       wai-app-static  >= 3.1   && < 3.2,
       http-types      >= 0.9   && < 0.13,
       fsnotify        >= 0.2   && < 0.4

The key part is the packageOverrides bit:
packageOverrides = pkgz: rec {
  haskellPackages = pkgz.haskellPackages.override {
    overrides = hpNew: hpOld: rec {
      # override this package with the original package AND
      # these modified attributes of said package
      hakyll = hpOld.hakyll.overrideAttrs(oldAttrs: {
        configureFlags = "-f watchServer -f previewServer";
        patches = [ ./hakyll.patch ];
      });

      # ...
    };
  };
};

Update: here's something I use that is a little more dense, but the point is that you can have a hpkgs.nix file where you define your updated haskellPackages, then you use that whenever you need to use haskellPackages:
# hpkgs.nix

{ compiler ? "ghc884"
, lib
, pkgs
}:

let
  inherit (pkgs.lib.trivial) flip pipe;
  inherit (pkgs.haskell.lib) appendPatch appendConfigureFlags;

  hakyllFlags = [ "-f" "watchServer" "-f" "previewServer" ];

  haskellPackages = pkgs.haskell.packages.${compiler}.override {
    overrides = hpNew: hpOld: {
      hakyll =
        pipe
           hpOld.hakyll
           [ (flip appendPatch ./hakyll.patch)
             (flip appendConfigureFlags hakyllFlags)
           ];

      # ...
    };
  };
in haskellPackages

There hasn't been any update on this in a while, and I'm not sure if there is an actionable issue here, so I'm going to go ahead and close this.
Feel free to reopen if there is something here that needs to be fixed.


Create  forwarder/internal/retry package.

What does this PR do?
This PR moves the logic related to the retry queue from the forwarder package into a new sub-package forwarder/internal/retry.
In order to do so, the transaction type was moved to its own sub-package forwarder/transaction.
The name of the feature evolved over the time which created inconstancy in the naming of the types. This PR also improves the naming of several types.
No code change is expected in this PR
Motivation
forwarder package starts to be too big.
AC-811.
Additional Notes
Reviewing commit by commit is strongly recommended.
Describe your test plan

Check goexpvars and the telemetry is the same as before (Checking the variable names is enough).
Check the forwarder can store transaction on disk and read them.

@ogaca-dd I just noticed but it would be good to have maybe an idea why this many tests are failing before merging the PR