Open-sourced PipeDLRM

The open-sourced version of PipeDLRM, consisting of 5 functioning components, profiler, optimizer, runtime implementation, modeling and visualizer. PipeDLRM is built on top of DLRM with some components from PipeDream (https://github.com/msr-fiddle/pipedream).

Hi Yanzhao,
I am very curious about your work. Could you please show some more instructions on how to run it in your github? It would help me and the others a lot.
Thanks!

Can we remove the empty "init.py " files

Hi Yanzhao,
I am very curious about your work. Could you please show some more instructions on how to run it in your github? It would help me and the others a lot.
Thanks!

Thank you for your interest in this work, we are currently actively reviewing this PR to merge it in. In the meanwhile please feel free to try it out, you can find the detail instructions here - https://github.com/facebookresearch/dlrm/pull/122/files#diff-22b1984e9055744bcb6b52260dfdfb71

bring the discussion from the email thread back here, perhaps we can look at including some of the Pipedream components here linked as a submodule rather than copy them over ?

Hi Yanzhao,
I am very curious about your work. Could you please show some more instructions on how to run it in your github? It would help me and the others a lot.
Thanks!

Thank you very much for your interest in our project. Besides, you may also check the script (https://github.com/facebookresearch/dlrm/pull/122/files#diff-bc0c739ba93024f3443445a48fd0319b) for running PipeDRLM on the Kaggle DAC dataset with a 3-stage pipeline. Hope it will be helpful.

Can we remove the empty "init.py " files

Sure. Currently, the empty init.py files are used to treat the directories containing this file as Python packages, which will be used in PipeDLRM. We may remove them as we reorganize the codebase.

Hi Yanzhao,
I'm having some trouble running the code and I'm wondering if you could provide some help. I'm mainly confused with the meaning of several variables in shell script.
I currently have one node and 4 GPUs, I'm wondering what are the num_input_rank, nrank and ngpus I should set up correspondingly.
From my understanding, the nranks represents the number of GPUs on one machine, therefore I set it to 4. I've tried several numbers for num_input_rank and so far all of them gave me errors such as:
File "../communication.py", line 42, in init
dist.init_process_group(backend, rank=rank, world_size=world_size)
File "/opt/conda/lib/python3.6/site-packages/torch/distributed/distributed_c10d.py", line 434, in init_process_group
timeout=timeout)
File "/opt/conda/lib/python3.6/site-packages/torch/distributed/distributed_c10d.py", line 505, in _new_process_group_helper
timeout=timeout)
RuntimeError: [../third_party/gloo/gloo/transport/tcp/pair.cc:898] Connect timeout [<IP_ADDRESS>]:26516
Could you please give me some recommendations on how to set these number correctly? Thank you so much!

Hi Yanzhao,
I'm having some trouble running the code and I'm wondering if you could provide some help. I'm mainly confused with the meaning of several variables in shell script.
I currently have one node and 4 GPUs, I'm wondering what are the num_input_rank, nrank and ngpus I should set up correspondingly.
From my understanding, the nranks represents the number of GPUs on one machine, therefore I set it to 4. I've tried several numbers for num_input_rank and so far all of them gave me errors such as:
File "../communication.py", line 42, in init
dist.init_process_group(backend, rank=rank, world_size=world_size)
File "/opt/conda/lib/python3.6/site-packages/torch/distributed/distributed_c10d.py", line 434, in init_process_group
timeout=timeout)
File "/opt/conda/lib/python3.6/site-packages/torch/distributed/distributed_c10d.py", line 505, in _new_process_group_helper
timeout=timeout)
RuntimeError: [../third_party/gloo/gloo/transport/tcp/pair.cc:898] Connect timeout [<IP_ADDRESS>]:26516
Could you please give me some recommendations on how to set these number correctly? Thank you so much!

Thank you very much for your interest in our project.
Sure. The num_input_rank represents the number of replications of stage 0 since stage 0 also handles the input data loader. For your case, you could just set it as 1. The nrank is the number of ranks (GPUs) used for running PipeDLRM. For your case, with num_input_rank=1, you could just set it nrank=3 (3 GPUs <-> 3 Stages, no replication). This setting for this script should be fine.
However, we still need to modify the model configuration file (models/dlrm/gpus=3/$conf_file) correspondingly.
For the above settings, you could just try conf_file=mp_conf.json in this script.

This looks cool!
Agree with @dmudiger that the PipeDream parts of the code can probably be removed from this codebase, especially if you haven't made any changes -- will make the diff easier to look at. If you have some changes to PipeDream that you think would be broadly useful, I am happy to upstream them to PipeDream if you send me a PR.

We are running pipedlrm  with nrank=4 .  In our  case, with num_input_rank=3,  and nrank=4. I am using the default script
"../../exp/pipeline/dlrm_dac_pytorch.sh" to execute.
I am presently observing the following issue :-
File "main_with_runtime.py", line 627, in <module>     num_versions=num_versions, lr=args.learning_rate)   File "../sgd.py", line 23, in __init__     macrobatch=macrobatch,   File "../optimizer.py", line 41, in __init__     master_parameters, **optimizer_args)   File "/opt/conda/lib/python3.6/site-packages/torch/optim/sgd.py", line 68, in __init__     super(SGD, self).__init__(params, defaults)   File "/opt/conda/lib/python3.6/site-packages/torch/optim/optimizer.py", line 47, in __init__     raise ValueError("optimizer got an empty parameter list") ValueError: optimizer got an empty parameter list

We are running pipedlrm with nrank=4 . In our case, with num_input_rank=3, and nrank=4. I am using the default script
"../../exp/pipeline/dlrm_dac_pytorch.sh" to execute.
I am presently observing the following issue :-
File "main_with_runtime.py", line 627, in <module> num_versions=num_versions, lr=args.learning_rate) File "../sgd.py", line 23, in __init__ macrobatch=macrobatch, File "../optimizer.py", line 41, in __init__ master_parameters, **optimizer_args) File "/opt/conda/lib/python3.6/site-packages/torch/optim/sgd.py", line 68, in __init__ super(SGD, self).__init__(params, defaults) File "/opt/conda/lib/python3.6/site-packages/torch/optim/optimizer.py", line 47, in __init__ raise ValueError("optimizer got an empty parameter list") ValueError: optimizer got an empty parameter list
And with nrank=6 . I observe the following failure.
File "main_with_runtime.py", line 585, in <module> dp.make_random_loader_with_sampler(args, train_data, test_data, num_ranks_in_first_stage) TypeError: 'NoneType' object is not iterable kiTraceback (most recent call last): File "main_with_runtime.py", line 585, in <module> dp.make_random_loader_with_sampler(args, train_data, test_data, num_ranks_in_first_stage) TypeError: 'NoneType' object is not iterable

Thank you very much for your interests in our project.
For the first problem, it seems that the PyTorch model was not correctly initialized. So the optimizer cannot obtain the trainable model parameters. You may need to compile PyTorch with the corresponding patches under the pytorch_patches folder.
For the second issue, it seems that the train_data or test_data is NoneType. The input ranks will load the actual training data while other ranks will generate random data to ensure the consistency of the number of iterations across different ranks. You need to check the configuration to ensure the num_batches is correct. Besides, it is suggested that you first try num_input_rank=1.


build(flake): fenix

closes #46
closes #32
Co-authored-by: Samyak Sarnayak<EMAIL_ADDRESS>

Commenting so that some other PRs are the least recently updated. They are used as test fixtures.


[Bug Report]: how to deal with dates in office documents

Environment
Carbone Version: 2.1.0
Node Version: 10.20.1
Desktop OS: Debian Stretch
LibreOffice: <IP_ADDRESS>
Expected Behaviour
Similary to numbers (#13 #93), model date properties should output as date type in Open Document spreadsheets.
Actual Behaviour
Date are printed as "text" cells.
Other comments
According to #13 (comment), date also have a special type in open document format.

Thank you for using Carbone.
Yes, currently we do not convert all JSON type to Excel/ODS type, except for numbers with formatN.
It is on the roadmap (probably end of november)


Add more autocorrect support on Style/EachForSimpleLoop

If there is a block argument, it should be autocorrectable when the starting point of the range is 0.
# bad
(0...10).each do |i|
  puts i
end

# good
10.times do |i|
  puts i
end

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[ ] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[x] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

Thanks!


Version V1, it costs $5 per month for each device. A huge scam. Beware!!!!

The official version pub.dev 0.26 is the sdk version V1, it costs $5 per month for each device. A huge scam.
This on GithHub is the v2 version, but on android it doesn't work.
Beware!!!!

How is it a a huge scam? You don’t have to use it. On Dec 31, 2022, at 3:58 PM, studiozocaro @.***> wrote:
The official version pub.dev 0.26 is the sdk version V1, it costs $5 per month for each device. A huge scam.
This on GithHub is the v2 version, but on android it doesn't work.
Beware!!!!
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>

My billing
Navigation SDKs: 28 monthly active users
A user of Mapbox services within your app during your month-long billing period including Directions API, Vector Tiles API, and Raster Tiles API requests.
$90.00
Hide details
up to 10 monthly active users — free
$0.00
11 to 500 — $5.00 / 1
$90.00

https://www.mapbox.com/pricing/#session-user-pricing
Navigation SDK. --> select V1 (in accord version on  pub.dev 0.26)
Monthly active users.
Cost per user:
Up to 10.   Free
11 - 500   $5.00
501 - 1,000. $4.50
1,001 - 2,500  $4.00
2,500+.....


Add feature to read/write CoreGenMCtrl memory ordering parameter

This should be a selection list that includes "Weak", "TSO" and "Strong".  Use the "GetMemOrder()" and "SetMemOrder()" functions

https://github.com/opensocsysarch/CoreGen/issues/2


ARROW-10269: [Rust] Update to 2020-11-14 nightly

This takes us from 2020-04-22 to 2020-11-14.
There have been a lot of clippy lints introduced since April, and an incompleteness feature warning about specialization (which causes CI to fail).
I have allowed almost all clippy lints in datafusion, as we have >150 warnings there.
I have made changes to fix arrow and parquet lints where I perceive them not to affect open PRs.

FYI @vertexclique

Segfault on the coverage, outch :/

Segfault on the coverage, outch :/

I want to look at whether we can use the new llvm-based coverage instead of tarpaulin

Segfault on the coverage, outch :/

Found and fixed the problem. We were using an older cached version of cargo-tarpaulin, but the latest version has a bug; so I've forced us into using an older version, and left a reference to the GH issue.
We should be good to go @jorgecarleitao

Codecov Report

Merging #8666 (c094456) into master (3e72c70) will decrease coverage by 0.29%.
The diff coverage is 89.07%.

@@            Coverage Diff             @@
##           master    #8666      +/-   ##
==========================================
- Coverage   84.84%   84.55%   -0.30%
==========================================
  Files         165      177      +12
  Lines       43322    43567     +245
==========================================
+ Hits        36757    36838      +81
- Misses       6565     6729     +164

Impacted Files
Coverage Δ

rust/arrow/src/array/array.rs
91.48% <ø> (-0.23%)
:arrow_down:

rust/arrow/src/compute/kernels/comparison.rs
95.89% <ø> (+0.92%)
:arrow_up:

rust/arrow/src/error.rs
5.26% <0.00%> (-0.30%)
:arrow_down:

rust/datafusion/src/logical_plan/expr.rs
78.94% <ø> (ø)

rust/datafusion/src/logical_plan/extension.rs
0.00% <ø> (ø)

rust/datafusion/src/logical_plan/plan.rs
83.27% <ø> (ø)

rust/datafusion/src/optimizer/filter_push_down.rs
95.95% <ø> (-2.28%)
:arrow_down:

...ust/datafusion/src/physical_plan/hash_aggregate.rs
89.40% <ø> (+3.64%)
:arrow_up:

rust/datafusion/src/physical_plan/merge.rs
64.51% <ø> (-2.76%)
:arrow_down:

rust/datafusion/src/test/mod.rs
89.65% <ø> (+3.82%)
:arrow_up:

... and 166 more

Continue to review full report at Codecov.

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

Do we wait for some of the PRs to be flushed, or do we merge this?

I don't see this being a big risk to open PRs (as some already have merge conflicts). We run 36 CI jobs for this, vs the normal 8; so maybe there's an efficiency argument in merging this sooner, instead of having to rebase later (which I don't mind doing).

@alamb thanks. A quick solution for many of the lints, is to run clippy-fix with -Z unstable-options, so that one doesn't manually fix them.

@nevi-me  check it out: https://github.com/apache/arrow/pull/8687 -- which I think enables clippy lint in all parts of the project


Planner as a NPM Module

Description
As a developer, I want to use the Planner module as an NPM-based module for Angular2 projects.
Functional Acceptance Criteria

The frontend (Angular2) components of the Planner project includes all necessary files and configurations to be used as a NPM package.
The package is available thru NPM and can be pulled into another Angular2 project.

Non-functional Acceptance Criteria

There is a reasonable documentation on how to integrate the Planner into Angular2 projects.
The release processes are adapted to the NPM release requirements.

Related

Userstory #605

Note: only the frontend components are in the context for this userstory. The backend services required for the Planner are not in the context of this story.
Tasks

[ ] https://github.com/almighty/almighty-core/issues/615
[ ] https://github.com/almighty/almighty-core/issues/616
[ ] https://github.com/almighty/almighty-core/issues/617

LGTM.

Will all the (other) projects also be implemented as npm modules? Is this the new standard? Thx!

This has been addressed. Closing this issue by now!


⚠ Bofrost.be has degraded performance

In 8368de1, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 2207 ms

Resolved: Bofrost.be performance has improved in 934ba18.


fix data races (#230)

Description
Prevents data races and does better cursor rendering on fast input (#223)
Fixes # 230
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
Go's race detector will show the races in question. Run go test -race -v . in the root of the project source. There should be no data races.
Test Configuration:

OS: Ubuntu
OS version: 18.04
Go version: 1.10.4

Unfortunately this doesn't fix all the data races. If the mouse cursor is moved during the tests the following races are exposed:
lines := gui.terminal.GetVisibleLines()
	lineCount := int(gui.terminal.ActiveBuffer().ViewHeight())
	colCount := int(gui.terminal.ActiveBuffer().ViewWidth())
	cx := uint(gui.terminal.GetLogicalCursorX())
	cy := uint(gui.terminal.GetLogicalCursorY()) + uint(gui.terminal.GetScrollOffset())
	var colour *config.Colour
	for y := 0; y < lineCount; y++ {
		if y < len(lines) {
			cells := lines[y].Cells()
			for x := 0; x < colCount; x++ {

				cursor := false
				if gui.terminal.Modes().ShowCursor {
					cursor = cx == uint(x) && cy == uint(y)
				}

				if gui.terminal.ActiveBuffer().InSelection(uint16(x), uint16(y)) {
					colour = &gui.config.ColourScheme.Selection
				} else {
					colour = nil
				}

				cell := gui.defaultCell
				if colour != nil || cursor || x < len(cells) {

					if x < len(cells) {
						cell = &cells[x]
						if cell.Image() != nil {
							gui.renderer.DrawCellImage(*cell, uint(x), uint(y))
							continue
						}
					}

					if cursor {
						var bgColour config.Colour = gui.getCursorBg(cell)
						colour = &bgColour
					}

					gui.renderer.DrawCellBg(*cell, uint(x), uint(y), colour, false)
				}

			}
		}
	}
	for y := 0; y < lineCount; y++ {

		if y < len(lines) {

			var builder strings.Builder
			bold := false
			dim := false
			col := 0
			colour := [3]float32{0, 0, 0}
			cells := lines[y].Cells()

			for x := 0; x < colCount; x++ {
				if x < len(cells) {
					cell := cells[x]

					cursor := false
					if gui.terminal.Modes().ShowCursor {
						cursor = cx == uint(x) && cy == uint(y)
					}

					var newFg [3]float32
					if cursor {
						newFg = gui.getCursorFg(&cell)
					} else {
						newFg = cell.Fg()
					}

					if builder.Len() > 0 && (cell.Attr().Dim != dim || cell.Attr().Bold != bold || colour != newFg) {
						var alpha float32 = 1.0
						if dim {
							alpha = 0.5
						}
						gui.renderer.DrawCellText(builder.String(), uint(col), uint(y), alpha, colour, bold)
						col = x
						builder.Reset()
					}
					dim = cell.Attr().Dim
					colour = newFg
					bold = cell.Attr().Bold
					r := cell.Rune()
					if r == 0 {
						r = ' '
					}
					builder.WriteRune(r)
				}
			}
			if builder.Len() > 0 {
				var alpha float32 = 1.0
				if dim {
					alpha = 0.5
				}
				gui.renderer.DrawCellText(builder.String(), uint(col), uint(y), alpha, colour, bold)
			}
		}

	}
	// underlines
	for y := 0; y < lineCount; y++ {

		if y < len(lines) {

			span := 0
			colour := [3]float32{0, 0, 0}
			cells := lines[y].Cells()

			var x int

			for x = 0; x < colCount && x < len(cells); x++ {
				cell := cells[x]
				if span > 0 && (!cell.Attr().Underline || colour != cell.Fg()) {
					gui.renderer.DrawUnderline(span, uint(x-span), uint(y), colour)
					span = 0
				}

				colour = cell.Fg()
				if cell.Attr().Underline {
					span++
				}
			}
			if span > 0 {
				gui.renderer.DrawUnderline(span, uint(x-span), uint(y), colour)
			}
		}

	}
}

I know that mouse handler reads terminal state without locking it. We'll figure that out later.

Should we merge this to develop as it appears to fixes some of the races, and leave the github issue open to close the others (and ideally figure out a way to expose them all in a test!)?

that PR seems interferes with https://github.com/liamg/aminal/pull/245 @rrrooommmaaa @mjs
are these PRs solve similar issues?

@MaxRis yes, they should come together

Those PRs touch similar areas but are solving different things. I'm happy for this to land first and deal with the conflicts in #245.


Retry add Korean (ko) from #267

Origin PR (#267) does not pass the test and still remain opened. However, I executed the same test without issue.
Pre-launch Checklist

[ ] I have updated CHANGELOG.md with my changes
[ ] I have run "dart format ." on the project
[ ] I have added/updated relevant documentation

Please also close the origin PR when merged.


epm - easyengine plugin manager

I like - https://github.com/atom/apm
Possible commands....

epm search
epm install
epm remove
epm purge
epm update

For developers....

epm new - will start a wizard and generate templates
epm publish

For developers - ee hooks documentation and sample plugins will be required

This will be handled by ee package command in v4 which will be based on WP_CLI packages.


otel.endpoint port 4318

Fix for https://github.com/roadrunner-server/docs/issues/14

Summary by CodeRabbit

Bug Fixes

Updated the endpoint configuration for the OTLP exporter from <IP_ADDRESS>:4317 to <IP_ADDRESS>:4318 to ensure proper connectivity and functionality.

Hey @gam6itko 👋
If you're changing ports, would be nice to add additional docs (from the ticket #14) and a short explanation, why 4318/4317.

added a couple of description lines

@gam6itko Description should be added to the docs, not in the PR, since in your PR only 1 port option is used. I've sent a link to the OTEL docs in the issue you opened before. This link should be added to the docs with a some description.

Updated with warning, w/o changing the ports everywhere (not needed): https://github.com/roadrunner-server/docs/commit/cd4acc60f6dd0b968f59f4c29d78e00a458b00be


Should SQL queries be counted when they are generated by a logger at 'DEBUG' level?

I was baffled for a few hours trying to figure out where a bunch of unnecessary queries were coming from on my app. I used django-debug-toolbar, which was a big help, but it also threw me a significant red herring.
If your logging setup looks anything like this ...
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'info_to_file': {
            'level': 'DEBUG' if DEBUG else 'INFO',
            'class': 'logging.FileHandler',
            'filename': os.path.join(BASE_DIR, 'django.log'),
        },
    },
    'loggers': {
        'django': {
            'handlers': ['info_to_file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

... then you are logging every SQL query made to the database when DEBUG == True. I do this during development sometimes, because it is a built-in way to solve the same problems django-debug-toolbar addresses.
The problem
When I had my logger at 'level': 'DEBUG' and django-debug-toolbar running, my page was generating queries at O(n) for n objects on the page, because every time this exception is raised, django.template.base.VariableDoesNotExist: Failed lookup for key [some_template_variable] in ..., the Django logger prints the entire template context.
When the Django logger prints the template context, __repr__() and __str__() are called on every object in the context. This is a huge problem when you have foreign keys in your __str__() methods, and quickly balloons your queries to O(n).
So, I solved my ballooning query problem by switching the debug level to 'INFO' during development. Immediately, queries were O(1) again. I was a little frustrated, because I just spent a lot of time debugging extra queries caused by my debugger. And I was just generally frustrated that the logger was even capable of running database queries.
Solving the problem
Can we make a special distinction for for queries generated by the Django logger?

We have removed the logging panel in January 2023, I think this issue can be closed.


Unable to getting Services of Bluetooth Device

I have connected ble device using flutter_web_bluetooth library, now i trying to get ble device services but i'm getting empty list of services, here is my code, could you please tell me do i need to do some modification in this code for getting services.
connectedDevice?.discoverServices().then((services) async {
services.forEach((service) {
print("uuid - ${service.uuid}");
});
});
and I tried this also.
List? services = await connectedDevice?.discoverServices();

When requesting a device you need to define what services you are going to communicate with. If you don't do this then no services will be available.
For example:
// Define the services you want to communicate with here!
final requestOptions = RequestOptionsBuilder.acceptAllDevices(optionalServices: [
  BluetoothDefaultServiceUUIDS.deviceInformation.uuid
]);

try {
  final device = await FlutterWebBluetooth.instance.requestDevice(requestOptions);
} on UserCancelledDialogError {
  // The user cancelled the dialog
} on DeviceNotFoundError {
  // There is no device in range for the options defined above
}

yes, I defined already but not getting list of ble services,
final requestOptions = RequestOptionsBuilder.acceptAllDevices(
optionalServices: [
BluetoothDefaultServiceUUIDS.deviceInformation.uuid,
"my_service_uuid" // service uuid
]);
try {
connectedDevice = await FlutterWebBluetooth.instance.requestDevice(requestOptions);
await connectedDevice?.connect();
connected.value = true;
connectedDevice?.discoverServices().then((services) async {
print("service -- $services");
});
}
on UserCancelledDialogError {
// The user cancelled the dialog
} on DeviceNotFoundError {
// There is no device in range for the options defined above
}

Thanks now I got BLE services, now i need to get real time data from bluetooth device, unable to enter in inner block
  late StreamSubscription<ByteData> notificationSubscription;

  Future<void> startNotification() async {
    if (desiredCharacteristic != null) {
      await desiredCharacteristic!.startNotifications();

    // unable to get inside this block
      notificationSubscription = desiredCharacteristic!.value.listen((value) {
        // Process the data received in 'value'
        Uint8List dataBytes = Uint8List.view(value.buffer);
        print('Notification received: $dataBytes');
      });
    }
  }

Can you first check if the desired characteristic supports notifications?
You can do this using characteristic.properties.notify. If this is false then the characteristic doesn't support notifications.
You can work around this by periodically calling characteristic.readValue.
Another reason could be the implementation in the browser. I do remember that some promises in some browser just never resolve. For example the FlutterWebBluetooth.instance.requestLEScan doesn't ever return on Linux.


New package: IUCN v0.7.0

Registering package: IUCN
Repository: https://github.com/jdiaz97/IUCN.jl
Created by: @jdiaz97
Version: v0.7.0
Commit: 95acf209d6a32281a3022c97fa9a233106937208
Reviewed by: @jdiaz97
Reference: https://github.com/jdiaz97/IUCN.jl/issues/1
Description: API Wrapper for the IUCN Red List.

Presumably superseded by #73157


Ch2 figures

Summary
Fixing 2-x figure numbers with actual numbers.

Hopefully good to merge now, thanks!

I fixed one more occurrence, @ardalis. I'll merge now.


test(Slate) Add a few tests, cleanup code

Signed-off-by: Jerome Simeon<EMAIL_ADDRESS>

Coverage increased (+1.07%) to 88.538% when pulling 2c9956ff4ceb06d2fd92a62d6a9c933c67ab639e on jeromesimeon:js-fix-html-slate into 066ab4cff0c40f3fa7dcbfa8786928b4f8145bd2 on accordproject:master.


Messaging/Messaging Rooms Backend

No issue creating message threads however all message threads share the same chat room.

Fixed


Installing from subdirectories is broken in 0.1.26 (and 0.1.25 probably)

A  dependency defined using a subdirectory fails to generate the lockfile in 0.1.26.
An example dependency is: "mersal @ git+ssh://git@github.com/mersal-org/mersal.git@trunk#subdirectory=core"
The error message is:
error: Failed to download and build: mersal @ git+ssh://git@github.com/mersal-org/mersal.git@trunk#subdirectory=core
  Caused by: Package metadata name `mersal-virtual-workspace` does not match given name `mersal`
error: could not write production lockfile for project

The error was originally obtained using rye sync but then I switched to using uv directly via uv pip compile pyproject.toml -o requirements.txt
What is happening: The process is finding a pyproject.toml at the root directory which has a package metadata name mersal-virtual-workspace. This didn't happen in version 0.1.24 or before (I tested from 01.20).
With 0.1.25, I get a different error which I believe is now resolved in 0.1.26 (https://github.com/astral-sh/uv/pull/2712):
 Caused by: Failed to deserialize cache entry
  Caused by: expected version to start with a number, but no leading ASCII digits were found

However, looking at the changelog, the original error was probably caused by a change in 0.1.25.

If I had to guess, it's probably not the subdirectory handling itself being broken but the existence of a pyproject.toml in the root directory is throwing the resolver.

Thanks for the thorough report! If you have time, could you share a reproduction with a public repository?
Note for us, we should add test coverage for this in https://github.com/astral-test/uv-public-pypackage or another repository (uv-pypackage-workspace or something).
cc @charliermarsh

Not immediately obvious to me how this would be happening.

Sorry, yes it is. Easy fix, my mistake.

Fixed in the next release, apologies.


"Fetching Failed" error when loading dashboard widgets - timeout of 10000ms exceeded.

Describe the issue:
Getting a "Fetching Failed" error in the dashboard widgets when loading the widgets if there is a network delay.
Timeout of 10000ms exceeded.
Affected Product Version:
5.7.0
Related issues:
https://github.com/wso2/analytics-apim/issues/1369

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


#5419 FIX of regnamespace error

Regnamespace is OID type => now the regnamespace is shown as string correctly.

(if it is another 5.* release planned, it would be good to cherry-pick this fix to it ;) )

👍
We'll include it in 6.0 (next release)


can not get faucet coins

can not get the faucet coins at https://portal.astar.network/#/assets ? how to get faucet shiden coins?

We will fix the faucet soon.


How to handle invalid values in the prompt depth?

Hi, I'm interested in reproducing your street reconstruction example (https://promptda.github.io/assets/street_recon.mp4), where typically LiDAR values projected in the image have mostly invalid pixels, as it can be seen in your videos. I was wondering how does the network interpret invalid values? I have my own dataset and I tried to simply set them to 0, but results are pretty bad. Any help would be appreciated :)

Thanks for your interests! The current prompting method is based on CNN, which is sensitive to random blank pixels. For my experiments with vehicle LiDAR, I simply preprocess the input LiDAR with KNN completion (k=4), which greatly improves robustness. Feel free to discuss further if you have more questions.


link prediction using node/edge features

Hi,
I have a couple of related questions about PyG's usage, and I would appreciate an answer...
I'm now trying to predict graph links using both node features (with their embedding n) and edge features (with their embedding e) . That is, strength of the edge between two nodes depends on source and destination nodes' features and on some known features of this same edge:
class Net(torch.nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.CONV = GCNConv(data.num_node_features, num_d1)
        self.MLPe = torch.nn.Sequential(torch.nn.Linear(data.num_edge_features, num_d1), torch.nn.ReLU(), torch.nn.Linear(num_d1, num_d1))

        self.MLP = torch.nn.Sequential(torch.nn.Linear(2*num_d1 + num_d2, num_d3), torch.nn.ReLU(), torch.nn.Linear(num_d3, num_d3))
        self.W = torch.nn.Parameter(torch.randn(num_dout, num_d3))
        self.B = torch.nn.Parameter(torch.randn(num_dout))

    def forward(self, data):
        edge_attr, edge_index, x = data.edge_attr, data.edge_index, data.x
        n = self.CONV(x, edge_index)
        e = self.MLPe(edge_attr)

        src, dst = edge_index
        s = self.MLP(torch.cat([n[src], n[dst], e], dim=-1))
        return torch.nn.functional.linear(s, self.W, self.B)

However, I am not sure if I'm treating e correctly here in terms of dimensionality. Am I supposed to index it like I index n (eg, n[src])?
Also, a more general question that is the source of my confusion above: within the forward() method in this example, do I treat x and edge_attr as vectors of size data.num_node_features and data.edge_node_features, or as matrices of size data.num_nodes * data.num_node_features and data.num_edges * data.edge_node_features? And what sizes are n[src] and n[dst] then?
Thank you for the help!

Your general network architecture looks fine to me. e[i] corresponds to the edge given by src[i] and dst[i], so:
torch.cat([n[src], n[dst], e], dim=-1)

groups the source, destination and edge features into a single vector per edge.
Since everything computed in forward is done in parallel, x corresponds the the node features of all nodes ([num_nodes, num_node_features]). The same holds true for e ([num_eges, num_edge_features]). Therefore, n[src] is of size [num_edges, num_node_features]: Every node feature is gathered into the respective source nodes.

Your general network architecture looks fine to me. e[i] corresponds to the edge given by src[i] and dst[i], so:
torch.cat([n[src], n[dst], e], dim=-1)

groups the source, destination and edge features into a single vector per edge.
Since everything computed in forward is done in parallel, x corresponds the the node features of all nodes ([num_nodes, num_node_features]). The same holds true for e ([num_eges, num_edge_features]). Therefore, n[src] is of size [num_edges, num_node_features]: Every node feature is gathered into the respective source nodes.

Thanks a lot for a quick reply! I think I understood you, but just to be safe...
Isn't e here of size [num_edges, num_d1], but not [num_eges, num_edge_features] (because that would be the dimensionality of edge_attr itself), right? Similarly for n in your reply, num_edge_featuresshould be num_d1.
Also, src is size [num_edges, 1], n is size [num_nodes, num_d1], and n[src] is [num_edges, num_d1] but not [1, num_d1] (as I thought earlier) or [num_nodes, num_d1]? So effectively n[src] just allocates each source node's num_d1 "embedding attributes" among appropriate edges?

Thanks a lot for a quick reply! I think I understood you, but just to be safe...
Isn't e here of size [num_edges, num_d1], but not [num_eges, num_edge_features] (because that would be the dimensionality of edge_attr itself), right? Similarly for n in your reply, num_edge_featuresshould be num_d1.
Also, src is size [num_edges, 1], n is size [num_nodes, num_d1], and n[src] is [num_edges, num_d1] but not [1, num_d1] (as I thought earlier) or [num_nodes, num_d1]? So effectively n[src] just allocates each source node's num_d1 "embedding attributes" among appropriate edges?

Yes, since MLPe maps to d1 outputs for each edge, sorry for the confusion :)

Yes, n[src] will push node embeddings to the appropriate edges.

Yes, since MLPe maps to d1 outputs for each edge, sorry for the confusion :)

Yes, n[src] will push node embeddings to the appropriate edges.

Thank you very much for the confirmation!
The second point is now clear, though it is at first counter intuitive (at least to me) that n[src] inherits its dimension 0 from src rather than n.

Thank you very much for the confirmation!
The second point is now clear, though it is at first counter intuitive (at least to me) that n[src] inherits its dimension 0 from src rather than n.


fix array_range not support amount without unit

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall

run buildall


adjustments to scroll messages into view

This Pull request contains the changes in order to make the chat responses automatically scroll with the streamed messages. It will always scroll to keep latest response in view.

Hi Harry,
Thanks for your pull request. We've refactored the code significantly in the last few days, and I've migrated over the logic from your PR into the relevant part of the codebase. So, I'm closing this PR for now.

Totally agree !


DaemonSet pods scheduled on virtual-nodes and result in OffloadingBackOff

Previous correspondence on the Liqo Slack channel indicated that this issue is already known to the developers. This GitHub issue could help another Liqo user. And, could possibly help solve it more definitively in the future.
What happened:
DaemonSets schedule pods to all Kubernetes worker nodes, and thus also Liqo's virtual-nodes. This results in OffloadingBackOff errors for these DaemonSet pods.
What you expected to happen:
Since virtual-nodes are abstracted clusters, DaemonSets don't need to schedule pods on them.
How to reproduce it (as minimally and precisely as possible):
Install Liqo & liqoctl 0.4, peer two clusters and make sure a virtual-node is created for the remote cluster.
Anything else we need to know?:
A few notes:
Only Liqo release 0.4 works stable for me. Is this issue already solved in future releases?
I stumbled on a race condition when offloading namespaces and needed to untaint the virtual-node. I know this is solved in a newer release by using a specific label on the namespace. Only,  I hope this isn't related to this DaemonSet issue.
kubectl taint nodes liqo-cluster-1 virtual-node.liqo.io/not-allowed=true:NoExecute-
The following script is a workaround to remove the errors. It iterates and searches for not running pods managed by DaemonSets and patches the DaemonSet YAML definition to exclude virtual-nodes for scheduling.
#!/bin/bash

for CLUSTER in cluster-1 cluster-2
do
export KUBECONFIG=/root/.kube/${CLUSTER}

  while read NAME TYPE NAMESPACE
  do
      if [ $TYPE == "DaemonSet" ]
      then
          echo "patching ${TYPE} ${NAME} in ${NAMESPACE}"
          cat <<EOF > ${PWD}/daemonset_patch.yaml
spec:
  template:
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: liqo.io/type
                    operator: NotIn
                    values:
                      - virtual-node
EOF
          kubectl patch daemonset $NAME -n $NAMESPACE --patch-file ${PWD}/daemonset_patch.yaml
          rm -rf ${PWD}/daemonset_patch.yaml
      fi
  done <<< "$(kubectl get pods -A --field-selector=status.phase!=Running -o custom-columns=':metadata.ownerReferences[0].name,:metadata.ownerReferences[0].kind,:metadata.namespace' --no-headers)"

done

A definitive solution:
Implementing the mechanic of the script in Golang would not be a good definitive solution I think. Patching Kubernetes YAML definitions of other workloads sounds scary to me (what could go wrong?). Also, GitOps tools manage Kubernetes YAML, but they reconcile changes not present in Git, then you need to exclude specific changes explicitly in the GItOps tool.
Environment:

Liqo version: 0.4:
Kubernetes version (use kubectl version): 1.22
Cloud provider or hardware configuration: AWS EKS
Network plugin and version: Cilium 1.12.0
Install tools: Terraform + liqoctl

Hi @GitBurtHET,

Previous correspondence on the Liqo Slack channel indicated that this issue is already known to the developers. This GitHub issue could help another Liqo user. And, could possibly help solve it more definitively in the future.

Thanks for the detailed report about this issue.
As an additional note, this issue is also acknowledged in the official documentation, suggesting the addition of an appropriate nodeAffinity to the DaemonSets to prevent the creation of pods for virtual nodes (as you also pointed out). Yet, this is required only for system DaemonSets (e.g., kube-proxy, CNIs, ...) that are characterized by wildcard tolerations, thus tolerating also the taint leveraged by Liqo to prevent the scheduling on virtual nodes. Differently, this patch is not required in case of standard DaemonSets, as the node taint is sufficient (given that the pods do not have the corresponding toleration).

I stumbled on a race condition when offloading namespaces and needed to untaint the virtual-node. I know this is solved in a newer release by using a specific label on the namespace. Only, I hope this isn't related to this DaemonSet issue.
kubectl taint nodes liqo-cluster-1 virtual-node.liqo.io/not-allowed=true:NoExecute-

Yes, manually removing the node taint affects the DaemonSet issue, since this causes all Daemonsets (not only the ones with wildcard tolerations) to create pods for the virtual nodes. Additionally, it also allows pods living in namespaces not enabled for offloading to being scheduled on virtual nodes, and remaining in a failure status.

Implementing the mechanic of the script in Golang would not be a good definitive solution I think. Patching Kubernetes YAML definitions of other workloads sounds scary to me (what could go wrong?). Also, GitOps tools manage Kubernetes YAML, but they reconcile changes not present in Git, then you need to exclude specific changes explicitly in the GItOps tool.

AFAIK, the only automatic solution would be patching the DaemonSets as you mentioned. Yet, this sounds scary to me too, as it would mean modifying external and already existing resources, likely critical for the cluster functioning, as well as possibly starting fighting against other controllers or GitOps tools.


#[UIC-1025] #fix Add missing var in config to change the title to ease rebranded deployment

Description
Add missing var in config to change the title to ease rebranded deployment
Replace the value of the var name RVF_APP_NAME while doing deployment via global group vars in superset.yml file
Default value of RVF_APP_NAME is "Dashboard Builder".

Closing this PR as the rebasing had some issue with this branch. Taken care in #93


python310Packages.huawei-lte-api: 1.5.4 -> 1.6

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.huawei-lte-api is: "API For huawei LAN/WAN LTE Modems"
meta.homepage for python310Packages.huawei-lte-api is: "https://github.com/Salamek/huawei-lte-api"
meta.changelog for python310Packages.huawei-lte-api is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 1.6 with grep in /nix/store/hx32x2vn555690wmxapc539bn0rl6rsf-python3.10-huawei-lte-api-1.6

found 1.6 in filename of file in /nix/store/hx32x2vn555690wmxapc539bn0rl6rsf-python3.10-huawei-lte-api-1.6

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

2 package rebuild(s)

2 x86_64-linux rebuild(s)
2 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
python310Packages.huawei-lte-api
python39Packages.huawei-lte-api

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/hx32x2vn555690wmxapc539bn0rl6rsf-python3.10-huawei-lte-api-1.6 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python310Packages.huawei-lte-api https://github.com/r-ryantm/nixpkgs/archive/431db9bbab6799b83d767e3c31ec82313924185d.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/hx32x2vn555690wmxapc539bn0rl6rsf-python3.10-huawei-lte-api-1.6
ls -la /nix/store/hx32x2vn555690wmxapc539bn0rl6rsf-python3.10-huawei-lte-api-1.6/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

python310Packages.huawei-lte-api
python39Packages.huawei-lte-api

Maintainer pings
cc @dotlambda for testing.

Wait until https://github.com/Salamek/huawei-lte-api/issues/135 is resolved

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

2 packages built:

python310Packages.huawei-lte-api
python39Packages.huawei-lte-api


[Debugging] Break points in platform specific files and/or symlink files in node_modules are not hit with "@next" version

Environment

CLI: 5.4.0-2019-05-02-13208
Cross-platform modules: 5.3.1
Android Runtime: not tested
iOS Runtime: 5.3.0
Plugin(s):

"dependencies": {
  "nativescript-image": "~2.1.0",
  "nativescript-theme-core": "^1.0.4",
  "nativescript-ui-listview": "../src",
  "nativescript-unit-test-runner": "^0.3.4",
  "tns-core-modules": "^5.0.0"
},
"devDependencies": {
  "@types/chai": "^4.0.2",
  "@types/mocha": "^2.2.41",
  "@types/node": "^7.0.5",
  "jasmine-core": "^2.5.2",
  "karma": "^1.3.0",
  "karma-jasmine": "^1.0.2",
  "karma-nativescript-launcher": "^0.4.0",
  "markdown-snippet-injector": "^0.2.2",
  "mocha": "^3.3.0",
  "mocha-junit-reporter": "^1.18.0",
  "mocha-multi": "^1.0.1",
  "mochawesome": "^3.1.1",
  "nativescript-css-loader": "~0.26.1",
  "nativescript-dev-appium": "5.0.0",
  "nativescript-dev-typescript": "~0.9.0",
  "nativescript-dev-webpack": "^0.22.0-next-2019-04-17-111030-01",
  "tns-platform-declarations": "^5.0.0",
  "tslint": "~5.11.0"
},

Describe the bug
First scenario:
After installing the @next when using VS Code to either Attach to iOS or Lunch on iOS any break points placed in a plugin that is using symlink and is in node_modules is not hit.
Second scenario:
A different scenario that also does not hit its break points is adding a break point to a non symlink plugin in node_modules but in the platform specific file (.ios.js). In this scenarios a break point in the non platform specific file is hit.
To Reproduce
First scenario:
Using this demo app if you symlink the nativescript-ui-listview code if you place a break point in VS Code in the createNativeView in the node_modules/nativescript-ui-listview/ui-listview.ios.ts file it will not be hit after you navigate to for example "Getting Started" page. (both breakpoints in platform specific and non platform specific files are not hit)
Second scenario:
Using this demo if you place a break point in VS Code at viewDidLayoutSubviews in the node_modules/tns-core-modules/ui/page/page.ios.js. (only breakpoints in platform specific files are not hit)
Expected behavior
Break points in VS Code are hit in both platform specific files and in symlink plugins in node_modules
Sample project

This is marked as closed, but I have built the latest version of this plugin today and installed in VS Code, am using a shared project and the breakpoint still opens up the wrong file.
For example, in the following scenario, the breakpoint shows as hit on the correct line number but in the web version of the file:
app-home.component.ts < web version
app-home.component.tns.ts < NS version
Should this fix have addressed this issue? Or did I misunderstand it?

Having looked at the code for the fix submitted for this, I could see the change required and made it as a pull request.


Remove the "Upload AppMap" feature

Closes https://github.com/getappmap/appmap-intellij-plugin/issues/537
This removes the upload feature:

handling of webview message "uploadAppMap"
project setting "Confirm upload of AppMaps"
project setting "URL to upload AppMaps"
code around upload request/response handling

:tada: This PR is included in version 0.55.0 :tada:
The release is available on:

v0.55.0
GitHub release

Your semantic-release bot :package::rocket:


Holos using dangerous models

Hi,
I submitted a PR which restricted a known dangerous model from E2 Holo's.
However, there are many others. This is why I'm making an issue today - to talk about how we can handle this.
I currently know of two more props which will cause client crashes if set as holograms, but they're both part of a popular 3rd party addon.
As a programmer, it doesn't make sense to add restrictions in Wiremod for props outside of the vanilla Gmod scope.
On the other hand, as a server owner, there's no way for me to prevent troublemakers from crashing clients without restricting E2 from them.
Does anyone have any ideas?

if you want you could do this
hook.Add("InitPostEntity","block holo models",function()
	local holo = scripted_ents.Get( "gmod_wire_hologram" )
	local old = holo.SetModel -- get existing setmodel function
	local blacklist = { -- create blacklist
		["path/to/model.mdl"] = true,
		["path/to/other/model.mdl"] = true,
		-- ... and so on
	}
	function holo.SetModel(self,path) -- override normal setmodel function
		if blacklist[path] then return end -- if blacklisted, don't allow it
		old(self,path) -- allow it
	end
end)

WireLib.CanModel(player, model, skin) already exists. It calls the PlayerSpawnObject(player, model, skin) hook, so servers can blacklist spawning those objects. Assuming the holo library does properly call this function, then your server can add a custom hook to prevent those materials:
local blacklist = { -- create blacklist
	["path/to/model.mdl"] = false,
	["path/to/other/model.mdl"] = false,
	-- ... and so on
}
hook.Add("PlayerSpawnObject", "block holo models", function(_, model) return blacklist[model] end)

It looks like hologram.lua does correctly use WireLib.CanModel (via the GetModel wrapper), unless wire_holograms_modelany == 2 in which case all bets are off anyway (ie. you allow an infinite set of potentially client-crashing models).

ah yeah true that's a better way


mix.version() is not working (no hashes are added in mix-manifest.json)

Laravel Mix Version: 1.4.2
Node Version (node -v): v6.10.3
NPM Version (npm -v): 3.10.10
OS: Centos + MacOS

Description:
mix.version() is not generating hashed URL's for my assets
Steps To Reproduce:
in my webpack.mix.js I have:
if (mix.inProduction()) {
    console.log("We are in production");
    mix.version(['public/js/app.js', 'public/css/app.css']);
}

the console log gets triggered just fine, but there are no hashes appended to my stylesheet or js file, which I'm loading in my views like so:
<link href="{{ mix('css/app.css') }}" rel="stylesheet">
the output is the following without cache busting:
<link href="/css/app.css" rel="stylesheet">
the mix-manifest.json file looks like this
{
    "/js/app.js": "/js/app.js",
    "/css/app.css": "/css/app.css",
    "/js/app.js.map": "/js/app.js.map",
    "/css/app.css.map": "/css/app.css.map"
}

UPDATE: this seems to be working locally on my machine, but not on my CentOS server. I've set permissions to 777 on the mix-manifest.json file, but that doesn't solve the issue. I'm thinking this might be permission related? Are there any other files that mix needs to be able to write to while running the build in order to update the mix-manifest file?

not working toooo..........

Same error here

+1

Exact same issue here

me, too................

Can the rest of you confirm your OS? I'm having trouble reproducing, so I agree that it's probably a permissions issue.

Actually I first thought that the version was still being appended to the filename and after reviewing the master branch I figured the version is now inside mix-manifest.json, which I should have opened sooner... Anyways, in my case was a big confusion (albeit the fact I didn't find a doc telling me how the versioning works...)

In case you guys want to use a temparary PHP script solution, check this https://github.com/JeffreyWay/laravel-mix/issues/1161

It would be awesome to opt in to the 'old' way of versioning if needed (i.e. filename versioning instead of query-string versioning). Is this functionality something you'd consider supporting in Laravel Mix?
One example use-case is that I use S3/CDNs and load-balancing on my site. I require that an old version of a file still remains on the CDN (S3) while the new version is uploaded/exists. An example scenario: I've very recently deployed a new release for my webapp - with some newly compiled javascript/css. While this release is being deployed to all the servers behind load balancers, someone requests a webpage. The load balancer then serves up the HTML from an old server via the load balancer that hasn't yet been updated with the latest release which has a new javascript version for app.js. With filename versioning, this isn't an issue, because this old server is using the old mix-manifest.js with the old version-hashed filename (e.g. app.abc123.js). So, the browser ends up correctly downloading the old file (app.abc123.js). Concurrently, other website visitors are hitting the servers with the latest release (via the load-balancer), and therefore being told to download the new javascript file from S3 (app.def456.js). All is well here...
Unfortunately, with query string versioning, requesting app.js?id=def456 and app.js?id=abc123.js from S3 will return the same file - the new one (version def456), and so the webapp breaks. 😩
This is just one scenario, but if not convinced, I can try explain another. I don't think there's a right way to version it per se, more just that in certain circumstances, file versioning is preferred over querystring versioning.
Thoughts?

Apologies - when I said the "old way of versioning", I'm not sure that way ever actually existed, but still, it would be great.

Oh and just noticed that there's already a ticket re: filebased versioning for load balancers: #1022

I can confirm, this issue is still not fixed

same problem

I found out that the mix configuration parameter "inProduction" has been rename to "production". I'm using the below code for versioning.
if (mix.config.production) {
    mix.version();
}

The final JS file with hash mappings are stored in the mix-manifest.json file.

same issue. Does anyone solve this problem?

For me, it seems like my versioned resources (with the querystring - the old filenames worked better) are sometimes pointing to old envoyer mix files in the releases directory rather than pointing to my latest deploy.
Anyone have any issues like this?

I've noticed that that problem comes when I use .combine() or .scripts() method after .js(). Laravel mix creates first banch of scripts versioned using .js(), but when I tried to concatenate them with other script
using .combine() and make them versioned, the problem shows.

This worked for me:
if (mix.config.inProduction) {
  mix.version();
}

I was confused for a while that version 0.* changed the file names, so in the console it was evident the versioning worked.
Then I updated laravel-mix to v2.* and @allentcm solution above worked just fine — only you don't visually see that it's versioned from the console; you have to look in mix-manifest.json to find the versioned query param.

Anyone have a clue why it's not working for me (Laravel 5.6)? It used to work, until about 6 weeks ago.
if (mix.config.production) { 	// console.log(mix.config.production) outputs true 	mix.version(['public/css/app.css', 'public/js/app.js']); }
Mix-manifest.json does update (the file gets overwritten), however it does not append the version hash:
{     "/js/app.js": "/js/app.js",     "/css/app.css": "/css/app.css" }
Help is greatly appreciated!

Seems to be a fairly old thread now but I had the same issue and I managed to fix it by updating node_modules/laravel-mix/src/config.js.
I changed the versioning property from false to true, added mix.version() to my webpack.mix.js file, then everything worked as expected 🕺

@olicarter

I changed the versioning property from false to true

Where did you find it ? I opened node_modules/laravel-mix/src/config.js. but could not find a versioning property

@olicarter Can you post where you changed the versioning property? It's not in the file you specified.

Seems to be a fairly old thread now but I had the same issue and I managed to fix it by updating node_modules/laravel-mix/src/config.js.
I changed the versioning property from false to true, added mix.version() to my webpack.mix.js file, then everything worked as expected 🕺

There's no versioning property inside node_modules/laravel-mix/src/config.js file
let paths = new (require('./Paths'))();
let webpackMerge = require('webpack-merge');

 module.exports = function() {
 return {
     /**
        * Determine if webpack should be triggered in a production environment.
        *
        * @type {Boolean}
        */
    production:
    process.env.NODE_ENV === 'production' ||
    process.argv.includes('-p'),

    /**
     * A list of custom assets that are being compiled outside of Webpack.
     *
     * @type {Array}
     */
    customAssets: [],

    /**
     * Determine if we should enable hot reloading.
     *
     * @type {Boolean}
     */
    hmr: process.argv.includes('--hot'),

    /**
     * Hostname and port used for the hot reload module
     *
     * @type {Object}
     */
    hmrOptions: {
        host: 'localhost',
        port: '8080'
    },

    /**
     * PostCSS plugins to be applied to compiled CSS.
     *
     * See: https://github.com/postcss/postcss/blob/master/docs/plugins.md
     *
     * @type {Array}
     */
    postCss: [],

    /**
     * Determine if we should enable autoprefixer by default.
     *
     * @type {Boolean}
     */
    autoprefixer: {
        enabled: true,
        options: {}
    },

    /**
     * Determine if Mix should remove unused selectors from your CSS bundle.
     * You may provide a boolean, or object for the Purify plugin.
     *
     * https://github.com/webpack-contrib/purifycss-webpack#options
     *
     * @type {Boolean|object}
     */
    purifyCss: false,

    /**
     * The public path for the build.
     *
     * @type {String}
     */
    publicPath: '',

    /**
     * Determine if error notifications should be displayed for each build.
     *
     * @type {Boolean}
     */
    notifications: {
        onSuccess: true,
        onFailure: true
    },

    /**
     * Determine if sourcemaps should be created for the build.
     *
     * @type {Boolean}
     */
    sourcemaps: false,

    /**
     * The resource root for the build.
     *
     * @type {String}
     */
    resourceRoot: '/',

    /**
     * vue-loader specific options.
     *
     * @type {Object}
     */
    vue: {
        preLoaders: {},
        postLoaders: {},
        esModule: false
    },

    /**
     * Image Loader defaults.
     * See: https://github.com/thetalecrafter/img-loader#options
     *
     * @type {Object}
     */
    imgLoaderOptions: {
        enabled: true,
        gifsicle: {},
        mozjpeg: {},
        optipng: {},
        svgo: {}
    },

    /**
     * File Loader directory defaults.
     *
     * @type {Object}
     */
    fileLoaderDirs: {
        images: 'images',
        fonts: 'fonts'
    },

    /**
     * The default Babel configuration.
     *
     * @type {Object}
     */
    babel: function() {
        let options = {};

        tap(Mix.paths.root('.babelrc'), babelrc => {
            if (File.exists(babelrc)) {
                options = JSON.parse(File.find(babelrc).read());
            }
        });

        if (this.babelConfig) {
            options = webpackMerge.smart(options, this.babelConfig);
        }

        return webpackMerge.smart(
            {
                cacheDirectory: true,
                presets: [
                    [
                        'env',
                        {
                            modules: false,
                            targets: {
                                browsers: ['> 2%'],
                                uglify: true
                            }
                        }
                    ]
                ],
                plugins: [
                    'transform-object-rest-spread',
                    [
                        'transform-runtime',
                        {
                            polyfill: false,
                            helpers: false
                        }
                    ]
                ]
            },
            options
        );
    },

    /**
     * Determine if CSS url()s should be processed by Webpack.
     *
     * @type {Boolean}
     */
    processCssUrls: true,

    /**
     * Whether to extract .vue component styles into a dedicated file.
     * You may provide a boolean, or a dedicated path to extract to.
     *
     * @type {Boolean|string}
     */
    extractVueStyles: false,

    /**
     * File with global styles to be imported in every component.
     *
     * See: https://vue-loader.vuejs.org/en/configurations/pre-processors.html#loading-a-global-settings-file
     *
     * @type {string}
     */
    globalVueStyles: '',

    /**
     * Uglify-specific settings for Webpack.
     *
     * See: https://github.com/mishoo/UglifyJS2#compressor-options
     *
     * @type {Object}
     */
    uglify: {
        sourceMap: true,
        uglifyOptions: {
            compress: {
                warnings: false
            },
            output: {
                comments: false
            }
        }
    },

    /**
     * CleanCss-specific settings for Webpack.
     *
     * See: https://github.com/jakubpawlowicz/clean-css#constructor-options
     *
     * @type {Object}
     */
    cleanCss: {},

    /**
     * Custom Webpack-specific configuration to merge/override Mix's.
     *
     * @type {Object}
     */
    webpackConfig: {},

    /**
     * Custom Babel configuration to be merged with Mix's defaults.
     *
     * @type {Object}
     */
    babelConfig: {},

    /**
     * Determine if Mix should ask the friendly errors plugin to
     * clear the console before outputting the results or not.
     *
     * https://github.com/geowarin/friendly-errors-webpack-plugin#options
     *
     * @type {Boolean}
     */
    clearConsole: true,

    /**
     * Merge the given options with the current defaults.
     *
     * @param {object} options
     */
    merge(options) {
        let mergeWith = require('lodash').mergeWith;

        mergeWith(this, options, (objValue, srcValue) => {
            if (Array.isArray(objValue)) {
                return objValue.concat(srcValue);
            }
        });
    }
};
};

This issue is still not resolved
mix.version(); doesn't do anything

Apologies for the late response. I did some digging and turns out the versioning property was removed from node_modules/laravel-mix/src/config.js from Laravel 5.6 onward.
I must've been using an outdated version of Laravel at the time of posting above. I've now updated my original comment to prevent confusion.
Unfortunately I don't use Laravel anymore so can't work on a solution.

In my case, I did not update mix-manifest.json to the production server. After updating to the server, it works.

I was really stuck here for a while. If nothing above seems to work. It's possible you've made the same mistake I did.
Make sure you are calling mix and not asset when you include your script.
Good:
<script src="{{ mix('js/app.js') }}" defer></script>
Bad:
<script src="{{ asset('js/app.js') }}" defer></script>

Solution is Simple...
Just Try
For CSS:
<link rel="stylesheet" href="{{asset(mix('/css/app.css'))}}">
For JS
<script src="{{asset(mix('js/app.js'))}}"></script>
I know this Look Stupid But Its Work Because Laravel Mix.manifest.js File path is not valid.so assets() return as Current Path with Version


suppressing startup events

(Temporary) patch to suppress startup events (ignoring first 0.5s of events).
Thanks @llongi for the patch. The patch will be removed once we update to the latest version of libcaer.

@morloy ptal

lgtm

I have never subscribed to this thread and I keep muting it, but keep receiving notifications.  Is this some kind of bug?  Who should I contact?


How to add change log in email using this plugin coperating with email-ext-plugin

When I launch a build, I can see the changes in Jenkins.
Could I use this git-changelog-plugin to add changes in email?

Yes, you can.
Actually git-changelog-plugin consists of two separated plugins doing very similar stuff, my part and @tomasbjerre's part (the latter is more used than mine).
It is possible to publish the changelog with my part of the plugin via email (that was my original intent for writing this plugin). There is a short documentation on how to do it in the github's README of this project, see https://github.com/jenkinsci/git-changelog-plugin#using-as-token-macro-replacement-provider
By the way, please use the official jenkins repo for issues on this plugin: https://github.com/jenkinsci/git-changelog-plugin

Marked


Feature Request: Add pen annotation and highlighter markup capability

I would like to be able to highlight and annotate PDFs in Firefox (using pdf.js), and then to be able to save the changes. This is possible in MS Edge. Further, it would be good to support the Microsoft Surface pen, but baseline highlighting/annotating and saving is required first.
Configuration:

Web browser and its version: Firefox 65.0b4
Operating system and its version: Win 10
PDF.js version: ? built into Firefox 65.0b4
Is a browser extension:

What is the expected behavior? (add screenshot)
This is example behaviour in MS Edge.

PDF.js is only a renderer, not an editor. Creating annotations is specifically out of scope for the project.

https://github.com/mozilla/pdf.js/wiki/Frequently-Asked-Questions#faq-annotations

@CaffeinatedAndroid search for "Annotationeer".


install.sh fails if libusb-1.0-0-dev is not present (IDFGH-5494)

solution:
add
apt install libusb-1.0-0-dev
in the install script.
quickfix:
just install it before running install.sh
with: apt install libusb-1.0-0-dev

@Zibri Thanks for reporting. Would you please help provide more details as suggested in the issue template? Information like elf, sdk configuration, backtrace, log outputs, commit ID, hardware and etc. would help us debug further. Thanks.

Hi @Zibri. Yes, you are right. However, the required libusb-1.0-0 package on the list of packages which has to be run before running the installer. Please see: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/linux-setup.html#install-prerequisites

I'm closing this for lack of activity. Please notify me if this is still an issue.


How to customize the OpenIdConnect Url when Redirecting To an IdentityProvider?

We are building a SaaS application in which we are using IdentityServer4 as our IdentityProvider.
Something we want to do is that every tenant gets its own vanity subdomain, including login/logout functionality. We have IdentityServer4 configured to issue all tickets with the same issuer regardless of which domain was used to access it.
The problem we are facing is on how we can change the Url to which the application that uses OpenIdConnectAuthentication is redirecting so that it goes to appropriate vanity login for the request and not the authorityUrl?

Have you tried using the RedirectToIdentityProvider Event on OpenIdConnectOptions?
http://www.jerriepelser.com/blog/adding-parameters-to-openid-connect-authorization-url/

I was trying to use it to do another kind of redirect, but when the Event gets called, the Location Header isn't set yet, so I thought it wasn't useful.
That blog post was a lifesaver. Thanks


Build failure: Common/types.h is missing

Excerpt from ninja's output:
[2/244] Building CXX object src/Core/CMakeFiles/pwe_core.dir/CMayaSpline.cpp.o
FAILED: src/Core/CMakeFiles/pwe_core.dir/CMayaSpline.cpp.o
/usr/bin/c++  -DGLEW_STATIC -DUNICODE -DUSE_LZOKAY -DWITH_CODEGEN -I../src/Core/.. -I../src/Core -I../src/Core/OpenGL -I../externals/LibCommon/Source -I../externals/LibCommon/Externals/CodeGen/include -isystem ../.dew/prefix-release/include -isystem ../.dew/prefix-release/include/lzokay -O3 -DNDEBUG   -Wno-multichar -Wno-undefined-var-template -std=gnu++17 -MD -MT src/Core/CMakeFiles/pwe_core.dir/CMayaSpline.cpp.o -MF src/Core/CMakeFiles/pwe_core.dir/CMayaSpline.cpp.o.d -o src/Core/CMakeFiles/pwe_core.dir/CMayaSpline.cpp.o -c ../src/Core/CMayaSpline.cpp
In file included from ../src/Core/CMayaSpline.cpp:1:
../src/Core/CMayaSpline.h:4:10: fatal error: Common/types.h: No such file or directory
 #include <Common/types.h>
          ^~~~~~~~~~~~~~~~

I'm building on Arch Linux. I remembered to update the submodules.

Oops, sorry. That should be Common/BasicTypes.h. Will fix soon.

Thanks!

I changed that and tried building again and got this:
In file included from ../src/Core/CMayaSpline.cpp:1:
../src/Core/CMayaSpline.h:5:10: fatal error: Math/CVector2f.h: No such file or directory
 #include <Math/CVector2f.h>
          ^~~~~~~~~~~~~~~~~~

I'm guessing something similar happened here?

Should be <Common/Math/CVector2f.h>
I was pretty sure I tested that this file compiled before committing it but I guess evidently I didn't. Weird... not sure what happened.

One more:
../src/Core/CMayaSpline.cpp:2:10: fatal error: Math/MathUtil.h: No such file or directory
 #include <Math/MathUtil.h>
          ^~~~~~~~~~~~~~~~~

I tried changing this to Common/Math/MathUtil.h but got a bunch of errors about u32 and u8 not naming a type.

Should be fixed in cd7937f73c9019c62c20c1bbee61f69ba5de6e9d. Apologies for the delay. I haven't been able to 100% confirm that the project compiles without issue yet since I am working through some additional issues that came up when reviewing the recent build system changes. Let me know if you're able to build now.

I just built it successfully :)


Add Signature - Shaylor Murray

I would like to add the signature "Shaylor Murray, Owner and Product Developer, Online ADA (Max Access)"

Could we please get this added to the website?
"Shaylor Murray, Owner and Product Developer, Online ADA (Max Access)"
Thanks!

Closing. Will not be adding signature from the owner of a company who makes an overlay, as it is counter to the point.


tested

tested

Hi and thank you for your commit. I understand what this is supposed to do. But if there's a opt-in or opt-out set, how does this make sure that there's no cookie set?


作者可以给一些关于盐体识别的指导吗

We wrote our solutions to the challenge here: https://www.kaggle.com/competitions/tgs-salt-identification-challenge/discussion/69051


How to use finetuning code?

I would like to try out using finetuning after pretraining. I follow the instructions and use:
python finetune.py pretrained_agent=icm task=walker_run snapshot_ts=1000000 obs_type=states

Unfortunately, this gives me the following error:
Could not override 'pretrained_agent'.
To append to your config use +pretrained_agent=icm
Key 'pretrained_agent' is not in struct
    full_key: pretrained_agent
    object_type=dict\
Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.

What should I do here? Thanks!

Try running with just agent i.e.
python finetune.py agent=icm task=walker_run snapshot_ts=1000000 obs_type=states, assuming you have already pretrained for a million steps on walker with icm agent

Try running with just agent i.e.
python finetune.py agent=icm task=walker_run snapshot_ts=1000000 obs_type=states, assuming you have already pretrained for a million steps on walker with icm agent

I would like to finetune in the domain Jaco with the task of reach_top_left, i use the
python finetune.py task=Jaco_reach_top_left snapshot_ts=1000000 obs_type=states agent=apb reward_free=false
it warns me that raise f{task} not found, how should I test agent in this task? Thanks

Maybe README.md is misleading.
When we run 'pretrain.py' code, the snapshot is saved under 'models', not 'pretrained_models' directory.


Test the cli-blockstack install docs and update

Confirm that the blockstack.js is a req.
Dependency in package.json or update install docs and readme as needed.

Documentation worked as documented in our installation guide.  User was attempting a local build on Linux.  Add information for building from source.

It might be worth adding a "dependencies" section that documents the need for build-essentials, git if downloading via git clone, and the necessary node.js version (if a specific node version is needed; I was having issues trying to install with the most recent node version but not the Latest LTS version).


Missing SubmitEvent in auto complete

Search Terms:
SubmitEvent
Code
// A *self-contained* demonstration of the problem follows...
// Test this by running `tsc` on the command-line, rather than through another build tool such as Gulp, Webpack, etc.
function form_Submit(e:SubmitEvent):void { ....... }

Expected behavior:
SubmitEvent is recognized as a DOM type
Actual behavior:
It is not
Playground Link:
Related Issues:
This can be solved by adding this to lib.dom.d.ts:
interface SubmitEvent extends Event
{
readonly submitter: HTMLElement;
}
declare var SubmitEvent: {
prototype: SubmitEvent;
new(type: string, eventInitDict?: EventInit): SubmitEvent;
};

This can be solved by adding this to lib.dom.d.ts: …

I don't think that solves it completely. The event handler interfaces would need updating from Event → SubmitEvent as well: https://github.com/microsoft/TypeScript/blob/f4157b41dbf9534a5fb5767672599f012bb0636f/lib/lib.dom.d.ts#L5755 https://github.com/microsoft/TypeScript/blob/f4157b41dbf9534a5fb5767672599f012bb0636f/lib/lib.dom.d.ts#L6007
Worth noting that SubmitEvent isn't (yet?) implemented in Safari. References:

https://bugs.webkit.org/show_bug.cgi?id=202978
https://github.com/whatwg/html/pull/4984

@MrTA2 this bug has been fixed by microsoft/TypeScript-DOM-lib-generator#1105, you can close it.


Use optionalArgName for team name prompt

Fix non-interactive teams creation, accept a name instead of a label for the first arg

 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.


 Also if it is safe mode then please give an example that where should i use the options.

Hey @imranbarbhuiya , you can use the 'safe' option in the constructor.
const google = new Scraper({
  puppeteer: {
    safe: true
  },
});

Ty got it

hey what this option does? i tought it will filter nsfw images but it isn't doing that.

I've tried like this but it isn't working.
var Scraper = require("images-scraper");
const google = new Scraper({
puppeteer: {
safe: true,
headless: true,
},
});

hey what this option does? i tought it will filter nsfw images but it isn't doing that.

this option uses the safe search feature from google, it's the same as turning it on on your browser.
the google safe search feature tries to filter off contents that google understands as NSFW with an artificial intelligence, so it may not be 100% safe after all.


[Help] Can't get the modal to display

I'm using vite, here is my setup:
createApp({ render: () => h(App, props) })
  .use(modal, {
    resolve: (name) => {
      console.log(name)
      return resolvePageComponent(name, import.meta.glob('./Pages/**/*.vue'))
    },
  })

I'm returning an Inertia::modal() and when inspecting the props, the modal object is correct with my props and the component, the base route is displaying correctly, but no modal is launching.
I've put a console log in the resolve function, but I never get any logs. Any idea why the modal isn't showing?

Did you put the -component somewhere in your layout?
import { Modal } from 'momentum-modal'
</script>

<template>

        <Modal />

</template>```

Yes, this is my component I use for modals:
<template>
  <TransitionRoot appear as="template" :show="show" @afterLeave="redirect">
    <Dialog as="div" class="fixed inset-0 overflow-y-auto z-40" @close="close" :initial-focus="initialFocus">

        <TransitionChild
          as="template"
          enter-active="duration-300 ease-out"
          enter-from="opacity-0"
          enter-to="opacity-100"
          leave-active="duration-200 ease-in"
          leave-from="opacity-100"
          leave-to="opacity-0"
        >

        </TransitionChild>

        <TransitionChild
          as="template"
          enter-active="ease-out duration-300"
          enter-from="opacity-0 -translate-y-5"
          enter-to="opacity-100 translate-y-0"
          leave-active="ease-in duration-200"
          leave-from="opacity-100 translate-y-0"
          leave-to="opacity-0 -translate-y-5"
        >
          <DialogPanel ref="modal" :class="modalSize" class="w-full inline-block align-middle bg-white dark:bg-gray-600 rounded-2xl text-left shadow-xl transform transition-all sm:my-8">

              <button @click.prevent="close" type="button" class="bg-white dark:bg-gray-600 rounded-full text-gray-400 hover:text-gray-500 focus:bg-gray-50 focus:outline-none focus:ring focus:ring-gray-300 dark:focus:ring-gray-500 transition ease-in-out">
                Close
                <svg class="h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true">
                  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
                </svg>
              </button>

                <ModalHeadline v-if="headline">
                  {{ headline }}
                </ModalHeadline>

                  <slot/>

              <slot name="actions" :close="close">
                <AppButton @click.prevent="performAction" :loading="actionLoading" type="button" :color="actionColor" class="sm:ml-2 text-sm">
                  {{ computedActionText }}
                </AppButton>
                <AppButton v-if="!inescapable" @click.prevent="close" type="button" color="white" class="text-sm">
                  {{ __('Close') }}
                </AppButton>
              </slot>

          </DialogPanel>
        </TransitionChild>

    </Dialog>
  </TransitionRoot>
</template>

Regardless, I should be seeing the logging when it tries to resolve the component.

The modal props look right from the response

Hmm, did you install Inertia 1.0.0-beta.2? Currently trying that beta and having the same problem.

@jeffreyvanhees I think I'm still on 0.11.1.

had the same until i realized there is a modal and a usemodal reference..
in your desired modal file you use "usemodal"
import { useModal } from 'momentum-modal'
then in your layout file
import { Modal } from 'momentum-modal'
and place the  somewhere
your modal gets then loaded into the main modal component 🪄
then visit the route and the modal will show with correct props etc..
if you use vite you might need to replace the mount function like this:
            .use(modal, {
                resolve: (name) => resolvePageComponent(`./Pages/${name}.vue`, import.meta.glob("./Pages/**/*.vue")),
            })

@nmkr thank you for the help
@grantholle feel free to re-open the issue if the problem persists


GitHub Actions with RunWorkflows.ps1 does not work after Az module new version release

Describe the bug
The PowerShell script fails when trying to execute #required line in RunWorkflows.ps1 or EnvironmentContext.ps1 after the recent Az module update.
To Reproduce
Steps to reproduce the behavior: Run any GitHub action for Azure deployment
Additional context
After the AZ Module update, we found that we need to remove:

The line "#Requires -Modules Az, powershell-yaml" from RunWorkflows.ps1
The line "#Requires -Modules powershell-yaml" from EnvironmentContext.ps1

The "#Requires" lines from these scripts as well should be removed or commented out:

scripts/configuration/Get-AlzConfiguration.ps1
scripts/configuration/New-AlzCredential.ps1
scripts/configuration/Remove-AlzCredential.ps1
scripts/configuration/New-AlzDeployment.ps1
scripts/configuration/New-AlzConfiguration.ps1
scripts/configuration/Test-AlzCredential.ps1


Simple audio track tests are giving strange parse errors

I'm getting these kinds of exceptions from various test programs.  From trying to debug the issue, I get very strange behavior with the bit alignment when trying to read the audio files.
Exception in thread "main" java.io.IOException: Expected Start Word 0xfff
    at com.googlecode.mp4parser.authoring.tracks.AACTrackImpl.readADTSHeader(AACTrackImpl.java:293)
    at com.googlecode.mp4parser.authoring.tracks.AACTrackImpl.readSamples(AACTrackImpl.java:325)
    at com.googlecode.mp4parser.authoring.tracks.AACTrackImpl.(AACTrackImpl.java:142)
    at com.googlecode.mp4parser.authoring.tracks.AACTrackImpl.(AACTrackImpl.java:135)

I initially received a similar error with an mp3 test:

Exception in thread "main" java.io.IOException: Expected Start Word 0x7ff
    at com.googlecode.mp4parser.authoring.tracks.MP3TrackImpl.readMP3Header(MP3TrackImpl.java:200)
    at com.googlecode.mp4parser.authoring.tracks.MP3TrackImpl.readSamples(MP3TrackImpl.java:175)
    at com.googlecode.mp4parser.authoring.tracks.MP3TrackImpl.(MP3TrackImpl.java:64)
    at com.googlecode.mp4parser.authoring.tracks.MP3TrackImpl.(MP3TrackImpl.java:53)
    at Greg2.main(Greg2.java:26)

and it seemed that making test changes to the MP3TrackImpl.java class after the code causing the problem would affect earlier code.   For example, if I commented out the line:

        hdr.layer = brb.readBits(2); // C

The code would make it past the above code.
I was also playing around  with the bits coming back from the line:

        BitReaderBuffer brb = new BitReaderBuffer((ByteBuffer) bb.rewind());
        int sync = brb.readBits(11); // A

and everything worked fine up to a >>> 4 on sync.   However, if I did a >>> 5, the bits would then get scrambled.  It is as if the jvm is improperly optimizing the code or messing up the memory alignment.
I've tested these things against multiple releases:
isoparser-<IP_ADDRESS>.jar  isoparser-<IP_ADDRESS>.jar   isoparser-<IP_ADDRESS>.jar
Any ideas?

Hi
I had this challenge with MP3TrackImpl and finally found mp3agic java library that can remove mp3 tags from the original mp3 file and then the MP3TrackImpl can accept the mp3 file, now one issue is remained that when I append the MP3 file to the Mp4 video it can not be played in some players while the ACCTrackImpl does not have this problem, is there any suggesion for that ? I really appreciate any kind of help, the code and mp3agic library link is as following:
mp3agic : https://github.com/mpatric/mp3agic
Code:
            // removing mp3 tags
            Mp3File mp3file = new Mp3File(SDPathToFile("MyFilm", "a.mp3").getPath());
	if (mp3file.hasId3v1Tag()) {
	  mp3file.removeId3v1Tag();
	  Log.d("MP3agic","removeId3v1Tag");
	}
	if (mp3file.hasId3v2Tag()) {
	  mp3file.removeId3v2Tag();
	  Log.d("MP3agic","removeId3v2Tag");
	}
	if (mp3file.hasCustomTag()) {
	  mp3file.removeCustomTag();
	  Log.d("MP3agic","removeCustomTag");
	}
	mp3file.save(SDPathToFile("MyFilm", "a2.mp3").getPath());

           //appending mp3 to mp4 video
          Movie movie=new Movie();
     movie=MovieCreator.build(new FileDataSourceImpl(SDPathToFile("MyFilm", "count-video.mp4")));
     MP3TrackImpl audio=new MP3TrackImpl(new FileDataSourceImpl(SDPathToFile("MyFilm", "a2.mp3").getPath()));

         CroppedTrack ct=new CroppedTrack(audio, 10, 500);

     movie.addTrack(ct);
     Container mp4file = new DefaultMp4Builder().build(movie);
     FileChannel fc = new FileOutputStream(SDPathToFile("MyFilm", "output2333aac.mp4")).getChannel();
     mp4file.writeContainer(fc);
     fc.close();

Yeah, I ended up in a similar situation.  I'm not sure the support for mp3 music in mp4 is universal enough for my purposes. (i.e. web, iphone mobile web/app, android mobile web/app)

Hi
Thanks for your replay, as the matter of fact I am developing an app which needs to append some MP3 files from the users device to the generated MP4, I would like to implement this without ffmpeg, I have tried so many libraries, and at the current time I am working on encoding mp3 files to aac with the help of JLayer for MP3 decoding and android-aac-enc ( https://github.com/timsu/android-aac-enc ) for aac endoing.
Sorry to ask, but do you have any solution for me ? or any alternative for that ?
Thank you so much

MP3 and MP4 just don't go together well. The name sounds similar but that's all. Use AAC if you can! MP3 was a good format but it is outdated

and please feel free to reopen if you need something done on the mp4parser.

How to merge .mp3 and .mp4 files using any other library ? As MP4Parser does not support merging of .mp3 and .mp4 files.... MP3TrackImpl is not working correctly

Well, MP3TrackImpl is working but most players cannot playback MP3 tracks
in MP4 containers. Why wouldn't you convert your audio to AAC? There no
device on this planet that supports MP3 but not AAC.
How to merge .mp3 and .mp4 files using any other library ? As MP4Parser
does not support merging of .mp3 and .mp4 files.... MP3TrackImpl is not
working correctly
—
Reply to this email directly or view it on GitHub
https://github.com/sannies/mp4parser/issues/25#issuecomment-107559137.

How can I add MP3TrackImpl.class or patch to the  isoviewer-1.0-27.jar ?
Please tell me full steps.
On Tue, Jun 2, 2015 at 12:31 AM, Sebastian Annies<EMAIL_ADDRESS>wrote:

Well, MP3TrackImpl is working but most players cannot playback MP3 tracks
in MP4 containers. Why wouldn't you convert your audio to AAC? There no
device on this planet that supports MP3 but not AAC.
How to merge .mp3 and .mp4 files using any other library ? As MP4Parser
does not support merging of .mp3 and .mp4 files.... MP3TrackImpl is not
working correctly
—
Reply to this email directly or view it on GitHub
https://github.com/sannies/mp4parser/issues/25#issuecomment-107559137.
—
Reply to this email directly or view it on GitHub
https://github.com/sannies/mp4parser/issues/25#issuecomment-107672169.

--
With Regards,
Udit Kumawat
*Final Year Student (B. Tech + M.Tech) Information TechnologyDepartment of
Integrated Post Graduation (IPG)Indian Institute of Information Technology
and Management, GwaliorMobile: +91-8989826236   *
+91-9462100126 in.linkedin.com/in/uditkumawat94/
http://in.linkedin.com/in/uditkumawat94/

I can not use Mp3File in android. Is there any other way because I also faced same thing when merge 2 mp3 files which is recorded via android.


Daniil: Blacklist internetinjustice.com

Daniil requests the blacklist of the website internetinjustice\.com. See the MS search here and the Stack Exchange search here.

internetinjustice\.com has been seen in 3 true positives, 0 false positives, and 0 NAAs.

Approved by double-beep in Charcoal HQ


c-style compile didn't work in watch mode

Describe the bug
While using custom module css in c-style,   watch task cannot detect the module css file changed
To Reproduce
Steps to reproduce the behavior:

add a c-style in component
use relative import module css
npm run watch
After electron ran, change the module css file content

Expected behavior

compile terminal window should output log for compiling changed files
electron was reloaded by HMR

Screenshots
None of above phenomena happened

dont use c-style any more


Validation errors not cleared from fields after passing checks

zod 3.14.2
When using refine() to, for example` compare passwords:
const register_schema = z
  .object({
    email: z.string().min(3).email(),
    password: z.string().min(6).max(64),
    password_confirm: z.string(),
  })
  .refine((data) => data.password === data.password_confirm, {
    message: "Passwords don't match",
    path: ['password_confirm'],
  })

Errors from the associated field - password in this case - are not being cleared even if said field passes it's validation. Here's a simple validation function
export const createValidator = () => {
  let errors = {}

  const validate = async <T>(values: FormInitialValues<T>) => {
    try {
      await register_schema.parseAsync(values)
      errors = {}
    } catch (err) {
      if (err instanceof ZodError) {
        const err_array = err.flatten().fieldErrors
        errors = { ...errors, ...err_array }
      }
    }
    return errors
  }

  return validate
}

It records validation results in the errors object. Elsewhere, I'm using the returned errors object to enable / disable submit button or display the error messages to to user.
This doesn't work as expected as errors from the password field (min(), for example) won't be removed from from the errors object until the refine() checks pass. Nor will errors from the email field until all validation check pass.
Here's a working example on Codesandbox .

Please ignore me, the fault was all mine. The issue was spreading the old errors object into the new.


create_function has been DEPRECATED as of PHP 7.2.0

Fix for https://www.php.net/create_function

Thanks for the PR!
Can you please update the travis config to use a more recent version of PHP? That should fix the tests and allow me to merge.
https://github.com/pdt256/shipping/blob/190b1d74c9573e66c5359350a70054d84d7436c9/.travis.yml#L3

Hey @pdt256 ,
That was fast. I have updated the travis, but I believe there are some other issues that need to be addressed.

I can take a look tomorrow. Hopefully we can get a release out that supports PHP 7+
Feel free to update this PR if you get to it first.

I upgraded master to PHP 7.1.
Please fix the PSR-2 issues and this should be good to merge:
https://travis-ci.org/pdt256/shipping/jobs/623547060#L265
You can verify it works with:
vendor/bin/phpcs --standard=PSR2 src/ tests/

Hey @pdt256 ,
I have updated the tests, and composer dependencies to make sure all is green.


how to test components generated by tsdx builds?

Current Behavior
We have a component, hooks and utilities library which is private repo based on lerna and tsdx.
The name of the packages are as follows
@eureka/components, @eureka/hooks and @eureka/utilities
The dist folder of components has index.js files which looks like this:
'use strict'

if (process.env.NODE_ENV === 'production') {
  module.exports = require('./components.cjs.production.min.js')
} else {
  module.exports = require('./components.cjs.development.js')
}

And then the component.cjs.development has import like below:
var PropTypes = _interopDefault(require('prop-types'));
var styled = require('styled-components');
var styled__default = _interopDefault(styled);
var css$ = _interopDefault(require('@styled-system/css'));
var styledSystem = require('styled-system');
var AllTheExportsFromHooks = require('@eureka/hooks');
var AllTheExportsFromComponents = require('@eureka/components');
var ReactDOM = _interopDefault(require('react-dom'));
var dateFns = require('date-fns');
var DatePicker = _interopDefault(require('react-datepicker'));
require('react-datepicker/dist/react-datepicker.css');
var lodash = require('lodash');
var AllTheExportsFromUtilities = require('@eureka/utilities');
var reactLive = require('react-live');

// .... more code blow.

Now this same dist folder becomes part on node_modules in another application where I am using @eureka/components
Now in dev mode and production mode it all works fine.
But the problem is with tests in this consumer application
I have started writing unit test cases using react-testing-library and jest
But the import i showed above does not resolve. and cause failure in test runs.
What all I was able to figure out yet:
The jest will not transform anything in node_modules by default. Hence the require statements in cjs file will not be resolved.
Basically if you will see above
var AllTheExportsFromComponents = require('@eureka/components');

The line above is blank object. Ideally it should have reference to the object having  all the components returned from @eureka/components.
My jest config looks like this now:
module.exports = {
	'roots': ['<rootDir>/src'],
	'collectCoverageFrom': ['src/**/*.{js,jsx,ts,tsx}', '!src/**/*.d.ts'],
	'setupFiles': [
		'jest-canvas-mock',
		'react-app-polyfill/jsdom',
		'./src/unitTestingConfig/setup.js',
	],
	'setupFilesAfterEnv': ['./src/unitTestingConfig/setFilesAfterEnv.js'],
	'testMatch': [
		'<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}',
		'<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}',
	],
	'testEnvironment': 'jest-environment-jsdom-fourteen',
	'transform': {
		'^.+\\.(js|jsx|ts|tsx)$': '<rootDir>/node_modules/babel-jest',
		// 'node_modules\\/@eureka\\/.*.\\/dist\\/.*.(js|jsx)$': '<rootDir>/node_modules/babel-jest',
		'^.+\\.css$': '<rootDir>/config/jest/cssTransform.js',
		'^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '<rootDir>/config/jest/fileTransform.js',
	},
	'transformIgnorePatterns': [
		'!node_modules\\/@eureka\\/.*.\\/dist\\/.*.(js|jsx)$',
		'[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$',
		'^.+\\.module\\.(css|sass|scss)$',
	],
	'modulePaths': ['./src'],
	'moduleNameMapper': {
		'^react-native$': 'react-native-web',
		'^.+\\.module\\.(css|sass|scss)$': 'identity-obj-proxy',
	},
	'moduleFileExtensions': [
		'web.js',
		'js',
		'web.ts',
		'ts',
		'web.tsx',
		'tsx',
		'json',
		'web.jsx',
		'jsx',
		'node',
	],
	'watchPlugins': ['jest-watch-typeahead/filename', 'jest-watch-typeahead/testname'],
	'moduleDirectories': ['node_modules', './src/unitTestingConfig'],
};

So my question is, what can do right to fix this scenario or it is not a good practice to test component's behavior coming from
node_modules.
Your environment

System:
    OS: macOS Mojave 10.14.5
    CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
    Memory: 281.99 MB / 16.00 GB
    Shell: 5.3 - /bin/zsh
  Binaries:
    Node: 12.10.0 - ~/.nvm/versions/node/v12.10.0/bin/node
    Yarn: 1.17.3 - ~/.nvm/versions/node/v12.10.0/bin/yarn
    npm: 6.10.3 - ~/.nvm/versions/node/v12.10.0/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  Browsers:
    Chrome: 85.0.4183.121
    Firefox: 72.0.2
    Safari: 12.1.1

Sorry to hear about your troubles, but I'm not sure how this is unrelated to TSDX and you haven't made that clear. The files are already compiled so you shouldn't have to transform them, they work in dev and prod, and tsdx test shallow merges your Jest config, so you've already overwritten much of it.
Issues also are not a support forum for debugging help. Feel free to use StackOverflow or something, but even there the expectation is that you furnish an MVCE, which is quite lacking here. You've only provided a few small snippets of a seemingly large codebase, and not a minimal reproduction.
I've provided some comments on your statements below, but, to repeat, this is not a support forum for debugging help, especially not for issues unrelated to TSDX.

The dist folder of components has index.js files which looks like this:

Yes, that's normal, intended behavior

var AllTheExportsFromComponents = require('@eureka/components');

This sounds like a recursive import, you said this is inside of components...

The jest will not transform anything in node_modules by default. Hence the require statements in cjs file will not be resolved.

I'm not sure how those are related -- transforms and resolutions are two different things.
You normally don't need to transform anything in node_modules either -- it contains built / compiled / transpiled code. Files output to dist/ by TSDX are already built, there's no need to transform them.

The line above is blank object. Ideally it should have reference to the object having all the components returned from @eureka/components.

If this returns something then that means it is resolved. If it's "not resolved", then Node will throw an error.

So my question is, what can do right to fix this scenario or it is not a good practice to test component's behavior coming from
node_modules.

I don't understand what the problem is to begin with, but no, normally one tests the package itself. You can have integration tests on top of that though, which would, almost by definition, test installed packages.


Don't retry when "Permission denied" occurs in local backend

What does this PR change? What problem does it solve?
Make "Permission denied" an permanent error in local backend, so it is not retried by RetryBackend.
Closes #3180
Was the change discussed in an issue or in the forum before?
No.
Checklist

[x] I have read the Contribution Guidelines
[x] I have enabled maintainer edits for this PR
[ ] I have added tests for all changes in this PR
[ ] I have added documentation for the changes (in the manual)
[ ] There's a new file in changelog/unreleased/ that describes the changes for our users (template here)
[x] I have run gofmt on the code in all commits
[x] All commit messages are formatted in the same style as the other commits in the repo
[x] I'm done, this Pull Request is ready for review

The change itself looks ok. Please add a small note and reference to this PR and the attached issue to the issue-2453 changelog file.


[now-cli] Remove annotate from now logs

This PR removed debug annotate from now logs.

Codecov Report

Merging #2937 into canary will increase coverage by 2.11%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           canary    #2937      +/-   ##
==========================================
+ Coverage   11.12%   13.24%   +2.11%
==========================================
  Files         267      267
  Lines       10144    10408     +264
  Branches     1267     1172      -95
==========================================
+ Hits         1129     1379     +250
- Misses       8924     8967      +43
+ Partials       91       62      -29

Impacted Files
Coverage Δ

src/util/metrics.ts
68.18% <0%> (-2.41%)
:arrow_down:

src/commands/logs.js
0% <0%> (ø)
:arrow_up:

src/util/dev/builder-cache.ts
80.86% <0%> (+3.42%)
:arrow_up:

src/util/projects/get-project-by-id-or-name.ts
28.57% <0%> (+3.57%)
:arrow_up:

src/util/get-files.ts
91.66% <0%> (+3.88%)
:arrow_up:

src/util/dev/router.ts
82.69% <0%> (+4.12%)
:arrow_up:

src/util/dev/builder.ts
77.41% <0%> (+4.34%)
:arrow_up:

src/util/dev/yarn-installer.ts
90.74% <0%> (+5.02%)
:arrow_up:

src/util/prefer-v2-deployment.ts
61.9% <0%> (+5.65%)
:arrow_up:

src/util/dev/server.ts
67.07% <0%> (+5.68%)
:arrow_up:

... and 1 more

Continue to review full report at Codecov.

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

@AndyBitz I added integrations test for it, but i'm not sure if it sufficient enough 🙇. Also there are some auto format with pre-commit hook, I believed.